command-builder

0.3.2last stable release 10 years ago
Complexity Score
Low
Open Issues
N/A
Dependent Projects
8
Weekly Downloadsglobal
53

License

  • MIT
    • Yesattribution
    • Permissivelinking
    • Permissivedistribution
    • Permissivemodification
    • Nopatent grant
    • Yesprivate use
    • Permissivesublicensing
    • Notrademark grant

Downloads

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.

Dependencies

No runtime dependency information found for this package.

CVE IssuesActive
0
Scorecards Score
No Data
Test Coverage
No Data
Follows Semver
Yes
Github Stars
7
Dependenciestotal
3
DependenciesOutdated
0
DependenciesDeprecated
0
Threat Modelling
No
Repo Audits
No

Learn how to distribute command-builder in your own private RubyGems registry

gem install command-builder
Processing...
Done

8 Releases

RubyGems on Cloudsmith

Getting started with RubyGems on Cloudsmith is fast and easy.