Module: Redmine::Acts::Journalized::ClassMethods

Defined in:
lib/acts_as_journalized/acts_as_journalized.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_journalized(options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/acts_as_journalized/acts_as_journalized.rb', line 7

def acts_as_journalized(options = {})
  cattr_accessor :journalized_options

  options.assert_valid_keys(:excepted_attributes, :name, :find_options)
  self.journalized_options = {
      excepted_attributes: [:updated_at, :updated_on],
      name: 'journals',
      find_options: {}
  }.merge(options)

  find_options = {class_name: 'Journal', as: :journalized, dependent: :destroy}.
      merge(self.journalized_options[:find_options])

  has_many self.journalized_options[:name].to_sym, find_options

  send :include, Redmine::Acts::Journalized::Callbacks

  before_update :journalize_attributes
end