class SimpleGaReports
Public Class Methods
configure(report_config: 'config/ga_reporting_config.yml', filters: nil, **options)
click to toggle source
# File lib/simple_ga_reporting/simple_ga_reports.rb, line 9 def configure(report_config: 'config/ga_reporting_config.yml', filters: nil, **options) # TODO: oh... global variable... $model_config = YAML.load_file(report_config) if filters.nil? $filters_file = File.expand_path('../config/filters.rb', __FILE__) else $filters_file = filters end require 'simple_ga_reporting/legato_ga_model' query_parameters($model_config, options) end
filtered_results(key_and_email: 'config/key_and_email.yml', private_key: nil, client_email: nil)
click to toggle source
# File lib/simple_ga_reporting/simple_ga_reports.rb, line 23 def filtered_results(key_and_email: 'config/key_and_email.yml', private_key: nil, client_email: nil) raw_results = raw_results(key_and_email, private_key: private_key, client_email: client_email) filtering(raw_results) end
filtering(results)
click to toggle source
# File lib/simple_ga_reporting/simple_ga_reports.rb, line 44 def filtering(results) if @filters @filters.each do |filter_symbol_name| results = results.send(filter_symbol_name) # TODO: oh... send method... end end results end
ga_profile(key_and_email, private_key:, client_email:)
click to toggle source
TODO: should specify by profile id, too
# File lib/simple_ga_reporting/simple_ga_reports.rb, line 55 def ga_profile(key_and_email, private_key:, client_email:) ga_user = create_ga_user(key_and_email, private_key: private_key, client_email: client_email) ga_user.profiles.each do |profile| return profile if profile.name === @profile_name end end
query_parameters(model_config, **options)
click to toggle source
HACK: not cool descriptions
# File lib/simple_ga_reporting/simple_ga_reports.rb, line 64 def query_parameters(model_config, **options) @start_date = options[:start_date] ? options[:start_date] : model_config['start_date'] @end_date = options[:end_date] ? options[:end_date] : model_config['end_date'] @limit = options[:limit] ? options[:limit] : model_config['limit'] # @offset = options[:offset] ? options[:offset] : model_config['offset'] @sort = options[:sort] ? options[:sort] : model_config['sort'] # Array # @quota_user = options[:quota_user] ? options[:quota_user] : model_config['quota_user'] @sampling_level = options[:sampling_level] ? options[:sampling_level] : 'HIGHER_PRECISION' # @segment_id = options[:segment_id] ? options[:segment_id] : model_config['segment_id'] @filters = options[:filters] ? options[:filters] : model_config['filters'] # Array @profile_name = options[:profile_name] ? options[:profile_name] : model_config['profile_name'] # for RSpec (ummm... not good) { start_date: @start_date, end_date: @end_date, limit: @limit, offset: @offset, sort: @sort, quota_user: @quota_user, sampling_level: @sampling_level, segment_id: @segment_id, filters: @filters, profile_name: @profile_name, } end
raw_results(key_and_email, private_key:, client_email:)
click to toggle source
# File lib/simple_ga_reporting/simple_ga_reports.rb, line 28 def raw_results(key_and_email, private_key:, client_email:) # 'legato_ga_model' method is generated by Model class automatically query = ga_profile(key_and_email, private_key: private_key, client_email: client_email).legato_ga_model query.results( start_date: @start_date, end_date: @end_date, limit: @limit, # offset: @offset, sort: @sort, # quota_user: @quota_user, sampling_level: @sampling_level, # segment_id: @segment_id, ) end