lib/sfn/config.rb in sfn-3.0.30 vs lib/sfn/config.rb in sfn-3.0.32

- old
+ new

@@ -1,7 +1,7 @@ -require 'sfn' -require 'bogo-config' +require "sfn" +require "bogo-config" module Sfn # Top level configuration class Config < Bogo::Config @@ -28,86 +28,87 @@ v.to_smash else v end end - info[:description] ||= '' - info[:description] << ' (Key:Value[,Key:Value,...])' + info[:description] ||= "" + info[:description] << " (Key:Value[,Key:Value,...])" end end super(name, type, info) end # Only values allowed designating bool type - BOOLEAN_VALUES = [TrueClass, FalseClass] + BOOLEAN = BOOLEAN_VALUES = [TrueClass, FalseClass] - autoload :Conf, 'sfn/config/conf' - autoload :Create, 'sfn/config/create' - autoload :Describe, 'sfn/config/describe' - autoload :Destroy, 'sfn/config/destroy' - autoload :Describe, 'sfn/config/describe' - autoload :Diff, 'sfn/config/diff' - autoload :Events, 'sfn/config/events' - autoload :Export, 'sfn/config/export' - autoload :Graph, 'sfn/config/graph' - autoload :Import, 'sfn/config/import' - autoload :Init, 'sfn/config/init' - autoload :Inspect, 'sfn/config/inspect' - autoload :Lint, 'sfn/config/lint' - autoload :List, 'sfn/config/list' - autoload :Print, 'sfn/config/print' - autoload :Promote, 'sfn/config/promote' - autoload :Update, 'sfn/config/update' - autoload :Validate, 'sfn/config/validate' + autoload :Conf, "sfn/config/conf" + autoload :Create, "sfn/config/create" + autoload :Describe, "sfn/config/describe" + autoload :Destroy, "sfn/config/destroy" + autoload :Describe, "sfn/config/describe" + autoload :Diff, "sfn/config/diff" + autoload :Events, "sfn/config/events" + autoload :Export, "sfn/config/export" + autoload :Graph, "sfn/config/graph" + autoload :Import, "sfn/config/import" + autoload :Init, "sfn/config/init" + autoload :Inspect, "sfn/config/inspect" + autoload :Lint, "sfn/config/lint" + autoload :List, "sfn/config/list" + autoload :Plan, "sfn/config/plan" + autoload :Print, "sfn/config/print" + autoload :Promote, "sfn/config/promote" + autoload :Update, "sfn/config/update" + autoload :Validate, "sfn/config/validate" attribute( :config, String, - :description => 'Configuration file path', - :short_flag => 'c', + :description => "Configuration file path", + :short_flag => "c", ) attribute( :credentials, Smash, - :description => 'Provider credentials', - :short_flag => 'C', + :description => "Provider credentials", + :short_flag => "C", ) attribute( :ignore_parameters, String, :multiple => true, - :description => 'Parameters to ignore during modifications', - :short_flag => 'i', + :description => "Parameters to ignore during modifications", + :short_flag => "i", ) attribute( :interactive_parameters, [TrueClass, FalseClass], :default => true, - :description => 'Prompt for template parameters', - :short_flag => 'I', + :description => "Prompt for template parameters", + :short_flag => "I", ) attribute( :poll, [TrueClass, FalseClass], :default => true, - :description => 'Poll stack events on modification actions', - :short_flag => 'p', + :description => "Poll stack events on modification actions", + :short_flag => "p", ) attribute( :defaults, [TrueClass, FalseClass], - :description => 'Automatically accept default values', - :short_flag => 'd', + :description => "Automatically accept default values", + :short_flag => "d", ) attribute( :yes, [TrueClass, FalseClass], - :description => 'Automatically accept any requests for confirmation', - :short_flag => 'y', + :description => "Automatically accept any requests for confirmation", + :short_flag => "y", ) attribute( :debug, [TrueClass, FalseClass], - :description => 'Enable debug output', - :short_flag => 'u', + :description => "Enable debug output", + :short_flag => "u", ) attribute( :colors, [TrueClass, FalseClass], - :description => 'Enable colorized output', + :description => "Enable colorized output", :default => true, ) attribute :conf, Conf, :coerce => proc { |v| Conf.new(v) } attribute :create, Create, :coerce => proc { |v| Create.new(v) } @@ -125,22 +126,22 @@ # Provide all options for config class (includes global configs) # # @param klass [Class] # @return [Smash] def self.options_for(klass) - shorts = ['h'] # always reserve `-h` for help + shorts = ["h"] # always reserve `-h` for help _options_for(klass, shorts) end # Provide options for config class # # @param klass [Class] # @param shorts [Array<String>] # @return [Smash] def self._options_for(klass, shorts) - Smash[ - ([klass] + klass.ancestors).map do |a| + opts = Smash[ + [klass].map do |a| if a.ancestors.include?(Bogo::Config) && !a.attributes.empty? a.attributes end end.compact.reverse.inject(Smash.new) { |m, n| m.deep_merge(n) }.map do |name, info| next unless info[:description] @@ -150,13 +151,14 @@ end unless short.to_s.empty? shorts << short info[:short] = short end - info[:long] = name.tr('_', '-') + info[:long] = name.tr("_", "-") info[:boolean] = [info[:type]].compact.flatten.all? { |t| BOOLEAN_VALUES.include?(t) } [name, info] end.compact ] + opts end end end