Module: Keepr::ActiveRecordExtension::ClassMethods

Defined in:
lib/keepr/active_record_extension.rb

Instance Method Summary collapse

Instance Method Details

#has_keepr_journalsObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/keepr/active_record_extension.rb', line 17

def has_keepr_journals
  has_many :keepr_journals, :class_name => 'Keepr::Journal', :as => :accountable, :dependent => :restrict_with_error

  class_eval <<-EOT
    def keepr_booked?
      keepr_journals.exists?
    end

    scope :keepr_unbooked, -> {
                                joins('LEFT JOIN keepr_journals ON keepr_journals.accountable_id = #{table_name}.id AND keepr_journals.accountable_type="#{base_class.name}"').
                                where('keepr_journals.id' => nil)
                              }
    scope :keepr_booked,   -> { joins(:keepr_journals) }
  EOT
end

#has_keepr_postingsObject



33
34
35
# File 'lib/keepr/active_record_extension.rb', line 33

def has_keepr_postings
  has_many :keepr_postings, :class_name => 'Keepr::Posting', :as => :accountable, :dependent => :restrict_with_error
end

#has_many_keepr_accountsObject



12
13
14
15
# File 'lib/keepr/active_record_extension.rb', line 12

def has_many_keepr_accounts
  has_many :keepr_accounts, :class_name => 'Keepr::Account', :as => :accountable, :dependent => :restrict_with_error
  has_many :keepr_postings, :class_name => 'Keepr::Posting', :through => :keepr_accounts, :dependent => :restrict_with_error
end

#has_one_keepr_accountObject



7
8
9
10
# File 'lib/keepr/active_record_extension.rb', line 7

def 
  has_one :keepr_account, :class_name => 'Keepr::Account', :as => :accountable, :dependent => :restrict_with_error
  has_many :keepr_postings, :class_name => 'Keepr::Posting', :through => :keepr_account, :dependent => :restrict_with_error
end