Module: JsonRecord::Serialized::InstanceMethods
- Defined in:
- lib/json_record/serialized.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#attributes_with_serialized_json ⇒ Object
:nodoc:.
-
#json_fields ⇒ Object
Get the JsonField objects for the record.
- #read_attribute_with_serialized_json(name) ⇒ Object
-
#reload_with_serialized_json(*args) ⇒ Object
:nodoc:.
- #write_attribute_with_serialized_json(name, value) ⇒ Object
Class Method Details
.included(base) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/json_record/serialized.rb', line 50 def self.included (base) base.before_save :serialize_json_attributes base.alias_method_chain :reload, :serialized_json base.alias_method_chain :attributes, :serialized_json base.alias_method_chain :read_attribute, :serialized_json base.alias_method_chain :write_attribute, :serialized_json end |
Instance Method Details
#attributes_with_serialized_json ⇒ Object
:nodoc:
74 75 76 77 78 79 |
# File 'lib/json_record/serialized.rb', line 74 def attributes_with_serialized_json #:nodoc: attrs = json_attributes.reject{|k,v| !json_field_names.include?(k)} attrs.merge!(attributes_without_serialized_json) json_serialized_fields.keys.each{|name| attrs.delete(name)} return attrs end |
#json_fields ⇒ Object
Get the JsonField objects for the record.
59 60 61 62 63 64 65 66 67 |
# File 'lib/json_record/serialized.rb', line 59 def json_fields unless @json_fields @json_fields = {} json_serialized_fields.each_pair do |name, schemas| @json_fields[name] = JsonField.new(self, name, schemas) end end @json_fields end |
#read_attribute_with_serialized_json(name) ⇒ Object
81 82 83 84 85 86 87 88 89 |
# File 'lib/json_record/serialized.rb', line 81 def read_attribute_with_serialized_json (name) name = name.to_s json_field, field_definition = self.class.json_field_definition(name) if field_definition read_json_attribute(json_field, field_definition) else read_attribute_without_serialized_json(name) end end |
#reload_with_serialized_json(*args) ⇒ Object
:nodoc:
69 70 71 72 |
# File 'lib/json_record/serialized.rb', line 69 def reload_with_serialized_json (*args) #:nodoc: @json_fields = nil reload_without_serialized_json(*args) end |
#write_attribute_with_serialized_json(name, value) ⇒ Object
91 92 93 94 95 96 97 98 99 |
# File 'lib/json_record/serialized.rb', line 91 def write_attribute_with_serialized_json (name, value) name = name.to_s json_field, field_definition = self.class.json_field_definition(name) if field_definition write_json_attribute(json_field, field_definition, value) else write_attribute_without_serialized_json(name, value) end end |