module Sequel::Plugins::JsonSerializer::ClassMethods

  1. lib/sequel/plugins/json_serializer.rb
Parent: JsonSerializer

Attributes

json_serializer_opts [R]

The default opts to use when serializing model objects to JSON.

Public Instance methods

array_from_json (json, opts=OPTS)

Attempt to parse an array of instances from the given JSON string, with options passed to Sequel::Plugins::JsonSerializer::InstanceMethods#from_json_node.

[show source]
# File lib/sequel/plugins/json_serializer.rb, line 156
def array_from_json(json, opts=OPTS)
  v = Sequel.parse_json(json)
  if v.is_a?(Array)
    raise(Error, 'parsed json returned an array containing non-hashes') unless v.all?{|ve| ve.is_a?(Hash) || ve.is_a?(self)}
    v.map{|ve| ve.is_a?(self) ? ve : new.from_json_node(ve, opts)}
  else
    raise(Error, 'parsed json did not return an array')
  end
end
from_json (json, opts=OPTS)

Attempt to parse a single instance from the given JSON string, with options passed to Sequel::Plugins::JsonSerializer::InstanceMethods#from_json_node.

[show source]
# File lib/sequel/plugins/json_serializer.rb, line 142
def from_json(json, opts=OPTS)
  v = Sequel.parse_json(json)
  case v
  when self
    v
  when Hash
    new.from_json_node(v, opts)
  else
    raise Error, "parsed json doesn't return a hash or instance of #{self}"
  end
end