module Sequel::Plugins::JsonSerializer::ClassMethods

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) click to toggle source

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

    # File lib/sequel/plugins/json_serializer.rb
199 def array_from_json(json, opts=OPTS)
200   v = Sequel.parse_json(json)
201   if v.is_a?(Array)
202     raise(Error, 'parsed json returned an array containing non-hashes') unless v.all?{|ve| ve.is_a?(Hash) || ve.is_a?(self)}
203     v.map{|ve| ve.is_a?(self) ? ve : new.from_json_node(ve, opts)}
204   else
205     raise(Error, 'parsed json did not return an array')
206   end
207 end
freeze() click to toggle source

Freeze json serializier opts when freezing model class

Calls superclass method
    # File lib/sequel/plugins/json_serializer.rb
175 def freeze
176   @json_serializer_opts.freeze.each_value do |v|
177     v.freeze if v.is_a?(Array) || v.is_a?(Hash)
178   end
179 
180   super
181 end
from_json(json, opts=OPTS) click to toggle source

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

    # File lib/sequel/plugins/json_serializer.rb
185 def from_json(json, opts=OPTS)
186   v = Sequel.parse_json(json)
187   case v
188   when self
189     v
190   when Hash
191     new.from_json_node(v, opts)
192   else
193     raise Error, "parsed json doesn't return a hash or instance of #{self}"
194   end
195 end