module Access class Spot def self.search_by_channel(channel_key, options = {}) Access::api.new.search_spots_by_channel channel_key, options end def self.search_by_campaign(campaign_key, options = {}) Access::api.new.search_spots_by_campaign campaign_key, options end def self.find(spot_key, options = {}) Access::api.new.find_spot spot_key, options end def self.process_batch(chunk) chunk.map { |campaign| new(campaign) } end def initialize(values) self.class.class_eval {attr_reader *values.keys } values.each do |attribute_name, attribute_value| self.instance_variable_set("@#{attribute_name}", attribute_value) end @links = Access::Link.new(@links) end end end