Sha256: f6cc32fd1275d06a115162a4d8a4401842eb4796924b27501e8add06e189ff62
Contents?: true
Size: 1.33 KB
Versions: 4
Compression:
Stored size: 1.33 KB
Contents
module RockRMS module Response class Base attr_reader :data BASE_MAPPING = { id: 'Id', guid: 'Guid', created_date_time: 'CreatedDateTime', modified_date_time: 'ModifiedDateTime', created_by_person_alias_id: 'CreatedByPersonAliasId', attributes: 'Attributes', attribute_values: 'AttributeValues', foreign_key: 'ForeignKey' }.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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rock_rms-9.13.0 | lib/rock_rms/response/base.rb |
rock_rms-9.12.0 | lib/rock_rms/response/base.rb |
rock_rms-9.11.0 | lib/rock_rms/response/base.rb |
rock_rms-9.10.0 | lib/rock_rms/response/base.rb |