class Racli::OptionParser
Public Instance Methods
call(args)
click to toggle source
# File lib/racli/option_parser.rb, line 7 def call(args) options, args = parse(args) config_params = { config: options[:config], rcfile: options[:rcfile] } params = { method: 'GET', path: '/' } params[:method] = args[0] unless args.empty? params[:path] = args[1] if args.length > 1 request_params = options.dup request_params.delete(:config) request_params.delete(:rcfile) params[:params] = request_params [config_params, params] end
Private Instance Methods
parse(args)
click to toggle source
# File lib/racli/option_parser.rb, line 25 def parse(args) keys = args.select { |key| key.include?('--') } .map { |key| key.gsub(/^\-\-/, '') } .reject { |key| %w[config rcfile].include?(key) } options = {} options[:config] = File.expand_path('./config.ru', Dir.pwd) options[:rcfile] = File.expand_path('./.raclirc', Dir.pwd) parser = ::OptionParser.new parser.on('-c', '--config VALUE') { |v| options[:config] = v } parser.on('--rcfile VALUE') { |v| options[:rcfile] = v } keys.each do |key| parser.on("--#{key} VALUE") { |v| options[key.to_s] = v } end args = parser.parse(ARGV) [options, args] end