module Proxima::Serialization::ClassMethods

Public Instance Methods

convert_query_or_delta_to_json(query) click to toggle source
# File lib/proxima/serialization.rb, line 119
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, opts = {}) click to toggle source
# File lib/proxima/serialization.rb, line 104
def from_json(json, opts = {})
  json = ActiveSupport::JSON.decode(json) if json.is_a? String
  json = json.values.first if opts[:include_root] || self.include_root_in_json
  json = json.first        if opts[:single_model_from_array] && json.is_a?(Array)

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

  model            = self.new.from_json json
  model.new_record = opts[:new_record] || false

  model
end