Class: Argsy
- Inherits:
-
Object
- Object
- Argsy
- Defined in:
- lib/argsy.rb
Defined Under Namespace
Classes: Command
Instance Method Summary collapse
- #command(name, desc = '', &bl) ⇒ Object
-
#initialize(ver = '0.0.1', &bl) ⇒ Argsy
constructor
A new instance of Argsy.
- #run(a = ARGV) ⇒ Object
Constructor Details
#initialize(ver = '0.0.1', &bl) ⇒ Argsy
Returns a new instance of Argsy.
10 |
# File 'lib/argsy.rb', line 10 def initialize(ver='0.0.1', &bl) @name = File.basename($0, '.*'); @ver = ver; @cmds = {}; instance_eval(&bl) end |
Instance Method Details
#command(name, desc = '', &bl) ⇒ Object
11 |
# File 'lib/argsy.rb', line 11 def command(name, desc='', &bl) @cmds[name.to_s] = Command.new(name.to_s, desc, &bl) end |
#run(a = ARGV) ⇒ Object
12 13 14 15 16 |
# File 'lib/argsy.rb', line 12 def run(a=ARGV) (puts "#{@name} version #{@ver}"; exit) if a == ['--version'] (puts "Usage: #{@name} CMD [--help] [--version]\n" + @cmds.values.map(&:to_s).join("\n"); exit) if !@cmds.key?(a[0]) c = @cmds[a[0]]; c.op.parse(a, into: c.opts); c.do_it.call(c.opts) end |