Module: AnalyticsOps::Reports::Period

Defined in:
lib/analytics_ops/reports/period.rb,
sig/analytics_ops.rbs

Overview

Builds bounded GA4 date ranges for simple CLI and AI report requests.

Constant Summary collapse

DEFAULT_DAYS =

Returns:

  • (Integer)
28
MAX_DAYS =

Returns:

  • (Integer)
1_825
ISO_DATE =
/\A\d{4}-\d{2}-\d{2}\z/

Class Method Summary collapse

Class Method Details

.resolve(last_days: nil, start_date: nil, end_date: nil, compare: false) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/analytics_ops/reports/period.rb', line 15

def resolve(last_days: nil, start_date: nil, end_date: nil, compare: false)
  validate_compare!(compare)
  validate_combination!(last_days:, start_date:, end_date:)
  return nil if last_days.nil? && start_date.nil? && !compare

  if start_date
    absolute_ranges(start_date:, end_date:, compare:)
  else
    relative_ranges(last_days || DEFAULT_DAYS, compare)
  end
end