Module: Adhocracy::ActsAsGroup::InstanceMethods
- Defined in:
- lib/adhocracy/acts_as_group.rb
Instance Method Summary collapse
- #add_member(member) ⇒ Object
- #add_officer(member) ⇒ Object
- #demote_officer(member) ⇒ Object
- #has_member?(member) ⇒ Boolean
- #has_officer?(member) ⇒ Boolean
- #invite_member(member) ⇒ Object
- #invited?(member, params = {}) ⇒ Boolean
- #invited_members ⇒ Object
- #members ⇒ Object
- #membership_requests ⇒ Object
- #officers ⇒ Object
- #recieved_request_from?(member, params = {}) ⇒ Boolean
- #remove_member(member) ⇒ Object
Instance Method Details
#add_member(member) ⇒ Object
40 41 42 43 |
# File 'lib/adhocracy/acts_as_group.rb', line 40 def add_member(member) MembershipAssociation.new(member: member, group: self). create_membership end |
#add_officer(member) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/adhocracy/acts_as_group.rb', line 45 def add_officer(member) membership = Adhocracy::Membership.where(member: member, group: self). 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 |
#demote_officer(member) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/adhocracy/acts_as_group.rb', line 57 def demote_officer(member) membership = Adhocracy::Membership.find_by(member: member, group: self) return false if !membership.present? || !membership.officer? || membership.is_necessary_officer? return membership.update_column(:officer, false) end |
#has_member?(member) ⇒ Boolean
74 75 76 |
# File 'lib/adhocracy/acts_as_group.rb', line 74 def has_member?(member) MembershipAssociation.new(member: member, group: self).verify_membership end |
#has_officer?(member) ⇒ Boolean
78 79 80 81 |
# File 'lib/adhocracy/acts_as_group.rb', line 78 def has_officer?(member) Adhocracy::Membership.where(member: member, group: self, officer: true).exists? end |
#invite_member(member) ⇒ Object
64 65 66 67 |
# File 'lib/adhocracy/acts_as_group.rb', line 64 def invite_member(member) MembershipAssociation.new(member: member, group: self). create_membership_invitation end |
#invited?(member, params = {}) ⇒ Boolean
83 84 85 86 |
# File 'lib/adhocracy/acts_as_group.rb', line 83 def invited?(member, params = {}) params.merge!({ member: member, group: self }) MembershipAssociation.new(params).verify_membership_invitation end |
#invited_members ⇒ Object
30 31 32 33 |
# File 'lib/adhocracy/acts_as_group.rb', line 30 def invited_members MembershipAssociation.new(group: self). list_members_for_membership_invitation end |
#members ⇒ Object
21 22 23 |
# File 'lib/adhocracy/acts_as_group.rb', line 21 def members MembershipAssociation.new(group: self).list_members_for_membership end |
#membership_requests ⇒ Object
35 36 37 38 |
# File 'lib/adhocracy/acts_as_group.rb', line 35 def membership_requests MembershipAssociation.new(group: self). list_members_for_membership_request end |
#officers ⇒ Object
25 26 27 28 |
# File 'lib/adhocracy/acts_as_group.rb', line 25 def officers Adhocracy::Membership.where(group: self, officer: true). includes(:member).collect { |membership| membership.member } end |
#recieved_request_from?(member, params = {}) ⇒ Boolean
88 89 90 91 |
# File 'lib/adhocracy/acts_as_group.rb', line 88 def recieved_request_from?(member, params = {}) params.merge!({ member: member, group: self }) MembershipAssociation.new(params).verify_membership_request end |
#remove_member(member) ⇒ Object
69 70 71 72 |
# File 'lib/adhocracy/acts_as_group.rb', line 69 def remove_member(member) MembershipAssociation.new(member: member, group: self). destroy_membership end |