app/models/peoplefinder/person.rb in peoplefinder-0.0.2 vs app/models/peoplefinder/person.rb in peoplefinder-0.1.0

- old
+ new

@@ -18,19 +18,22 @@ validates :surname, presence: true has_many :memberships, -> { includes(:group).order('groups.name') }, dependent: :destroy has_many :groups, through: :memberships + belongs_to :community accepts_nested_attributes_for :memberships, allow_destroy: true, reject_if: proc { |membership| membership['group_id'].blank? } default_scope { order(surname: :asc, given_name: :asc) } friendly_id :slug_source, use: :slugged + before_save :sanitize_tags + def self.namesakes(person) where(surname: person.surname). where(given_name: person.given_name). where.not(id: person.id) end @@ -70,13 +73,31 @@ else Rails.configuration.support_email end end + def community_name + community.try(:name) + end + + def self.tag_list + Peoplefinder::Person.where('tags is not null'). + pluck(:tags).flatten.join(','). + split(',').uniq.sort.join(',') + end + private def group_path(hint_group) return [] if groups.empty? paths = groups.map(&:path) paths.find { |a| a.include?(hint_group) } || paths.first + end + + def sanitize_tags + if tags + self.tags = tags.split(',').map { |tag| + tag.strip.capitalize + }.sort.join(',') + end end end