Class: Undo::Serializer::Primitive
- Inherits:
-
Object
- Object
- Undo::Serializer::Primitive
- Defined in:
- lib/undo/serializer/primitive.rb
Instance Method Summary collapse
- #deserialize(primitive_data, options = {}) ⇒ Object
- #deserialize?(hash) ⇒ Boolean
- #name ⇒ Object
- #serialize(primitive, options = {}) ⇒ Object
- #serialize?(object) ⇒ Boolean
Instance Method Details
#deserialize(primitive_data, options = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/undo/serializer/primitive.rb', line 16 def deserialize(primitive_data, = {}) 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) ⇒ Boolean
39 40 41 |
# File 'lib/undo/serializer/primitive.rb', line 39 def deserialize?(hash) name == (hash[:serializer] || hash["serializer"]) rescue false end |
#name ⇒ Object
4 5 6 |
# File 'lib/undo/serializer/primitive.rb', line 4 def name "primitive" end |
#serialize(primitive, options = {}) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/undo/serializer/primitive.rb', line 8 def serialize(primitive, = {}) { serializer: name, object: primitive, class_name: primitive.class.name } end |
#serialize?(object) ⇒ Boolean
31 32 33 34 35 36 37 |
# 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 |