Module: EffectiveMembershipsUser

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/effective_memberships_user.rb

Overview

EffectiveMembershipsUser

Mark your user model with effective_memberships_user to get all the includes

Defined Under Namespace

Modules: Base, ClassMethods

Instance Method Summary collapse

Instance Method Details

#build_representative(organization:) ⇒ Object

Find or build



63
64
65
# File 'app/models/concerns/effective_memberships_user.rb', line 63

def build_representative(organization:)
  representative(organization: organization) || representatives.build(organization: organization)
end

#individual_membership_present?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'app/models/concerns/effective_memberships_user.rb', line 50

def individual_membership_present?
  membership.present? && !membership.marked_for_destruction?
end

#membership_organizationsObject



71
72
73
# File 'app/models/concerns/effective_memberships_user.rb', line 71

def membership_organizations
  organizations.select { |organization| organization.is?(:member) && !organization.archived? }
end

#membership_present?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'app/models/concerns/effective_memberships_user.rb', line 46

def membership_present?
  individual_membership_present? || organization_membership_present?
end

#membershipsObject

Instance Methods



38
39
40
# File 'app/models/concerns/effective_memberships_user.rb', line 38

def memberships
  Array(membership) + membership_organizations.map(&:membership)
end

#memberships_ownersObject



42
43
44
# File 'app/models/concerns/effective_memberships_user.rb', line 42

def memberships_owners
  Array(is?(:member) ? self : nil) + membership_organizations
end

#organization_membership_present?(except: nil) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
# File 'app/models/concerns/effective_memberships_user.rb', line 54

def organization_membership_present?(except: nil)
  organizations.reject(&:archived?).any? { |organization| organization != except && organization.membership_present? }
end

#organizationsObject



67
68
69
# File 'app/models/concerns/effective_memberships_user.rb', line 67

def organizations
  representatives.reject(&:marked_for_destruction?).map(&:organization)
end

#representative(organization:) ⇒ Object



58
59
60
# File 'app/models/concerns/effective_memberships_user.rb', line 58

def representative(organization:)
  representatives.find { |rep| rep.organization_id == organization.id } if organization
end