Ruby Command-Line-Interface API. Inspired by iproute2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Denis Knauf c946a093f7 aliases are strings only or nil. more examples. 10 months ago
bin aliases are strings only or nil. more examples. 10 months ago
lib aliases are strings only or nil. more examples. 10 months ago
.gitignore file-seperated classes. interactive CLI. 2 years ago
Gemfile init 2 years ago
Gemfile.lock init 2 years ago
LICENSE.txt init 2 years ago
README.adoc init 2 years ago
Rakefile init 2 years ago
dencli.gemspec init 2 years ago

README.adoc

# DenCli

Provides a Command-Line-Interface-API for providing commands.

## Installation

Add this line to your application's Gemfile:

[source,ruby]
----
gem 'dencli'
----

And then execute:

[source,sh]
----
$ bundle install
----

Or install it yourself as:

[source,sh]
----
$ gem install dencli
----

## Usage

[source,ruby]
----
#!/usr/bin/env ruby

require 'dencli'

cli = CLI.new "This is an example for generate a CLI-API"
cli.cmd( :example, "I have an example command") { STDERR.puts "This is an example" }
cli.cmd( :help) {|*args| STDERR.puts cli.help(*args) }

cli.sub( :more, "Sub-Commands are also possible with a new cli") do |sub|
sub.cmd( :help) {|*args| STDERR.puts cli.help( 'more', *args) }
sub.cmd( :example, "Here is an example, too") { STDERR.puts "This is an other example" }
sub.cmd( :foo, "BAR") { STDERR.puts "FOO bar"}

sub.sub( :deeper, "You want to have Sub-Sub-Commands?") do |sub2|
sub2.cmd( :help) {|*args| STDERR.puts cli.help( 'more', 'deeper', *args) }
sub2.cmd( :last, "The last example") { STDERR.puts "The last example" }

sub2.sub( :'sub-commands', "Endless Sub-Sub- ...") do |sub3|
sub2.cmd( :help) {|*args| STDERR.puts cli.help( 'more', 'deeper', 'sub-commands', *args) }
sub3.cmd( :hehe, "The real last example", min: 2) { STDERR.puts "Trust me!" }
end
end
end

cli.call *ARGV
----

## Development

## Contributing

Bug reports and pull requests are welcome on git at https://git.denkn.at/deac/dencli.