Class: Effective::Committee

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/effective/committee.rb

Instance Method Summary collapse

Instance Method Details

#build_committee_member(user:) ⇒ Object

Find or build



49
50
51
# File 'app/models/effective/committee.rb', line 49

def build_committee_member(user:)
  committee_member(user: user) || committee_members.build(user: user)
end

#childrenObject



61
62
63
64
65
# File 'app/models/effective/committee.rb', line 61

def children
  committee_folders
    .select { |folder| folder.committee_folder_id.blank? }
    .flat_map { |folder| [folder] + folder.children }
end

#committee_member(user:) ⇒ Object



44
45
46
# File 'app/models/effective/committee.rb', line 44

def committee_member(user:)
  committee_members.find { |member| member.user_id == user.id }
end

#emailsObject



57
58
59
# File 'app/models/effective/committee.rb', line 57

def emails
  committee_members.reject(&:marked_for_destruction?).select(&:active?).map(&:email).compact.join(', ')
end

#to_sObject



40
41
42
# File 'app/models/effective/committee.rb', line 40

def to_s
  title.presence || 'New Committee'
end

#usersObject



53
54
55
# File 'app/models/effective/committee.rb', line 53

def users
  committee_members.reject(&:marked_for_destruction?).map(&:user)
end