Module: RHC::Rest::Membership
- Included in:
- Application, Domain
- Defined in:
- lib/rhc/rest/membership.rb
Defined Under Namespace
Classes: Member
Class Method Summary collapse
Instance Method Summary collapse
- #compact_members ⇒ Object
- #delete_members(options = {}) ⇒ Object
- #leave(options = {}) ⇒ Object
- #members ⇒ Object
- #owner ⇒ Object
- #supports_members? ⇒ Boolean
- #supports_update_members? ⇒ Boolean
- #update_members(members, options = {}) ⇒ Object
Class Method Details
.included(other) ⇒ Object
39 40 |
# File 'lib/rhc/rest/membership.rb', line 39 def self.included(other) end |
Instance Method Details
#compact_members ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/rhc/rest/membership.rb', line 61 def compact_members arr = members.reject(&:owner?) rescue [] if arr.length > 5 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 |
#delete_members(options = {}) ⇒ Object
85 86 87 88 89 90 |
# File 'lib/rhc/rest/membership.rb', line 85 def delete_members(={}) raise RHC::MembersNotSupported unless supports_members? rest_method "LIST_MEMBERS", nil, {:method => :delete}.merge() ensure @members = attributes['members'] = nil end |
#leave(options = {}) ⇒ Object
92 93 94 95 96 97 |
# File 'lib/rhc/rest/membership.rb', line 92 def leave(={}) raise RHC::MembersNotSupported unless supports? 'LEAVE' rest_method "LEAVE", nil, ensure @members = attributes['members'] = nil end |
#members ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/rhc/rest/membership.rb', line 50 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 |
#owner ⇒ Object
99 100 101 102 103 |
# File 'lib/rhc/rest/membership.rb', line 99 def owner if o = Array(attribute(:members)).find{ |m| m['owner'] == true } o['name'] || o['login'] end end |
#supports_members? ⇒ Boolean
42 43 44 |
# File 'lib/rhc/rest/membership.rb', line 42 def supports_members? supports? 'LIST_MEMBERS' end |
#supports_update_members? ⇒ Boolean
46 47 48 |
# File 'lib/rhc/rest/membership.rb', line 46 def supports_update_members? supports? 'UPDATE_MEMBERS' end |
#update_members(members, options = {}) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/rhc/rest/membership.rb', line 78 def update_members(members, ={}) 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}, )) end |