Class: Cardio::Commands::RakeCommand::Parser
- Inherits:
-
OptionParser
- Object
- OptionParser
- Cardio::Commands::RakeCommand::Parser
- Defined in:
- lib/cardio/commands/rake_command/parser.rb
Overview
parse decko/card -specific options for rake
Constant Summary collapse
- ONS =
{ production: { desc: "production database (default)" }, test: {}, development: {}, all: { desc: "production, test, and development database", envs: %w[production development test] } }.freeze
Instance Method Summary collapse
-
#initialize(command, opts) ⇒ Parser
constructor
A new instance of Parser.
- #parser_on_opts(env, command, desc) ⇒ Object
- #parser_ons(parser, command) ⇒ Object
Constructor Details
#initialize(command, opts) ⇒ Parser
Returns a new instance of Parser.
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/cardio/commands/rake_command/parser.rb', line 22 def initialize command, opts super() do |parser| parser. = "Usage: decko #{command} [options]\n\n" \ "Run decko:#{command} task on the production "\ " database specified in config/database.yml\n\n" parser_ons parser, command do |env_array| opts[:envs] = env_array end end end |
Instance Method Details
#parser_on_opts(env, command, desc) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/cardio/commands/rake_command/parser.rb', line 41 def parser_on_opts env, command, desc main = "--#{env}" short = "-#{env.to_s[0]}" desc ||= "#{env} database" [main, short, "#{command} #{desc}"] end |
#parser_ons(parser, command) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/cardio/commands/rake_command/parser.rb', line 33 def parser_ons parser, command ONS.each do |env, vals| parser.on(*parser_on_opts(env, command, vals[:desc])) do yield (vals[:envs] || [env.to_s]) end end end |