Module: SerializableData
- Defined in:
- lib/serializable_data.rb,
lib/serializable_data/version.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/serializable_data.rb', line 29 def self.included(base) base.extend(ClassMethods) base.class_eval do class_inheritable_accessor :_data_attributes class_inheritable_accessor :_data_column alias_method_chain :initialize, :serialized_data end end |
Instance Method Details
#initialize_with_serialized_data(attrs = {}) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/serializable_data.rb', line 38 def initialize_with_serialized_data(attrs = {}) attrs ||= {} serialized_attrs = {} super_attrs = {} attrs.each_pair do |key, value| if self.class._data_attributes.include?(key.to_sym) serialized_attrs[key] = value else super_attrs[key] = value end end initialize_without_serialized_data(super_attrs) self.send("#{self.class._data_column}=", {}) serialized_attrs.each_pair do |key, value| self.send("#{key}=", value) end end |