Class: HasDynamicColumns::DynamicColumnDatum
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- HasDynamicColumns::DynamicColumnDatum
- Defined in:
- lib/has_dynamic_columns/dynamic_column_datum.rb
Instance Method Summary collapse
-
#value ⇒ Object
Get value based on dynamic_column data_type.
-
#value=(v) ⇒ Object
Set value base don dynamic_column data_type.
Instance Method Details
#value ⇒ Object
Get value based on dynamic_column data_type
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/has_dynamic_columns/dynamic_column_datum.rb', line 8 def value if self.dynamic_column case self.dynamic_column.data_type when "list" if self.dynamic_column_option self.dynamic_column_option.key end when "datetime" self[:value] when "boolean" if self[:value].is_a?(TrueClass) || self[:value].is_a?(FalseClass) self[:value] else self[:value].to_i === 1 end when "integer" self[:value] when "date" self[:value] when "string" self[:value] end else self[:value] end end |
#value=(v) ⇒ Object
Set value base don dynamic_column data_type
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/has_dynamic_columns/dynamic_column_datum.rb', line 37 def value=v if self.dynamic_column case self.dynamic_column.data_type when "list" # Can only set the value to one of the option values if option = self.dynamic_column..select { |i| i.key == v }.first self.dynamic_column_option = option else # Hacky, -1 indicates to the validator that an invalid option was set self.dynamic_column_option = nil self.dynamic_column_option_id = (v.to_s.length > 0)? -1 : nil end when "datetime" self[:value] = v when "boolean" self[:value] = (v)? 1 : 0 when "integer" self[:value] = v when "date" self[:value] = v when "string" self[:value] = v end else self[:value] = v end end |