Class: MostPopular::Analytics::GoogleAnalyticsBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/most-popular/google_analytics.rb

Instance Method Summary collapse

Instance Method Details

#api(api) ⇒ Object



59
60
61
62
63
# File 'lib/most-popular/google_analytics.rb', line 59

def api(api)
  raise 'API not yet supported' unless api == :api_v3
  @api_name = 'analytics'
  @api_version = 'v3'
end

#application(args) ⇒ Object



54
55
56
57
# File 'lib/most-popular/google_analytics.rb', line 54

def application(args)
  @application_name = args[:application_name]
  @application_version = args[:application_version]
end

#buildObject



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/most-popular/google_analytics.rb', line 69

def build
  #TODO check if account is set up or else raise exception
  client = Google::APIClient.new(
    :application_name => @application_name,
    :application_version => @application_version
  )
  key = Google::APIClient::KeyUtils.load_from_pkcs12(@key_file, @key_secret)
  client.authorization =  Signet::OAuth2::Client.new(
    :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
    :audience => 'https://accounts.google.com/o/oauth2/token',
    :scope => 'https://www.googleapis.com/auth/analytics.readonly',
    :issuer => @service_account_email,
    :signing_key => key)
  client.authorization.fetch_access_token!
  api_method = client.discovered_api(@api_name, @api_version).data.ga.get
  GoogleAnalytics.new(client, api_method, @profile_id, @filter)
end

#filter(args) ⇒ Object



65
66
67
# File 'lib/most-popular/google_analytics.rb', line 65

def filter(args)
  @filter = args[:filter]
end

#key_file(args) ⇒ Object



49
50
51
52
# File 'lib/most-popular/google_analytics.rb', line 49

def key_file(args)
  @key_file = args[:filename]
  @key_secret = args[:secret]
end

#service_account(args) ⇒ Object



44
45
46
47
# File 'lib/most-popular/google_analytics.rb', line 44

def (args)
  @service_account_email = args[:service_account_email]
  @profile_id = args[:profile_id]
end