class Garb::ReportResponse
Public Class Methods
new(response_body, instance_klass = OpenStruct)
click to toggle source
# File lib/garb/report_response.rb, line 4 def initialize(response_body, instance_klass = OpenStruct) @response_body = response_body @instance_klass = instance_klass end
Public Instance Methods
results()
click to toggle source
# File lib/garb/report_response.rb, line 9 def results if @results.nil? @results = ResultSet.new(parse) @results.total_results = total_results @results.sampled = sampled? end @results end
sampled?()
click to toggle source
# File lib/garb/report_response.rb, line 22 def sampled? data[:contains_sampled_data] end
total_results()
click to toggle source
# File lib/garb/report_response.rb, line 18 def total_results data[:total_results] end
Private Instance Methods
column_headers()
click to toggle source
# File lib/garb/report_response.rb, line 37 def column_headers data[:column_headers] || [] end
data()
click to toggle source
# File lib/garb/report_response.rb, line 45 def data unless @data @data = MultiJson.load @response_body @data = @data.inject({}) do |data, pair| key, value = pair data[key.underscore.to_sym] = value data end end @data end
keys()
click to toggle source
# File lib/garb/report_response.rb, line 27 def keys @keys ||= column_headers.map { |header| Garb.from_ga header['name'] } end
parse()
click to toggle source
# File lib/garb/report_response.rb, line 31 def parse rows.map do |row| @instance_klass.new(Hash[*keys.zip(row).flatten]) end end
rows()
click to toggle source
# File lib/garb/report_response.rb, line 41 def rows data[:rows] || [] end