0.01
No commit activity in last 3 years
No release in over 3 years
Builds command runnable from shell by simple and elegant way. Allows both synchronous executing or asynchronous using EventMachine.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.0.0

Runtime

>= 0.2.1
 Project Readme

Command Builder

command-builder builds command runnable from shell by simple and ellegant way. Also allows both synchronous executing or asynchronous one using EventMachine. Here is an real example of call to jpegoptim:

require "command-builder"
cmd = CommandBuilder::new(:jpegoptim)

cmd.arg(:m, 2)
cmd << :preserve
cmd << "image.jpg"

cmd.to_s    # will return 'jpegoptim -m 2 --preserve image.jpg'

Value escaping and assignments are supported automatically of sure, so call:

cmd.arg(:dest, './it\'s "my" folder')

…will be interpreted as jpegoptim --dest="it's \"my\" folder". It also takes spaces into the account.

Executing

Command can be executed directly by call:

cmd.execute!               # for synchronous executing or...
cmd.execute do |output|    # ...for asynchronous executing
    # ...
end

Asynchronous executing requires EventMachine environment to be run.

Flexibility

Syntax described above is supported by default, but you can achieve for example an Windows like syntax:

jpegoptim /m:2 -dest "directory"

…simply by assigning:

cmd.separators = ["/", ":", "-", " "]

For illustration, the default one is ["-", " ", "--", "="].

Copyright

Copyright © 2011 – 2015 Martin Poljak. See LICENSE.txt for further details.