3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/extra_attribute.rb', line 3
def (column, attribute_arrays)
@extra_attributes_column = column.to_s
class_eval %(
class << self; attr_accessor :extra_attributes_column end
)
attribute_arrays.each do |attr|
define_method "#{attr}" do
||= JSON.parse(attributes[self.class.extra_attributes_column] ? attributes[self.class.extra_attributes_column] : '{}')
return [attr.to_s].present? ? [attr.to_s] : nil
end
define_method "#{attr}=" do |val|
||= JSON.parse(attributes[self.class.extra_attributes_column] ? attributes[self.class.extra_attributes_column] : '{}')
[attr.to_s] = val
self.send("#{self.class.extra_attributes_column}=", .to_json)
end
end
end
|