class ActiveRecord::Coders::JSON

Public Class Methods

dump(json) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 10
def self.dump(json)
  new.dump(json)
end
load(json) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 6
def self.load(json)
  new.load(json)
end
new(params = {}) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 14
def initialize(params = {})
  @default = {}
  return unless params.class.name == 'Hash'
  @default   = params[:default] if params[:default]
  @symbolize_keys = params[:symbolize_keys] if params[:symbolize_keys]
end

Public Instance Methods

dump(obj) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 21
def dump(obj)
  if obj.nil?
    @default.nil? ? nil : to_json(@default)
  else
    to_json(obj)
  end
end
load(json) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 29
def load(json)
  json.nil? ? @default : from_json(json)
end

Private Instance Methods

convert_object(obj) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 43
def convert_object(obj)
  case obj
  when Array
    obj.map { |member| convert_object(member) }
  else
    obj
  end
end
from_json(json) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 39
def from_json(json)
  convert_object MultiJson.load(json, symbolize_keys: @symbolize_keys)
end
to_json(obj) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 35
def to_json(obj)
  MultiJson.dump(obj)
end