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 = Access::User.new(@user) if @user @member = Access::Member.new(@member.tap {|m| m.delete(:user) }) if @member @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