Commands in ruby terminal application -


i have written first terminal application in ruby. use optionparser parse options , arguments. want create commands. example:

git add . 

in above line, add command cannot occur anywhere else after application. how create these.

i appreciate if point me in right direction. however, please not reference gems such commander. know these. want understand how done.

the optionparser's parse! takes array of arguments. default, take argv, can override behaviour so:

basic approach

def build_option_parser(command)   # depending on `command`, build parser   optionparser.new |opt|     # ...   end end  args = argv command = args.shift # pick , remove first option, validation... @options = build_option_parser(command).parse!(args) # parse rest of 

advanced approach

instead of build_option_parser method huge case-statement, consider oo approach:

class addcommand   attr_reader :options   def initialize(args)     @options = {}     @parser = optionparser.new #...     @parser.parse(args)   end end  class myoptionparser   def initialize(command, args)     @parser = {       'add' => addcommand,       '...' => dotscommand     }[command.to_s].new(args)   end   def options     @parser.options   end end 

alternatives

for sure, there exist tons of rubygems (well, 20 in list), take care of problem. i'd mention thor powers, e.g. rails command line tool.


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

javascript - jQuery .height() return 0 when visible but non-0 when hidden -