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. 4 months ago
bin aliases are strings only or nil. more examples. 4 months ago
lib aliases are strings only or nil. more examples. 4 months ago
.gitignore file-seperated classes. interactive CLI. 1 year ago
Gemfile init 1 year ago
Gemfile.lock init 1 year ago
LICENSE.txt init 1 year ago
README.adoc init 1 year ago
Rakefile init 1 year ago
dencli.gemspec init 1 year ago

README.adoc

DenCli

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

Installation

Add this line to your application’s Gemfile:

gem 'dencli'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install dencli

Usage

#!/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.