class ActiveRecord::Coders::JSON

Public Class Methods

dump(json) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 12
def self.dump(json)
  new.dump(json)
end
load(json) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 8
def self.load(json)
  new.load(json)
end
new(params = {}) click to toggle source
# File lib/activerecord-postgres-json/coders.rb, line 16
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 24
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 32
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 46
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 42
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 38
def to_json(obj)
  MultiJson.dump(obj)
end