module Jsoner
Public Class Methods
add_serializer(type, serializer)
click to toggle source
# File lib/emery/jsoner.rb, line 172 def self.add_serializer(type, serializer) @@serializers[type] = serializer end
deserialize(type, json_value)
click to toggle source
# File lib/emery/jsoner.rb, line 181 def Jsoner.deserialize(type, json_value) begin if type.methods.include? :jsoner_deserialize return type.jsoner_deserialize(json_value) elsif @@serializers.include? type return @@serializers[type].jsoner_deserialize(json_value) else if ![String, Float, Integer, TrueClass, FalseClass, NilClass].include? type raise JsonerError.new("Type #{type} is not supported in Jsoner deserialization") end return T.check(type, json_value) end rescue StandardError => error raise JsonerError.new(error.message) end end
from_json(type, json)
click to toggle source
# File lib/emery/jsoner.rb, line 176 def Jsoner.from_json(type, json) data = JSON.parse(json) return deserialize(type, data) end
serialize(type, value)
click to toggle source
# File lib/emery/jsoner.rb, line 202 def Jsoner.serialize(type, value) begin if type.methods.include? :jsoner_serialize return type.jsoner_serialize(value) elsif @@serializers.include? type return @@serializers[type].jsoner_serialize(value) else if ![String, Float, Integer, TrueClass, FalseClass, NilClass].include? type raise JsonerError.new("Type #{type} is not supported in Jsoner serialization") end return T.check(type, value) end rescue StandardError => error raise JsonerError.new(error.message) end end
to_json(type, value)
click to toggle source
# File lib/emery/jsoner.rb, line 198 def Jsoner.to_json(type, value) JSON.dump(serialize(type, value)) end
Public Instance Methods
jsoner_deserialize(json_value)
click to toggle source
# File lib/emery/jsoner.rb, line 9 def jsoner_deserialize(json_value) T.check(self, json_value) end
jsoner_serialize(value)
click to toggle source
# File lib/emery/jsoner.rb, line 12 def jsoner_serialize(value) T.check(self, value) end