# File lib/rhc/rest/membership.rb, line 80 def self.included(other) end
# File lib/rhc/rest/membership.rb, line 106 def compact_members arr = members.reject(&:owner?) rescue [] if arr.length > 5 arr = arr.sort_by(&:name) admin, arr = arr.partition(&:admin?) edit, arr = arr.partition(&:editor?) view, arr = arr.partition(&:viewer?) admin << "Admins" if admin.present? edit << "Editors" if edit.present? view << "Viewers" if view.present? arr.map!(&:to_s) admin.concat(edit).concat(view).concat(arr) elsif arr.present? arr.sort_by{ |m| [m.role_weight, m.name] }.join(', ') end end
# File lib/rhc/rest/membership.rb, line 91 def default_member_role 'edit' end
# File lib/rhc/rest/membership.rb, line 130 def delete_members(options={}) raise RHC::MembersNotSupported unless supports_members? rest_method "LIST_MEMBERS", nil, {:method => :delete}.merge(options) ensure @members = attributes['members'] = nil end
# File lib/rhc/rest/membership.rb, line 137 def leave(options={}) raise RHC::MembersNotSupported.new("The server does not support leaving this resource.") unless supports? 'LEAVE' rest_method "LEAVE", nil, options ensure @members = attributes['members'] = nil end
# File lib/rhc/rest/membership.rb, line 95 def members @members ||= if (members = attributes['members']).nil? debug "Getting all members for #{id}" raise RHC::MembersNotSupported unless supports_members? rest_method 'LIST_MEMBERS' else members.map{ |m| Member.new(m, client) } end end
# File lib/rhc/rest/membership.rb, line 144 def owner members.find(&:owner?) rescue RHC::MembersNotSupported nil end
# File lib/rhc/rest/membership.rb, line 83 def supports_members? supports? 'LIST_MEMBERS' end
# File lib/rhc/rest/membership.rb, line 87 def supports_update_members? supports? 'UPDATE_MEMBERS' end
# File lib/rhc/rest/membership.rb, line 123 def update_members(members, options={}) raise "Members must be an array" unless members.is_a?(Array) raise RHC::MembersNotSupported unless supports_members? raise RHC::ChangeMembersOnResourceNotSupported unless supports_update_members? @members = (attributes['members'] = rest_method('UPDATE_MEMBERS', {:members => members}, options)) end