Module: ActAsSerializable::ClassMethods

Defined in:
lib/act_as_serializable.rb

Instance Method Summary collapse

Instance Method Details

#act_as_serializable(fields) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/act_as_serializable.rb', line 8

def act_as_serializable fields

  fields.each do |field|
    self.serialize field
    self.before_save :set_eval
  end


  define_method 'set_eval' do
    fields.each do |field|
      set_eval_when(field)
    end
  end

  define_method 'set_eval_when' do |field|
    if !self[field].blank? && self[field].class==String
      self[field] = eval self[field]
    elsif self[field].blank?
      self[field] = []
    else
      self[field]
    end
  end
end