Sha256: c7a3ec3481c260968500b7f74eb1e1efb8008337fab31074d2692f99dbdd2b6d
Contents?: true
Size: 789 Bytes
Versions: 1
Compression:
Stored size: 789 Bytes
Contents
module MoneyS3 module BaseElement EMPTY_ARRAY = [] attr_accessor :raw def initialize(raw) @raw = raw end private def at(locator) return nil if raw.nil? raw[locator] end def submodel_at(klass, locator) element_xml = at locator klass.new(element_xml) if element_xml end def array_of_at(klass, locator) elements = raw.dig(*locator) || [] if elements.is_a? Hash elements = [elements] end elements.map do |raw| klass.new(raw) end end def all(locator) return [] if raw.nil? result = raw[locator] if result.is_a? Hash [result] elsif result.is_a? Array result else EMPTY_ARRAY end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
money_s3-0.2.0 | lib/money_s3/base_element.rb |