class Genome::Parameter
Constants
- PARAMETERS
Attributes
parameter_name[R]
parameter_options[RW]
Public Class Methods
new(parameter_name:, parameter_options: {})
click to toggle source
# File lib/genome/parameter.rb, line 22 def initialize(parameter_name:, parameter_options: {}) validate_parameter_options!(parameter_options) @parameter_name = parameter_name @parameter_options = parameter_options end
Public Instance Methods
check_parameter_type(parameter_value, allowed_parameter_type)
click to toggle source
# 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()
click to toggle source
# File lib/genome/parameter.rb, line 65 def to_h { parameter_name => parameter_options } end
validate_parameter_options!(parameter_options)
click to toggle source
# File lib/genome/parameter.rb, line 29 def validate_parameter_options!(parameter_options) parameter_options.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