Class: Genome::Parameter
- Inherits:
-
Object
- Object
- Genome::Parameter
- Defined in:
- lib/genome/parameter.rb
Constant Summary collapse
- PARAMETERS =
{ AllowedPattern: { type: :string }, AllowedValues: { type: :array }, ConstraintDescription: { type: :string }, Default: { type: :any }, Description: { type: :string }, MaxLength: { type: :integer }, MaxValue: { type: :integer }, MinLength: { type: :integer }, MinValue: { type: :integer }, NoEcho: { type: :boolean }, Type: { type: :string }, }.freeze
Instance Attribute Summary collapse
-
#parameter_name ⇒ Object
readonly
Returns the value of attribute parameter_name.
-
#parameter_options ⇒ Object
Returns the value of attribute parameter_options.
Instance Method Summary collapse
- #check_parameter_type(parameter_value, allowed_parameter_type) ⇒ Object
-
#initialize(parameter_name:, parameter_options: {}) ⇒ Parameter
constructor
A new instance of Parameter.
- #to_h ⇒ Object
- #validate_parameter_options!(parameter_options) ⇒ Object
Constructor Details
#initialize(parameter_name:, parameter_options: {}) ⇒ Parameter
Returns a new instance of Parameter.
22 23 24 25 26 27 |
# File 'lib/genome/parameter.rb', line 22 def initialize(parameter_name:, parameter_options: {}) () @parameter_name = parameter_name @parameter_options = end |
Instance Attribute Details
#parameter_name ⇒ Object (readonly)
Returns the value of attribute parameter_name.
19 20 21 |
# File 'lib/genome/parameter.rb', line 19 def parameter_name @parameter_name end |
#parameter_options ⇒ Object
Returns the value of attribute parameter_options.
20 21 22 |
# File 'lib/genome/parameter.rb', line 20 def @parameter_options end |
Instance Method Details
#check_parameter_type(parameter_value, allowed_parameter_type) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/genome/parameter.rb', line 44 def check_parameter_type(parameter_value, allowed_parameter_type) case allowed_parameter_type when :string parameter_value.is_a?(String) when :integer begin Integer(parameter_value) true rescue false end when :boolean ['true', 'false'].include?(parameter_value.to_s.downcase) when :array parameter_value.is_a?(Array) when :any true end end |
#to_h ⇒ Object
65 66 67 68 69 |
# File 'lib/genome/parameter.rb', line 65 def to_h { parameter_name => } end |
#validate_parameter_options!(parameter_options) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/genome/parameter.rb', line 29 def () .each do |parameter_option_name, parameter_option_value| parameter_option_rules = PARAMETERS[parameter_option_name] raise Error::UnknownParameter, "Unknown parameter '#{parameter_option_name}'" unless parameter_option_rules allowed_parameter_type = parameter_option_rules[:type] raise Error::InvalidParameterType, "Invalid parameter type #{{ parameter_value: parameter_value, allowed_parameter_type: allowed_parameter_type, }}" unless check_parameter_type(parameter_option_value, allowed_parameter_type) end end |