Module: Hstorable::SimpleFields

Defined in:
lib/hstorable/simple_fields.rb

Instance Method Summary collapse

Instance Method Details

#hstore_simple(field, options) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/hstorable/simple_fields.rb', line 3

def hstore_simple(field, options)
  name = options[:name]
  default = options[:default]
  
  define_method "#{name}" do
    hstore = self.send(field)
    value = hstore[name]
    value ? value : default
  end
  
  define_method "#{name}=" do |value|
    hstore = self.send(field)
    self.send("#{field}_will_change!") if hstore[name] != value
    hstore[name] = value
    hstore[name]
  end

  hstore_register_field(name, options)
end