recorder 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3af9ad0f9d54d04d84de1389c3a7170c8d92f16c
4
- data.tar.gz: ccb3fd47554c553ec486bda99d5f6d4dd8814841
3
+ metadata.gz: bc527a377347c0fa279841806975f7f65518440d
4
+ data.tar.gz: 1eff5ca363f5845ef6cef1227a8a8a29fe5a4475
5
5
  SHA512:
6
- metadata.gz: 335f64716495f041b884caed43b2e5046186f314136d6676ba6abe67bce1c5879240651d110a6cd704d37c0d804cc8ec2077b99beb67e6c691c07d140036bec4
7
- data.tar.gz: f9ec4e0f024f55031f7d799461fabbc08430fb5de588c90d2ffae80767d5d6bad43cd67cfaaee54316990af6ad8a5d65498a3780479f927d36ffd41070429be3
6
+ metadata.gz: e6d6b6dbd19c5b777b6c9bca6aad6cb44e77e183ac81f8de8d4099818028d0c1dbc34c2d8f83419bb599e4cc6be12e68dfd13dc0bb96b7a974124b6a9cf1c883
7
+ data.tar.gz: c0c9f9d65f7d9d095f6fd08043233a04c56d7de027f01fe93fc7d5ca1b40138e3e0320f19e26dc0f94c5063b3645625c356c3eebe31b58dd07f289a187a5dec9
@@ -17,6 +17,11 @@ module Recorder
17
17
  end
18
18
  end
19
19
 
20
+ def recorder_dirty?
21
+ return @recorder_dirty if defined?(@recorder_dirty)
22
+ true
23
+ end
24
+
20
25
  module ClassMethods
21
26
  def recorder(options = {})
22
27
  define_method 'recorder_options' do
@@ -24,15 +29,21 @@ module Recorder
24
29
  end
25
30
 
26
31
  after_commit :on => :create do
27
- Recorder::Tape.new(self).record_create
32
+ if self.recorder_dirty?
33
+ Recorder::Tape.new(self).record_create
34
+ end
28
35
  end
29
36
 
30
37
  after_commit :on => :update do
31
- Recorder::Tape.new(self).record_update
38
+ if self.recorder_dirty?
39
+ Recorder::Tape.new(self).record_update
40
+ end
32
41
  end
33
42
 
34
43
  after_commit :on => :destroy do
35
- Recorder::Tape.new(self).record_destroy
44
+ if self.recorder_dirty?
45
+ Recorder::Tape.new(self).record_destroy
46
+ end
36
47
  end
37
48
  end
38
49
  end
data/lib/recorder/tape.rb CHANGED
@@ -4,6 +4,8 @@ module Recorder
4
4
 
5
5
  def initialize(item)
6
6
  @item = item;
7
+
8
+ self.item.instance_variable_set(:@recorder_dirty, true)
7
9
  end
8
10
 
9
11
  def changes_for(event)
@@ -90,6 +92,7 @@ module Recorder
90
92
  if object = self.item.send(association)
91
93
  changes = Recorder::Tape.new(object).changes_for(event)
92
94
  hash[reflection.name] = changes if changes.any?
95
+ object.instance_variable_set(:@recorder_dirty, false)
93
96
  end
94
97
  end
95
98
  end
@@ -3,7 +3,7 @@ module Recorder
3
3
  module VERSION
4
4
  MAJOR = 0
5
5
  MINOR = 1
6
- TINY = 12
6
+ TINY = 13
7
7
  PRE = nil
8
8
 
9
9
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".").freeze
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recorder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Alexandrov