class AdwordsApi::ReportQueryBuilder

Public Class Methods

new(api) { |self| ... } click to toggle source
Calls superclass method AdwordsApi::QueryBuilder::new
# File lib/adwords_api/query_utils/report_query_builder.rb, line 25
def initialize(api)
  super(api)
  @select = nil
  @from = nil
  @during_range = nil
  @during_start = nil
  @during_end = nil
  yield self if block_given?
end

Public Instance Methods

build() click to toggle source
# File lib/adwords_api/query_utils/report_query_builder.rb, line 56
def build()
  raise ArgumentError,
      'Must specify SELECT clause for valid AWQL' if @select.nil?
  raise ArgumentError,
      'Must specify FROM clause for valid AWQL' if @from.nil?
  if !@during_range.nil? && (!@during_start.nil? || !@during_end.nil?)
    raise ArgumentError,
        'Cannot specify both date range and start/end dates.'
  end
  result = sprintf('SELECT %s', @select.join(', '))
  result += sprintf(' FROM %s', @from)
  result += build_where()
  if !@during_range.nil?
    result += sprintf(' DURING %s', @during_range)
  elsif !@during_start.nil? || !@during_end.nil?
    if @during_start.nil?
      raise ArgumentError, 'Cannot specify end date without start date.'
    elsif @during_end.nil?
      raise ArgumentError, 'Cannot specify start date without end date.'
    end
    result += sprintf(' DURING %s,%s', @during_start, @during_end)
  end
  @api.utils_reporter.report_query_builder_used()
  return ReportQuery.new(result)
end
configure() { |self| ... } click to toggle source
# File lib/adwords_api/query_utils/report_query_builder.rb, line 35
def configure()
  yield self
end
during(start_date, end_date) click to toggle source
# File lib/adwords_api/query_utils/report_query_builder.rb, line 51
def during(start_date, end_date)
  @during_start = start_date
  @during_end = end_date
end
during_date_range(date_range) click to toggle source
# File lib/adwords_api/query_utils/report_query_builder.rb, line 47
def during_date_range(date_range)
  @during_range = date_range
end
from(report_name) click to toggle source
# File lib/adwords_api/query_utils/report_query_builder.rb, line 43
def from(report_name)
  @from = report_name
end
select(*fields) click to toggle source
# File lib/adwords_api/query_utils/report_query_builder.rb, line 39
def select(*fields)
  @select = fields
end