Class: AdwordsApi::ReportQueryBuilder
- Inherits:
-
QueryBuilder
- Object
- QueryBuilder
- AdwordsApi::ReportQueryBuilder
- Defined in:
- lib/adwords_api/query_utils/report_query_builder.rb
Instance Method Summary collapse
- #build ⇒ Object
- #configure {|_self| ... } ⇒ Object
- #during(start_date, end_date) ⇒ Object
- #during_date_range(date_range) ⇒ Object
- #from(report_name) ⇒ Object
-
#initialize(api) {|_self| ... } ⇒ ReportQueryBuilder
constructor
A new instance of ReportQueryBuilder.
- #select(*fields) ⇒ Object
Methods inherited from QueryBuilder
Constructor Details
#initialize(api) {|_self| ... } ⇒ ReportQueryBuilder
Returns a new instance of ReportQueryBuilder.
25 26 27 28 29 30 31 32 33 |
# 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 |
Instance Method Details
#build ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# 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| ... } ⇒ Object
35 36 37 |
# File 'lib/adwords_api/query_utils/report_query_builder.rb', line 35 def configure() yield self end |
#during(start_date, end_date) ⇒ Object
51 52 53 54 |
# 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) ⇒ Object
47 48 49 |
# 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) ⇒ Object
43 44 45 |
# File 'lib/adwords_api/query_utils/report_query_builder.rb', line 43 def from(report_name) @from = report_name end |
#select(*fields) ⇒ Object
39 40 41 |
# File 'lib/adwords_api/query_utils/report_query_builder.rb', line 39 def select(*fields) @select = fields end |