class Meroku::Options
This class handles command line options.
Public Class Methods
new()
click to toggle source
# File lib/meroku/options.rb, line 6 def initialize @options = {} end
Public Instance Methods
parse(command_line_args)
click to toggle source
# File lib/meroku/options.rb, line 10 def parse(command_line_args) define_options(command_line_args).parse!(command_line_args) @options end
Private Instance Methods
add_app_options(opts)
click to toggle source
# File lib/meroku/options.rb, line 39 def add_app_options(opts) option(opts, '--create NAME') do |name| @options[:create] = true @options[:name] = name end option(opts, '--list-apps') { @options[:list_apps] = true } option(opts, '--delete-app NAME') do |name| @options[:delete_app] = true @options[:name] = name end end
add_key_options(opts)
click to toggle source
# File lib/meroku/options.rb, line 30 def add_key_options(opts) option(opts, '--keys-add') { @options[:keys_add] = true } option(opts, '--keys') { @options[:keys] = true } option(opts, '--keys-remove ID') do |key_id| @options[:keys_remove] = true @options[:key_id] = key_id end end
add_maintainer_options(opts)
click to toggle source
# File lib/meroku/options.rb, line 91 def add_maintainer_options(opts) option(opts, '--backup MEROKU_SECRET') do |meroku_secret| @options[:backup] = true @options[:meroku_secret] = meroku_secret end end
add_maintainer_spawn_options(opts)
click to toggle source
# File lib/meroku/options.rb, line 80 def add_maintainer_spawn_options(opts) option(opts, '--spawn MEROKU_SECRET') do |meroku_secret| @options[:spawn] = true @options[:meroku_secret] = meroku_secret end option(opts, '--despawn MEROKU_SECRET') do |meroku_secret| @options[:despawn] = true @options[:meroku_secret] = meroku_secret end end
add_user_login_options(opts)
click to toggle source
# File lib/meroku/options.rb, line 69 def add_user_login_options(opts) option(opts, '--login EMAIL,PASSWORD', Array) do |list| @options[:login] = true @options[:email] = list[0] @options[:password] = list[1] end option(opts, '--logout') do @options[:logout] = true end end
add_user_options(opts)
click to toggle source
# File lib/meroku/options.rb, line 51 def add_user_options(opts) add_user_registration_options(opts) add_user_login_options(opts) end
add_user_registration_options(opts)
click to toggle source
# File lib/meroku/options.rb, line 56 def add_user_registration_options(opts) option(opts, '--signup EMAIL,PASSWORD', Array) do |list| @options[:signup] = true @options[:email] = list[0] @options[:password] = list[1] end option(opts, '--unregister EMAIL,PASSWORD', Array) do |list| @options[:unregister] = true @options[:email] = list[0] @options[:password] = list[1] end end
define_options(_args)
click to toggle source
# File lib/meroku/options.rb, line 17 def define_options(_args) OptionParser.new do |opts| opts.banner = 'Usage: meroku [options]' opts.on('--help', 'Prints this help') { puts opts } add_user_options(opts) add_key_options(opts) add_app_options(opts) opts.separator '' add_maintainer_spawn_options(opts) add_maintainer_options(opts) end end
long_opt_symbol(args)
click to toggle source
Finds the option in `args` starting with – and converts it to a symbol, e.g. […, '–auto-correct', …] to :auto_correct.
# File lib/meroku/options.rb, line 111 def long_opt_symbol(args) long_opt = args.find { |arg| arg.start_with?('--') } long_opt[2..-1].sub(/ .*/, '').tr('-', '_').gsub(/[\[\]]/, '').to_sym end
option(opts, *args) { |arg| ... }
click to toggle source
Sets a value in the @options hash, based on the given long option and its value, in addition to calling the block if a block is given.
# File lib/meroku/options.rb, line 100 def option(opts, *args) long_opt_symbol = long_opt_symbol(args) args += Array(OptionsHelp::TEXT[long_opt_symbol]) opts.on(*args) do |arg| @options[long_opt_symbol] = arg yield arg if block_given? end end