Sha256: 97400ac8d11853eefb91995801edbad7a80272127017b578c70c5ca332406f9a
Contents?: true
Size: 1.36 KB
Versions: 6
Compression:
Stored size: 1.36 KB
Contents
# -*- encoding : utf-8 -*- require "optparse" module Cardio class Commands class RakeCommand # parse decko/card -specific options for rake class Parser < OptionParser ONS = { production: { desc: "production database (default)" }, test: {}, development: {}, all: { desc: "production, test, and development database", envs: %w[production development test] } }.freeze def initialize command, opts super() do |parser| parser.banner = "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 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 def parser_on_opts env, command, desc main = "--#{env}" short = "-#{env.to_s[0]}" desc ||= "#{env} database" [main, short, "#{command} #{desc}"] end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems