recorder 0.1.12 → 0.1.13

Sign up to get free protection for your applications and to get access to all the features.
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