Module: CS::ParameterProcessor
- Defined in:
- lib/cs/parameter_processor.rb
Instance Method Summary collapse
- #process_alias!(params) ⇒ Object
- #process_default_value(name, value, param_option) ⇒ Object
- #process_param(name, value, param_option) ⇒ Object
- #process_param_boolean(name, value, param_option) ⇒ Object
- #process_param_integer(name, value, param_option) ⇒ Object
- #process_param_string(name, value, param_option) ⇒ Object
-
#process_param_time(name, value, param_option) ⇒ Object
This method prosess assignment for properties with datatype Time.
- #process_valid_values(name, value, param_option) ⇒ Object
Instance Method Details
#process_alias!(params) ⇒ Object
3 4 5 6 7 8 9 10 11 12 |
# File 'lib/cs/parameter_processor.rb', line 3 def process_alias!(params) return if self.class.parameters_alias.nil? aliases = params.select { |param| self.class.parameters_alias.include?(param) } aliases.each do |alias_to, value| alias_for = self.class.parameters_alias[alias_to] params[alias_for] = value params.delete(alias_to) end end |
#process_default_value(name, value, param_option) ⇒ Object
24 25 26 |
# File 'lib/cs/parameter_processor.rb', line 24 def process_default_value(name, value, param_option) value.nil? ? param_option[:default] : value end |
#process_param(name, value, param_option) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/cs/parameter_processor.rb', line 29 def process_param(name, value, param_option) retval = value # this should be refactored to it's own classes retval = process_param_integer(name, value, param_option) if param_option[:type] == Integer retval = process_param_boolean(name, value, param_option) if param_option[:type] == Boolean retval = process_param_string(name, value, param_option) if param_option[:type] == String retval = process_param_time(name, value, param_option) if param_option[:type] == Time retval end |
#process_param_boolean(name, value, param_option) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/cs/parameter_processor.rb', line 57 def process_param_boolean(name, value, param_option) retval = nil if value.nil? retval = param_option[:default] ? param_option[:default] : nil elsif [0, "0", false, "false"].include?(value) retval = 0 else retval = 1 end retval end |
#process_param_integer(name, value, param_option) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/cs/parameter_processor.rb', line 40 def process_param_integer(name, value, param_option) if value.kind_of?(Integer) retval = value retval = process_valid_values(name, value, param_option) if param_option[:valid_values] maximum = param_option[:maximum] retval = maximum if maximum && retval > maximum end retval = process_default_value(name, retval, param_option) if !value.nil? && !value.kind_of?(Integer) raise ArgumentError, "Received non Integer value for parameter '#{name}'" end retval end |
#process_param_string(name, value, param_option) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/cs/parameter_processor.rb', line 71 def process_param_string(name, value, param_option) retval = value retval = process_valid_values(name, value, param_option) if param_option[:valid_values] retval = process_default_value(name, retval, param_option) retval end |
#process_param_time(name, value, param_option) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/cs/parameter_processor.rb', line 86 def process_param_time(name, value, param_option) retval = value if !value.nil? retval = CS::Time.new(value) end retval = process_default_value(name, retval, param_option) retval = process_valid_values(name, value, param_option) if param_option[:valid_values] retval end |
#process_valid_values(name, value, param_option) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/cs/parameter_processor.rb', line 14 def process_valid_values(name, value, param_option) return value unless param_option[:valid_values] if param_option[:valid_values].include?(value) value elsif !value.nil? raise ArgumentError, "Invalid value for parameter '#{name}'" end end |