module Access class Campaign def self.search(options = {}) Access::api.new.search_campaigns options end def self.find(campaign_key, options = {}) Access::api.new.find_campaign campaign_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 end end end