Class: SoapyBing::Ads::Reports::Base

Inherits:
Object
  • Object
show all
Includes:
Helpers::ClassName
Defined in:
lib/soapy_bing/ads/reports/base.rb

Direct Known Subclasses

CampaignPerformanceReport

Defined Under Namespace

Classes: UnknownParserError

Constant Summary collapse

DEFAULT_REPORT_SETTINGS =
{
  format:      'Csv',
  language:    'English',
  name:        'MyReport',
  aggregation: 'HourOfDay',
  columns:     %w(TimePeriod CampaignName Impressions Clicks Spend CampaignId)
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers::ClassName

#class_name

Constructor Details

#initialize(options) ⇒ Base

Returns a new instance of Base.



21
22
23
24
25
# File 'lib/soapy_bing/ads/reports/base.rb', line 21

def initialize(options)
  @oauth_credentials = options.fetch(:oauth_credentials)
  @account = options.fetch(:account)
  @settings = OpenStruct.new(DEFAULT_REPORT_SETTINGS.merge(options.fetch(:settings, {})))
end

Instance Attribute Details

#accountObject (readonly)

Returns the value of attribute account.



19
20
21
# File 'lib/soapy_bing/ads/reports/base.rb', line 19

def 
  @account
end

#oauth_credentialsObject (readonly)

Returns the value of attribute oauth_credentials.



19
20
21
# File 'lib/soapy_bing/ads/reports/base.rb', line 19

def oauth_credentials
  @oauth_credentials
end

#settingsObject (readonly)

Returns the value of attribute settings.



19
20
21
# File 'lib/soapy_bing/ads/reports/base.rb', line 19

def settings
  @settings
end

Instance Method Details

#rowsObject



27
28
29
# File 'lib/soapy_bing/ads/reports/base.rb', line 27

def rows
  @rows ||= parser_class.new(Helpers::ZipDownloader.new(download_url).read).rows
end