Module: Adhocracy::ActsAsMember::InstanceMethods

Defined in:
lib/adhocracy/acts_as_member.rb

Instance Method Summary collapse

Instance Method Details

#administrationsObject



25
26
27
28
# File 'lib/adhocracy/acts_as_member.rb', line 25

def administrations
  Adhocracy::Membership.where(member: self, officer: true).
    includes(:group).collect { |membership| membership.group }
end

#demote(member) ⇒ Object



56
57
58
59
60
# File 'lib/adhocracy/acts_as_member.rb', line 56

def demote(member)
  membership = Adhocracy::Membership.find_by(member: self, group: member)
  return false if !membership.present? || !membership.officer?
  return membership.update_column(:officer, false)
end

#group_invitationsObject



30
31
32
33
# File 'lib/adhocracy/acts_as_member.rb', line 30

def group_invitations
  MembershipAssociation.new(member: self).
    list_groups_for_membership_invitation
end

#groupsObject



21
22
23
# File 'lib/adhocracy/acts_as_member.rb', line 21

def groups
  MembershipAssociation.new(member: self).list_groups_for_membership
end

#invited_to?(group, params = {}) ⇒ Boolean

Returns:

  • (Boolean)


80
81
82
83
# File 'lib/adhocracy/acts_as_member.rb', line 80

def invited_to?(group, params = {})
  params.merge!({ member: self, group: group })
  MembershipAssociation.new(params).verify_membership_invitation
end

#join_group(group) ⇒ Object



40
41
42
# File 'lib/adhocracy/acts_as_member.rb', line 40

def join_group(group)
  MembershipAssociation.new(member: self, group: group).create_membership
end

#leave_group(group) ⇒ Object



67
68
69
# File 'lib/adhocracy/acts_as_member.rb', line 67

def leave_group(group)
  MembershipAssociation.new(member: self, group: group).destroy_membership
end

#member_of?(group) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/adhocracy/acts_as_member.rb', line 71

def member_of?(group)
  MembershipAssociation.new(member: self, group: group).verify_membership
end

#membership_requestsObject



35
36
37
38
# File 'lib/adhocracy/acts_as_member.rb', line 35

def membership_requests
  MembershipAssociation.new(member: self).
    list_groups_for_membership_request
end

#officer_of?(group) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
78
# File 'lib/adhocracy/acts_as_member.rb', line 75

def officer_of?(group)
  Adhocracy::Membership.where(member: self, group: group,
    officer: true).exists?
end

#promote(group) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/adhocracy/acts_as_member.rb', line 44

def promote(group)
  membership = Adhocracy::Membership.where(member: self, group: group).
    first_or_initialize(officer: true)
  if membership.new_record?
    membership.save
  else
    return false if membership.officer?
    membership.update_column(:officer, true)
  end
  return membership
end

#request_membership_in(group) ⇒ Object



62
63
64
65
# File 'lib/adhocracy/acts_as_member.rb', line 62

def request_membership_in(group)
  MembershipAssociation.new(member: self, group: group).
    create_membership_request
end

#requested_membership_in?(group, params = {}) ⇒ Boolean

Returns:

  • (Boolean)


85
86
87
88
# File 'lib/adhocracy/acts_as_member.rb', line 85

def requested_membership_in?(group, params = {})
  params.merge!({ member: self, group: group })
  MembershipAssociation.new(params).verify_membership_request
end