Module: ActiverecordHstoreBoolean::ClassMethods

Defined in:
lib/activerecord_hstore_boolean.rb

Instance Method Summary collapse

Instance Method Details

#hstore_boolean_values(attr_name, *keys) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/activerecord_hstore_boolean.rb', line 11

def hstore_boolean_values(attr_name, *keys)
  keys.map!(&:to_sym)
  before_save "normalize_#{attr_name}_boolean_values"

  define_method("normalize_#{attr_name}_boolean_values") do
    self[attr_name].to_options!.each do |key, value|
      self[attr_name][key] = TRUE_VALUES.include?(value) ? STORED_TRUE_VALUE : STORED_FALSE_VALUE if keys.include?(key)
    end
  end

  define_method(attr_name) do
    self[attr_name].to_options!.each do |key, value|
      self[attr_name][key] = value == STORED_TRUE_VALUE if keys.include?(key)
    end
  end
end