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
193 def array_from_json(json, opts=OPTS)
194   v = Sequel.parse_json(json)
195   if v.is_a?(Array)
196     raise(Error, 'parsed json returned an array containing non-hashes') unless v.all?{|ve| ve.is_a?(Hash) || ve.is_a?(self)}
197     v.map{|ve| ve.is_a?(self) ? ve : new.from_json_node(ve, opts)}
198   else
199     raise(Error, 'parsed json did not return an array')
200   end
201 end
freeze() click to toggle source

Freeze json serializier opts when freezing model class

Calls superclass method
    # File lib/sequel/plugins/json_serializer.rb
169 def freeze
170   @json_serializer_opts.freeze.each_value do |v|
171     v.freeze if v.is_a?(Array) || v.is_a?(Hash)
172   end
173 
174   super
175 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
179 def from_json(json, opts=OPTS)
180   v = Sequel.parse_json(json)
181   case v
182   when self
183     v
184   when Hash
185     new.from_json_node(v, opts)
186   else
187     raise Error, "parsed json doesn't return a hash or instance of #{self}"
188   end
189 end