module Access class Member def self.process_batch(chunk) chunk.map { |member| new(member) } end def initialize(values) self.class.class_eval {attr_reader *values.keys + [:user] } values.each do |attribute_name, attribute_value| self.instance_variable_set("@#{attribute_name}", attribute_value) end @user = @user ? Access::User.new(@user) : nil @program = Access::Program.new(@program) if @program @organization = Access::Organization.new(@organization) if @organization end def self.show(member_key, options = {}) Access::Api.new.member_show member_key, options end def self.update(member_key, options = {}) Access::Api.new.member_update member_key, options end end end