class Effective::CommitteeMember

def active?(date: nil)

def active?(date: nil)
  return true if start_on.blank? && end_on.blank?
  date ||= Time.zone.now
  date = date.to_date if date.respond_to?(:to_date)
  (start_on..end_on).cover?(date)  # Endless ranges
end

def build_committee(attributes = {})

def build_committee(attributes = {})
  raise('please assign committee_type first') if committee_type.blank?
  self.committee = committee_type.constantize.new(attributes)
end

def build_user(attributes = {})

def build_user(attributes = {})
  raise('please assign user_type first') if user_type.blank?
  self.user = user_type.constantize.new(attributes)
end

def committee_ids

def committee_ids
  Array(@committee_ids) - [nil, '']
end

def email

def email
  user.try(:email)
end

def expired?(date: nil)

def expired?(date: nil)
  active?(date: date) == false
end

def to_s

def to_s
  user.to_s
end

def user_ids

def user_ids
  Array(@user_ids) - [nil, '']
end