Sha256: 061f0d8bb431f556658def15f9d5f08ceb561bfa40bfb1d664f99f0933956889
Contents?: true
Size: 691 Bytes
Versions: 2
Compression:
Stored size: 691 Bytes
Contents
module Garb class ReportResponse KEYS = ['dxp:metric', 'dxp:dimension'] def initialize(response_body, instance_klass = OpenStruct) @xml = response_body @instance_klass = instance_klass end def results @results ||= parse end private def parse entries.map do |entry| @instance_klass.new(Hash[ values_for(entry).map {|v| [Garb.from_ga(v['name']), v['value']]} ]) end end def entries entry_hash = Crack::XML.parse(@xml) entry_hash ? [entry_hash['feed']['entry']].flatten.compact : [] end def values_for(entry) KEYS.map {|k| entry[k]}.flatten.compact end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
garb-0.9.0 | lib/garb/report_response.rb |
garb-0.8.5 | lib/garb/report_response.rb |