lib/command_lion/app.rb in command_lion-1.0.0 vs lib/command_lion/app.rb in command_lion-1.0.1

- old
+ new

@@ -108,14 +108,17 @@ else short_long = "#{command.index.to_s}".ljust(max_flag) end puts "#{short_long} #{command.description}" if command.options? - #binding.pry command.options.each do |_, option| - short = option.flags.long? ? option.flags.short + ", " : option.flags.short - short_long = " " + "#{short}#{option.flags.long}".ljust(max_flag - 2) + if option.flags? + short = option.flags.long? ? option.flags.short + ", " : option.flags.short + short_long = " " + "#{short}#{option.flags.long}".ljust(max_flag - 2) + else + short_long = " " + "#{option.index.to_s}".ljust(max_flag - 2) + end puts "#{short_long} #{option.description}" end end puts end @@ -208,13 +211,18 @@ else raise "No index or flags were given to use this command." end if cmd.options? cmd.options.each do |_, option| - @flags << option.flags.short if cmd.flags.short? - @flags << option.flags.long if cmd.flags.long? - @commands << option + if option.flags? + @flags << option.flags.short if cmd.flags.short? + @flags << option.flags.long if cmd.flags.long? + else # just use index + @flags << option.index.to_s + end + @commands[option.index] = option + #@commands << option end end @commands[cmd.index] = cmd cmd end @@ -257,12 +265,16 @@ end end # Parse a given command with its def parse_cmd(cmd, flags) - args = Raw.arguments_to(cmd.flags.short, flags) - if args.empty? - args = Raw.arguments_to(cmd.flags.long, flags) + if cmd.flags? + args = Raw.arguments_to(cmd.flags.short, flags) + if args.empty? + args = Raw.arguments_to(cmd.flags.long, flags) + end + else + args = Raw.arguments_to(cmd.index.to_s, flags) end return nil if args.nil? case cmd.type when :stdin args = STDIN.gets.strip