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