class AdManagerApi::AdManagerDate

Public Class Methods

new(api, *args) click to toggle source

Create a new AdManagerDate, a utility class that allows for interoperability between the Ad Manager API's Date objects and ruby's Date class.

Args:

- args:
  - ([year, [month, [day]]]), integer values, uses Date defaults
  - (date), a native ruby Date object
  - (ad_manager_date), an Ad Manager Date hash representation

Returns:

- ad_manager_date: an instance of AdManagerDate
# File lib/ad_manager_api/ad_manager_api_datetime.rb, line 38
def initialize(api, *args)
  @api = api
  @api.utils_reporter.ad_manager_date_used()

  case args.first
  when Hash
    hash = args.first
    date_args = [hash[:year], hash[:month], hash[:day]]
  when Date
    date = args.first
    date_args = [date.year, date.month, date.day]
  else
    date_args = args
  end
  @date = Date.new(*date_args)
end
today(api, *args) click to toggle source

Creates an AdManagerDate object denoting the present day.

# File lib/ad_manager_api/ad_manager_api_datetime.rb, line 56
def self.today(api, *args)
  self.new(api, Date.today(*args))
end

Public Instance Methods

method_missing(name, *args, &block) click to toggle source

When an unrecognized method is applied to AdManagerDate, pass it through to the internal ruby Date.

# File lib/ad_manager_api/ad_manager_api_datetime.rb, line 62
def method_missing(name, *args, &block)
  result = @date.send(name, *args, &block)
  return self.class.new(@api, result) if result.is_a? Date
  return result
end
to_date() click to toggle source

Convert AdManagerDate into a native ruby Date object.

# File lib/ad_manager_api/ad_manager_api_datetime.rb, line 78
def to_date()
  return Date.new(@date.year, @date.month, @date.day)
end
to_h() click to toggle source

Convert AdManagerDate into a hash representation which can be consumed by the Ad Manager API. E.g., a hash that can be passed as PQL Date variables.

Returns:

- ad_manager_datetime: an Ad Manager Date hash representation
# File lib/ad_manager_api/ad_manager_api_datetime.rb, line 73
def to_h()
  return {:year => @date.year, :month => @date.month, :day => @date.day}
end