Class: Cuprum::Cli::Options::ClassMethods::Builder
- Inherits:
-
Object
- Object
- Cuprum::Cli::Options::ClassMethods::Builder
- Defined in:
- lib/cuprum/cli/options/class_methods.rb
Overview
Helper class for defining command options.
Instance Attribute Summary collapse
-
#command_class ⇒ Class
readonly
The command class.
-
#defined_options ⇒ Hash{Symbol => Cuprum::Cli::Option}
readonly
The options defined for the command.
Instance Method Summary collapse
-
#option(name, aliases: [], default: nil, description: nil, required: false, type: :string, **options) ⇒ Object
Defines an option for the command class.
-
#initialize(command_class:, defined_options:) ⇒ Builder
constructor
A new instance of Builder.
Constructor Details
#initialize(command_class:, defined_options:) ⇒ Builder
Returns a new instance of Builder.
16 17 18 19 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 16 def initialize(command_class:, defined_options:) @command_class = command_class @defined_options = end |
Instance Attribute Details
#command_class ⇒ Class (readonly)
Returns the command class.
22 23 24 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 22 def command_class @command_class end |
#defined_options ⇒ Hash{Symbol => Cuprum::Cli::Option} (readonly)
Returns the options defined for the command.
26 27 28 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 26 def @defined_options end |
Instance Method Details
#option(name, aliases: [], default: nil, description: nil, required: false, type: :string, **options) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/cuprum/cli/options/class_methods.rb', line 29 def call(name, define_method: nil, define_predicate: nil, **) option = Cuprum::Cli::Option.new(name:, **) [option.name] = option boolean_option = [:type] == :boolean && ![:variadic] define_method = !boolean_option if define_method.nil? define_predicate = boolean_option if define_predicate.nil? define_method_for(option) if define_method define_predicate_for(option) if define_predicate option.name end |