11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/acts_as_journalized/acts_as_journalized.rb', line 11
def acts_as_journalized(options = {})
cattr_accessor :journalized_options, :journalized_attribute_names
options.assert_valid_keys(
:excepted_attributes,
:name,
:scope,
:find_options
)
excepted_attributes =
options.delete(:excepted_attributes) || %w(id updated_at updated_on)
self.journalized_attribute_names = column_names - excepted_attributes
self.journalized_options =
{
name: 'journals',
scope: -> { all },
find_options: {}
}.merge(options)
find_options =
{
class_name: 'Journal',
as: :journalized,
dependent: :destroy
}.merge(journalized_options[:find_options])
send :include, Redmine::Acts::Journalized::Callbacks
has_many journalized_options[:name].to_sym,
journalized_options[:scope],
find_options
after_create :create_journal_on_create
after_update :create_journal_on_update
end
|