Sha256: 53e762c67455d6c906a68b1c471ef8eb844e890a383d48dcf51b150bc05c858e
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
module RockRMS module Response class Base attr_reader :data BASE_MAPPING = { id: 'Id', created_date_time: 'CreatedDateTime', modified_date_time: 'ModifiedDateTime', attributes: 'Attributes', attribute_values: 'AttributeValues' }.freeze def self.format(data) new(data).format end def initialize(data) @data = data end def format if data.is_a?(Array) data.map { |item| format_single(item) } else format_single(data) end end def to_h(dict, data) return {} if data.nil? dict .merge(BASE_MAPPING) .each_with_object({}) do |(l, r), object| if l == :attributes || l == :attribute_values format_klass = l == :attributes ? Attribute : AttributeValue object[l] = format_attributes(data[r], format_klass) else object[l] = data[r] end end end def format_attributes(res, klass) return res if res.nil? res.each_with_object({}) do |(attr, val), object| object[attr] = klass.format(val) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rock_rms-8.1.0 | lib/rock_rms/response/base.rb |
rock_rms-8.0.0 | lib/rock_rms/response/base.rb |