class Argsy
Public Class Methods
new(ver='0.0.1', &bl)
click to toggle source
# File lib/argsy.rb, line 10 def initialize(ver='0.0.1', &bl) @name = File.basename($0, '.*'); @ver = ver; @cmds = {}; instance_eval(&bl) end
Public Instance Methods
command(name, desc='', &bl)
click to toggle source
# 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)
click to toggle source
# 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