Class: Foobara::CommandConnectors::ShCliConnector::InputsParser::Option::Attributes
- Inherits:
-
Foobara::CommandConnectors::ShCliConnector::InputsParser::Option
- Object
- Foobara::CommandConnectors::ShCliConnector::InputsParser::Option
- Foobara::CommandConnectors::ShCliConnector::InputsParser::Option::Attributes
- Defined in:
- foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/inputs_parser/option/attributes.rb
Instance Attribute Summary
Attributes inherited from Foobara::CommandConnectors::ShCliConnector::InputsParser::Option
#always_prefix_inputs, #attribute_name, #attribute_type, #default, #is_required, #prefix
Class Method Summary collapse
- .applicable?(attribute_type) ⇒ Boolean
- .attribute_to_options(attribute_name, attribute_type:, prefix:, is_required:, default:, always_prefix_inputs:) ⇒ Object
Methods inherited from Foobara::CommandConnectors::ShCliConnector::InputsParser::Option
#_argument_text, #_long_option_name, #_non_colliding_path, #_prefixed_name, #_truncated_path, #_truncated_paths, #array?, #description, #full_path, #has_default?, #initialize, #required?, #supports_short_option?, #to_args
Constructor Details
This class inherits a constructor from Foobara::CommandConnectors::ShCliConnector::InputsParser::Option
Class Method Details
.applicable?(attribute_type) ⇒ Boolean
8 9 10 |
# File 'foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/inputs_parser/option/attributes.rb', line 8 def applicable?(attribute_type) attribute_type.extends?(BuiltinTypes[:attributes]) end |
.attribute_to_options(attribute_name, attribute_type:, prefix:, is_required:, default:, always_prefix_inputs:) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'foobara-sh-cli-connector-0.0.16/src/sh_cli_connector/inputs_parser/option/attributes.rb', line 12 def ( attribute_name, attribute_type:, prefix:, is_required:, default:, always_prefix_inputs: ) sub_required_attributes = if is_required attribute_type.declaration_data[:required] || [] end || [] defaults = attribute_type.declaration_data[:defaults] || {} attribute_type.element_types.map do |sub_attribute_name, sub_attribute_type| Option.( sub_attribute_name, attribute_type: sub_attribute_type, prefix: [*prefix, *attribute_name], is_required: is_required && sub_required_attributes.include?(sub_attribute_name), default: defaults[sub_attribute_name], always_prefix_inputs: ) end.flatten end |