Module: ChangeTracker

Extended by:
ActiveSupport::Concern
Defined in:
lib/change_tracker/version.rb,
lib/change_tracker/app/change_tracker.rb,
lib/generators/change_tracker/install/install_generator.rb

Defined Under Namespace

Modules: Generators

Constant Summary collapse

VERSION =
"0.1.1"

Instance Method Summary collapse

Instance Method Details

#find_changesObject

before_save



11
12
13
14
15
16
# File 'lib/change_tracker/app/change_tracker.rb', line 11

def find_changes
  tracked_object = self
  change_type = tracked_object.new_record? ? :added_record : :changed_record
  @changes = Change.new(change_type: change_type, record_model: tracked_object.class.name)
  @changes.changed_data = tracked_object.changes if @changes.change_type == 'changed_record'
end

#save_changesObject

after_save



19
20
21
22
23
24
# File 'lib/change_tracker/app/change_tracker.rb', line 19

def save_changes
  tracked_object = self
  @changes.record_id = tracked_object.id
  @changes.changed_data = tracked_object.attributes if @changes.change_type == 'added_record'
  @changes.save!
end

#save_destroyed_recordObject

before_destroy



27
28
29
30
31
32
33
# File 'lib/change_tracker/app/change_tracker.rb', line 27

def save_destroyed_record
  tracked_object = self
  @changes = Change.create!(change_type: :deleted_record,
                            record_model: tracked_object.class.name,
                            changed_data: tracked_object.attributes,
                            record_id: tracked_object.id)
end