module RHC::Rest::Membership

Public Class Methods

included(other) click to toggle source
# File lib/rhc/rest/membership.rb, line 80
def self.included(other)
end

Public Instance Methods

compact_members() click to toggle source
# 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
default_member_role() click to toggle source
# File lib/rhc/rest/membership.rb, line 91
def default_member_role
  'edit'
end
delete_members(options={}) click to toggle source
# 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
leave(options={}) click to toggle source
# 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
members() click to toggle source
# 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
owner() click to toggle source
# File lib/rhc/rest/membership.rb, line 144
def owner
  members.find(&:owner?)
rescue RHC::MembersNotSupported
  nil
end
supports_members?() click to toggle source
# File lib/rhc/rest/membership.rb, line 83
def supports_members?
  supports? 'LIST_MEMBERS'
end
supports_update_members?() click to toggle source
# File lib/rhc/rest/membership.rb, line 87
def supports_update_members?
  supports? 'UPDATE_MEMBERS'
end
update_members(members, options={}) click to toggle source
# 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