Module: Cuprum::Cli::Options::ClassMethods
- Included in:
- Command, Commands::File::GenerateFile
- Defined in:
- lib/cuprum/cli/options/class_methods.rb
Overview
Methods used to extend command class functionality for defining options.
Defined Under Namespace
Classes: Builder
Instance Method Summary collapse
-
#option(name, aliases: [], default: nil, description: nil, required: false, type: :string, **options) ⇒ Object
Defines an option for the command class.
-
#option_value(option, value) ⇒ void
Assigns a predefined option value for the command.
-
#option_values ⇒ Hash{Symbol => Object}
Predefined option values for the command.
-
#options ⇒ Hash{Symbol => Cuprum::Cli::Option}
The defined options, including options defined on ancestor classes.
-
#resolve_options(**values) ⇒ Hash
Validates the given option values against the defined class options.
Instance Method Details
#option(name, aliases: [], default: nil, description: nil, required: false, type: :string, **options) ⇒ Object
87 88 89 90 91 92 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 87 def option(name, define_method: nil, define_predicate: nil, **) (**) .call(name, define_method:, define_predicate:, **) end |
#option_value(option, value) ⇒ void
This method returns an undefined value.
Assigns a predefined option value for the command.
100 101 102 103 104 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 100 def option_value(option, value) defined_option_values[option.to_sym] = value nil end |
#option_values ⇒ Hash{Symbol => Object}
Returns predefined option values for the command.
107 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 107 def option_values = inherited_option_values.merge(defined_option_values) |
#options ⇒ Hash{Symbol => Cuprum::Cli::Option}
The defined options, including options defined on ancestor classes.
112 113 114 115 116 117 118 119 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 112 def ancestors.reduce({}) do |hsh, ancestor| return hsh if ancestor == Cuprum::Cli::Command next hsh unless ancestor.respond_to?(:defined_options, true) hsh.merge(ancestor.) end end |
#resolve_options(**values) ⇒ Hash
Validates the given option values against the defined class options.
Also applies any default values from the defined options.
133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 133 def (**values) values = option_values.merge(values) = values, = resolve_variadic_values(values) unless .empty? raise Cuprum::Cli::Options::UnknownOptionError, (defined_options:, unknown_options:) end .to_h do |key, option| [key, option.resolve(values[key])] end end |