class EdgycircleToolbox::Sonapi::Serializer
Attributes
blueprint[R]
Public Class Methods
new(blueprint)
click to toggle source
# File lib/edgycircle_toolbox/sonapi/serializer.rb, line 6 def initialize(blueprint) @blueprint = blueprint end
Public Instance Methods
call(object)
click to toggle source
# File lib/edgycircle_toolbox/sonapi/serializer.rb, line 10 def call(object) { "type" => blueprint.type, "id" => object.id, "attributes" => collect_attributes(object) } end
Private Instance Methods
collect_attributes(object)
click to toggle source
# File lib/edgycircle_toolbox/sonapi/serializer.rb, line 19 def collect_attributes(object) Hash[ blueprint.attribute_names(object).map do |attribute_name| [format_attribute_name(attribute_name), object.send(attribute_name)] end ] end
format_attribute_name(attribute_name)
click to toggle source
# File lib/edgycircle_toolbox/sonapi/serializer.rb, line 27 def format_attribute_name(attribute_name) attribute_name.gsub("_", "-") end