Module: Proxima::Serialization::ClassMethods

Defined in:
lib/proxima/serialization.rb

Instance Method Summary collapse

Instance Method Details

#convert_query_or_delta_to_json(query) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/proxima/serialization.rb', line 97

def convert_query_or_delta_to_json(query)
  json_query = {}
  query.each do |attribute, val|
    attr_str  = attribute.to_s
    json_path = attributes[attribute] ? attributes[attribute][:json_path] : attr_str

    json_query[json_path] = unless attr_str[0] == '$' && val.is_a?(Hash)
      val
    else
      self.convert_query_or_delta_to_json val
    end
  end
  json_query
end

#from_json(json, include_root = self.include_root_in_json) ⇒ Object



86
87
88
89
90
91
92
93
94
95
# File 'lib/proxima/serialization.rb', line 86

def from_json(json, include_root=self.include_root_in_json)
  json = ActiveSupport::JSON.decode(json) if json.is_a? String
  json = json.values.first if include_root

  if json.is_a? Array
    return json.map { |json| self.new.from_json json }
  end

  self.new.from_json json
end