class Targetmy::Config::Site::Teaser

Constants

REQUIRED_ADS_KEYS
REQUIRED_KEYS
SUPPORTED_ADS_KEYS
SUPPORTED_KEYS

Attributes

ads[R]
campaign_name[R]
type[R]

Public Class Methods

new(config) click to toggle source
# File lib/targetmy/config/site/teaser.rb, line 12
def initialize(config)
  parse config
end

Public Instance Methods

parse(config) click to toggle source
# File lib/targetmy/config/site/teaser.rb, line 16
def parse(config)
  config_required_items = REQUIRED_KEYS & config.keys
  raise Targetmy::MissingRequiredKeys if config_required_items.length != REQUIRED_KEYS.length

  SUPPORTED_KEYS.each do |key|
    next unless config.has_key?(key)

    case key
    when :ads
      @ads = []
      parse_ads config[key]
    else
      instance_variable_set("@#{key}", config[key])
    end
  end
end
parse_ads(ads) click to toggle source
# File lib/targetmy/config/site/teaser.rb, line 33
def parse_ads(ads)
  ads = ads.is_a?(Hash) ? [ads] : ads

  ads.each do |ad|
    ad_obj = OpenStruct.new

    ad_required_items = REQUIRED_ADS_KEYS & ad.keys
    raise Targetmy::MissingRequiredKeys if ad_required_items.length != REQUIRED_ADS_KEYS.length

    SUPPORTED_ADS_KEYS.each do |key|
      next unless ad.has_key?(key)

      ad_obj["#{key}"] = ad[key]
    end

    @ads << ad_obj
  end
end