class MostPopular::Analytics::GoogleAnalyticsBuilder

Public Instance Methods

api(api) click to toggle source
# 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) click to toggle source
# File lib/most-popular/google_analytics.rb, line 54
def application(args)
  @application_name = args[:application_name]
  @application_version = args[:application_version]
end
build() click to toggle source
# 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) click to toggle source
# File lib/most-popular/google_analytics.rb, line 65
def filter(args)
  @filter = args[:filter]
end
key_file(args) click to toggle source
# 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) click to toggle source
# File lib/most-popular/google_analytics.rb, line 44
def service_account(args)
  @service_account_email = args[:service_account_email]
  @profile_id = args[:profile_id]
end