class CliParser
The command line interface parser
Public Class Methods
call_subcommand(command)
click to toggle source
Tries to call subcommand extracted from hash
@param command [String] subcommand to call
# File lib/cli_parser.rb, line 115 def self.call_subcommand(command) if command.nil? abort(@banner) else command.call end end
parse_argv()
click to toggle source
Parse the arguments in the command line
# File lib/cli_parser.rb, line 99 def self.parse_argv client = Client.new subcommands = { recipe: -> { client.recipe @options }, register: -> { client.register ARGV[1], ARGV[2] }, login: -> { client.login ARGV[1], ARGV[2] }, last: -> { client.last }, review: -> { client.review ARGV[1] }, user: -> { client.user } } call_subcommand subcommands[ARGV[0].to_sym] end
parse_opts()
click to toggle source
Parse the options in command line
# File lib/cli_parser.rb, line 27 def self.parse_opts OptionParser.new do |opts| opts.banner = @banner # help message option opts.on('--help', 'Prints help message') do puts opts exit end # version message option opts.on('--version', 'Prints version') do puts "yum #{Yum::VERSION}" exit end # phrase ----------------------------------------------------------------- # include recipe with phrase opts.on('-p', '--phrase PHRASE', @help[:phrase]) do |phrase| @options[:q] = phrase end # holiday ---------------------------------------------------------------- # include holiday recipes opts.on('-h', '--holiday HOLIDAY', @help[:holiday]) do |holiday| @options[:allowedHoliday] = holiday end # exclude holiday recipes opts.on('--eh', '--excluded-holiday HOLIDAY', @help[:holiday]) do |hol| @options[:excludedHoliday] = hol end # ingredients ------------------------------------------------------------ # include ingredients in recipes opts.on('-i', '--ingredients INGREDIENT', @help[:ing]) do |ing| @options[:allowedIngredient] = ing end # exclude holiday in recipes opts.on('--ei', '--excluded-ingredient INGREDIENT', @help[:ing]) do |ing| @options[:excludedIngredient] = ing end # cuisines --------------------------------------------------------------- # include cuisines in recipes opts.on('-c', '--cuisine CUISINE', @help[:cui]) do |cui| @options[:allowedCuisine] = cui end # exclude cuisines in recipes opts.on('--ec', '--excluded-cuisine CUISINE', @help[:cui]) do |cui| @options[:excludedCuisine] = cui end # diets ------------------------------------------------------------------ # include diets in recipes opts.on('-d', '--diet DIET', @help[:diet]) do |diet| @options[:allowedDiet] = diet end # exclude diets in recipes opts.on('--ed', '--excluded-diet DIET', @help[:diet]) do |diet| @options[:excludedDiet] = diet end end.parse! rescue OptionParser::InvalidOption => e abort(e) end