Sha256: c7fea5aad2011d15d1238178776affaab0e0d2562009213cd1c5e5f76d4d3501

Contents?: true

Size: 1.09 KB

Versions: 29

Compression:

Stored size: 1.09 KB

Contents

module Dorsale
  module CustomerVault
    class Person < ActiveRecord::Base
      self.abstract_class = true

      after_destroy :destroy_links

      acts_as_taggable

      def person_type
        self.class.to_s.split("::").last.downcase.to_sym
      end

      def tags_on(*args)
        super(*args).order(:name)
      end

      has_many :comments, -> { order("id DESC") }, class_name: ::Dorsale::Comment, as: :commentable, dependent: :destroy
      has_one :address, class_name: ::Dorsale::Address, as: :addressable, inverse_of: :addressable, dependent: :destroy
      has_many :tasks, class_name: ::Dorsale::Flyboy::Task, as: :taskable, dependent: :destroy
      accepts_nested_attributes_for :address, allow_destroy: true

      def links
        a = Link.where(alice_id: self.id, alice_type: self.class).map {|l| {title: l.title, person: l.bob, origin: l}}
        b = Link.where(bob_id: self.id, bob_type: self.class).map {|l| {title: l.title, person: l.alice, origin: l}}
        return a + b
      end

      def destroy_links
        links.map{ |l| l[:origin].destroy! }
      end

    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
dorsale-2.7.3 app/models/dorsale/customer_vault/person.rb
dorsale-2.7.2 app/models/dorsale/customer_vault/person.rb
dorsale-2.7.1 app/models/dorsale/customer_vault/person.rb
dorsale-2.7.0 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.8 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.7 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.6 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.5 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.4 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.3 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.2 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.1 app/models/dorsale/customer_vault/person.rb
dorsale-2.6.0 app/models/dorsale/customer_vault/person.rb
dorsale-2.5.0 app/models/dorsale/customer_vault/person.rb
dorsale-2.4.3 app/models/dorsale/customer_vault/person.rb
dorsale-2.4.2 app/models/dorsale/customer_vault/person.rb
dorsale-2.4.1 app/models/dorsale/customer_vault/person.rb
dorsale-2.4.0 app/models/dorsale/customer_vault/person.rb
dorsale-2.3.5 app/models/dorsale/customer_vault/person.rb
dorsale-2.3.4 app/models/dorsale/customer_vault/person.rb