class Undo::Serializer::Primitive
Public Instance Methods
deserialize(primitive_data, options = {})
click to toggle source
# File lib/undo/serializer/primitive.rb, line 16 def deserialize(primitive_data, options = {}) primitive_class = get_option :class_name, primitive_data object = get_option :object, primitive_data return case primitive_class when "Fixnum" then object.to_i when "Symbol" then object.to_sym when "TrueClass" then true when "FalseClass" then false when "NilClass" then nil when "Hash" then Hash.new object # for Ruby < 2.0 else Kernel.send primitive_class, object end end
deserialize?(hash)
click to toggle source
# File lib/undo/serializer/primitive.rb, line 39 def deserialize?(hash) name == (hash[:serializer] || hash["serializer"]) rescue false end
name()
click to toggle source
# File lib/undo/serializer/primitive.rb, line 4 def name "primitive" end
serialize(primitive, options = {})
click to toggle source
# File lib/undo/serializer/primitive.rb, line 8 def serialize(primitive, options = {}) { serializer: name, object: primitive, class_name: primitive.class.name } end
serialize?(object)
click to toggle source
# File lib/undo/serializer/primitive.rb, line 31 def serialize?(object) case object when Integer, Float, Symbol, String, true, false, nil then true when Array, Hash then object.empty? else false end end
Private Instance Methods
get_option(name, options)
click to toggle source
# File lib/undo/serializer/primitive.rb, line 44 def get_option(name, options) options.fetch name.to_sym do options.fetch name.to_s end end