Class: MultiparameterAttributesHandler::Manipulator
- Inherits:
-
Object
- Object
- MultiparameterAttributesHandler::Manipulator
- Defined in:
- lib/multiparameter_attributes_handler/manipulator.rb
Instance Attribute Summary collapse
-
#hash ⇒ Object
Returns the value of attribute hash.
-
#value_mod ⇒ Object
Returns the value of attribute value_mod.
Instance Method Summary collapse
-
#initialize(hash, &value_mod) ⇒ Manipulator
constructor
A new instance of Manipulator.
- #multiparameters ⇒ Object
- #output ⇒ Object
- #value_of(multiparameter) ⇒ Object
- #values_for(multiparameter) ⇒ Object
Constructor Details
#initialize(hash, &value_mod) ⇒ Manipulator
Returns a new instance of Manipulator.
6 7 8 9 |
# File 'lib/multiparameter_attributes_handler/manipulator.rb', line 6 def initialize(hash, &value_mod) @hash = hash @value_mod = value_mod end |
Instance Attribute Details
#hash ⇒ Object
Returns the value of attribute hash.
4 5 6 |
# File 'lib/multiparameter_attributes_handler/manipulator.rb', line 4 def hash @hash end |
#value_mod ⇒ Object
Returns the value of attribute value_mod.
4 5 6 |
# File 'lib/multiparameter_attributes_handler/manipulator.rb', line 4 def value_mod @value_mod end |
Instance Method Details
#multiparameters ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/multiparameter_attributes_handler/manipulator.rb', line 11 def multiparameters keys = multiparameter_keys.collect do |k| k.gsub(ends_with_number_letter_in_brackets, "") end keys.uniq! keys.delete_if{|k| empty_date_values_for? k} return keys end |
#output ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/multiparameter_attributes_handler/manipulator.rb', line 33 def output begin multiparameters.each do |multiparameter| hash[multiparameter] = value_of(multiparameter) end rescue => e errors << e end return hash if errors.empty? raise_combined_error(errors) end |
#value_of(multiparameter) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/multiparameter_attributes_handler/manipulator.rb', line 25 def value_of(multiparameter) values = values_for(multiparameter) return values unless values.kind_of? Array time = convert_to_time(multiparameter, values) return time unless value_mod value_mod.call(time) end |
#values_for(multiparameter) ⇒ Object
20 21 22 23 |
# File 'lib/multiparameter_attributes_handler/manipulator.rb', line 20 def values_for(multiparameter) return hash[multiparameter] unless multiparameters.include? multiparameter keys_for(multiparameter).collect{|k| hash[k]} end |