class EdgycircleToolbox::Sonapi::Deserializer

Attributes

blueprint[R]

Public Class Methods

new(blueprint) click to toggle source
# File lib/edgycircle_toolbox/sonapi/deserializer.rb, line 6
def initialize(blueprint)
  @blueprint = blueprint
end

Public Instance Methods

call(parameters) click to toggle source
# File lib/edgycircle_toolbox/sonapi/deserializer.rb, line 10
def call(parameters)
  Hash[
    filter_parameter_pairs(parameter_pairs(parameters))
  ]
end

Private Instance Methods

filter_parameter_pairs(pairs) click to toggle source
# File lib/edgycircle_toolbox/sonapi/deserializer.rb, line 29
def filter_parameter_pairs(pairs)
  pairs.select { |pair| blueprint.deserialize_parameter?(pair[0], pair[1]) }
end
format_attribute_name(attribute_name) click to toggle source
# File lib/edgycircle_toolbox/sonapi/deserializer.rb, line 25
def format_attribute_name(attribute_name)
  attribute_name.to_s.gsub("-", "_").to_sym
end
parameter_pairs(parameters) click to toggle source
# File lib/edgycircle_toolbox/sonapi/deserializer.rb, line 17
def parameter_pairs(parameters)
  id_pair = [:id, parameters["data"]["id"]]

  parameters["data"]["attributes"].to_a.map do |pair|
    [format_attribute_name(pair[0]), pair[1]]
  end << id_pair
end