class GrnLine::OptionsParser
Constants
- SEPARATOR
Public Class Methods
new()
click to toggle source
# File lib/grnline/options-parser.rb, line 10 def initialize @options = OpenStruct.new @options.groonga = "groonga" @options.pager = "less" @options.groonga_arguments = [] @options.output = $stdout @options.use_pretty_print = true end
Public Instance Methods
generate_parser()
click to toggle source
# File lib/grnline/options-parser.rb, line 46 def generate_parser parser = OptionParser.new banner = "Usage: #{$0} [groonga_options] -- [grnline_options]\n" + " 'groonga_options' is options for groonga. " + "Please type `groonga --help` for the details of them.\n" + " grnline_options :" parser.banner = banner parser.on("-g", "--groonga=GROONGA", "your groonga.", "(#{@options.groonga})") do |groonga| @options.groonga = groonga end parser.on("-p", "--[no-]pretty-print", "Pretty print responses from groonga.", "(#{@options.use_pretty_print})") do |use_pretty_print| @options.use_pretty_print = use_pretty_print end # TODO: supports pager for displaying results from groonga # parser.on("-p", "--pager=PAGER", # "your pager using to display results.") do |pager| # @options.pager = pager # end parser.on("--output=OUTPUT", "Destination to output responses from groonga.", "(STDOUT)") do |output| @options.output = output end parser.on("-v", "--version", "Show version and exit.") do puts(GrnLine::VERSION) exit(true) end parser.on_tail("-h", "--help", "Show this message and exit.") do puts(parser.help) exit(true) end parser end
parse(argv)
click to toggle source
# File lib/grnline/options-parser.rb, line 19 def parse(argv) parser = generate_parser if not argv.include?(SEPARATOR) @options.groonga_arguments = argv else grnline_arguments, groonga_arguments = split_arguments(argv) parser.parse!(grnline_arguments) @options.groonga_arguments = groonga_arguments end @options end
split_arguments(argv)
click to toggle source
# File lib/grnline/options-parser.rb, line 33 def split_arguments(argv) grnline_arguments = [] groonga_arguments = [] separator_index = argv.index(SEPARATOR) unless separator_index.zero? groonga_arguments = argv[0 .. (separator_index - 1)] end grnline_arguments = argv[(separator_index + 1) .. -1] [grnline_arguments, groonga_arguments] end