Class: GoogleAnalytics::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/google_analytics/report.rb

Instance Method Summary collapse

Constructor Details

#initialize(account, options = {}) ⇒ Report

Returns a new instance of Report.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/google_analytics/report.rb', line 4

def initialize(, options={})
  @account = 
  @options = {
    :ids => "ga:#{.profile_id}",
    :metrics => ga_prefix(options.delete(:metrics)),
    :dimensions => ga_prefix(options.delete(:dimensions)),
    :'start-date' => date_format(options.delete(:start) || one_month_ago),
    :'end-date' => date_format(options.delete(:end) || Time.now)
  }.merge(options)
  
  if filters = options.delete(:filters)
    @options[:filters] = ga_prefix(filters)
  end
  
  if sort = options.delete(:sort)
    @options[:sort] = ga_prefix(sort)
  end
end

Instance Method Details

#eachObject



23
24
25
26
27
28
29
30
31
32
# File 'lib/google_analytics/report.rb', line 23

def each
  page = 1
  items = rows(page)
  
  while !items.empty?
    yield items.pop
    
    items = rows(page+=1) if items.empty?
  end
end

#get(options = {}) ⇒ Object



41
42
43
# File 'lib/google_analytics/report.rb', line 41

def get(options={})
  @account.client.get('/feeds/data', @options.merge(options))
end

#rows(page = 1, per_page = 10000) ⇒ Object



34
35
36
37
38
39
# File 'lib/google_analytics/report.rb', line 34

def rows(page=1, per_page=10000)
  parse_rows(get( 
    :"start-index" => start_index(page, per_page), 
    :'max-results' => per_page  
  ))
end