class SimpleSerializer::Serializer

Attributes

_hash_attributes[RW]
object[RW]

Public Class Methods

as_json(object)
Alias for: serialize
hash_attributes(*attrs) click to toggle source
# File lib/simple_serializer/serializer.rb, line 34
def hash_attributes(*attrs)
  @_hash_attributes.concat attrs

  attrs.each do |attr|
    define_method attr do
      object.send(attr)
    end unless method_defined?(attr)
  end
end
inherited(base) click to toggle source
# File lib/simple_serializer/serializer.rb, line 30
def inherited(base)
  base._hash_attributes = []
end
new(object, _={}) click to toggle source
# File lib/simple_serializer/serializer.rb, line 57
def initialize(object, _={})
  @object = object
end
serialize(object) click to toggle source
# File lib/simple_serializer/serializer.rb, line 48
def serialize(object)
  self.new(object).serialize
end
Also aliased as: as_json
serialize_array(objects) click to toggle source
# File lib/simple_serializer/serializer.rb, line 44
def serialize_array(objects)
  objects.map { |obj| serialize(obj) }
end

Public Instance Methods

as_json(_={})
Alias for: serialize
extract_attributes() click to toggle source
# File lib/simple_serializer/serializer.rb, line 61
def extract_attributes
  self.class._hash_attributes.dup.each_with_object({}) do |name, hash|
    hash[name] = send(name)
  end
end
serialize(_={}) click to toggle source
# File lib/simple_serializer/serializer.rb, line 67
def serialize(_={})
  return nil if object.nil?
  extract_attributes
end
Also aliased as: as_json