class Muesli::Serializers::Base
Attributes
whitelisted_attributes[RW]
model[RW]
user[RW]
Public Class Methods
new(model)
click to toggle source
# File lib/muesli/serializers/base.rb, line 10 def initialize(model) self.model = model end
Public Instance Methods
serialize()
click to toggle source
# File lib/muesli/serializers/base.rb, line 14 def serialize return serialize_from_model(self.class.whitelisted_attributes || []) end
Protected Instance Methods
map_from_source(attribute_source, attr)
click to toggle source
# File lib/muesli/serializers/base.rb, line 30 def map_from_source(attribute_source, attr) if attribute_source.respond_to?(attr) begin [ attr, serialize_value( attribute_source.send(attr) ) ] rescue ActiveModel::MissingAttributeError nil end end end
serialize_attributes(attribute_source, attribute_list)
click to toggle source
# File lib/muesli/serializers/base.rb, line 24 def serialize_attributes(attribute_source, attribute_list) return attribute_list.map do |attr| map_from_source(attribute_source, attr) end.compact.to_h end
serialize_from_model(attribute_list)
click to toggle source
# File lib/muesli/serializers/base.rb, line 20 def serialize_from_model(attribute_list) serialize_attributes(model, attribute_list) end
serialize_value(value)
click to toggle source
# File lib/muesli/serializers/base.rb, line 40 def serialize_value(value) if Muesli::AttributeSerializers.const_defined?(value.class.to_s, false) return Muesli::AttributeSerializers.const_get(value.class.to_s, false).new(value).serialize else return Muesli::AttributeSerializers::Base.new(value).serialize end end