transaction_changes 2.0.1 → 2.1.1

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
- SHA1:
3
- metadata.gz: 8fed12bd13bb6d0513d3eb26237dc3a118c60f52
4
- data.tar.gz: 22c7dfc663f82ad59736343a6893a82172498dc1
2
+ SHA256:
3
+ metadata.gz: 87555349d944f68fc8675579a3749f97809cb2ca2695bc44073c094183edc40f
4
+ data.tar.gz: e45fa2e5cd31fcc251cadebe1e2a5598fa467ac16f5fd67026a4275a46b7ea63
5
5
  SHA512:
6
- metadata.gz: 035145aa0ffd50636c6c716049d9bf37e7eab1f130664ecfced34fc61087a099a4c8d6b85d249cfb3a3a0978b7351d9471e6ac7fd16b5863dff20ea11bb0a3f3
7
- data.tar.gz: 40c3b2b0232cc1fd02cad10d3d89c6587eadeb679ec7def959bf93e1a2e55eaf0f140fb733a2c2b6a82012de2c64e5fb70cef34029fc598c95c83033e8179de4
6
+ metadata.gz: 4696e4dcbc58633d5a8de757cfacf0d3bbf1ef6aaa8e4351396d7e44d7355716879b206bfa21009f52becaefa9165ac6d45ff8e4f5e4072a38690fb56be7940d
7
+ data.tar.gz: 52da1cca331d9097e26e95dd75c2c3eaea5fa4b87c337c55346e4d7cf928663536d832ac61a38db3238ef0e9e27973fb75f3c2e0bee7fd245e9260c39fc4cb4c
data/Gemfile CHANGED
@@ -2,5 +2,7 @@ source "https://rubygems.org"
2
2
 
3
3
  git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
+ gem "rails", "~> 5.2.0.beta1"
6
+
5
7
  # Specify your gem's dependencies in transaction_changes.gemspec
6
8
  gemspec
data/Gemfile.lock CHANGED
@@ -1,22 +1,108 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- transaction_changes (2.0)
4
+ transaction_changes (2.0.1)
5
+ activerecord
5
6
  activesupport
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- activesupport (4.2.10)
11
- i18n (~> 0.7)
11
+ actioncable (5.2.0)
12
+ actionpack (= 5.2.0)
13
+ nio4r (~> 2.0)
14
+ websocket-driver (>= 0.6.1)
15
+ actionmailer (5.2.0)
16
+ actionpack (= 5.2.0)
17
+ actionview (= 5.2.0)
18
+ activejob (= 5.2.0)
19
+ mail (~> 2.5, >= 2.5.4)
20
+ rails-dom-testing (~> 2.0)
21
+ actionpack (5.2.0)
22
+ actionview (= 5.2.0)
23
+ activesupport (= 5.2.0)
24
+ rack (~> 2.0)
25
+ rack-test (>= 0.6.3)
26
+ rails-dom-testing (~> 2.0)
27
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
28
+ actionview (5.2.0)
29
+ activesupport (= 5.2.0)
30
+ builder (~> 3.1)
31
+ erubi (~> 1.4)
32
+ rails-dom-testing (~> 2.0)
33
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
34
+ activejob (5.2.0)
35
+ activesupport (= 5.2.0)
36
+ globalid (>= 0.3.6)
37
+ activemodel (5.2.0)
38
+ activesupport (= 5.2.0)
39
+ activerecord (5.2.0)
40
+ activemodel (= 5.2.0)
41
+ activesupport (= 5.2.0)
42
+ arel (>= 9.0)
43
+ activestorage (5.2.0)
44
+ actionpack (= 5.2.0)
45
+ activerecord (= 5.2.0)
46
+ marcel (~> 0.3.1)
47
+ activesupport (5.2.0)
48
+ concurrent-ruby (~> 1.0, >= 1.0.2)
49
+ i18n (>= 0.7, < 2)
12
50
  minitest (~> 5.1)
13
- thread_safe (~> 0.3, >= 0.3.4)
14
51
  tzinfo (~> 1.1)
52
+ arel (9.0.0)
53
+ builder (3.2.3)
54
+ byebug (10.0.2)
15
55
  concurrent-ruby (1.0.5)
56
+ crass (1.0.4)
16
57
  diff-lcs (1.3)
17
- i18n (0.9.5)
58
+ erubi (1.7.1)
59
+ globalid (0.4.1)
60
+ activesupport (>= 4.2.0)
61
+ i18n (1.0.1)
18
62
  concurrent-ruby (~> 1.0)
63
+ loofah (2.2.2)
64
+ crass (~> 1.0.2)
65
+ nokogiri (>= 1.5.9)
66
+ mail (2.7.0)
67
+ mini_mime (>= 0.1.1)
68
+ marcel (0.3.2)
69
+ mimemagic (~> 0.3.2)
70
+ method_source (0.9.0)
71
+ mimemagic (0.3.2)
72
+ mini_mime (1.0.0)
73
+ mini_portile2 (2.3.0)
19
74
  minitest (5.11.3)
75
+ mysql2 (0.5.1)
76
+ nio4r (2.3.1)
77
+ nokogiri (1.8.2)
78
+ mini_portile2 (~> 2.3.0)
79
+ rack (2.0.5)
80
+ rack-test (1.0.0)
81
+ rack (>= 1.0, < 3)
82
+ rails (5.2.0)
83
+ actioncable (= 5.2.0)
84
+ actionmailer (= 5.2.0)
85
+ actionpack (= 5.2.0)
86
+ actionview (= 5.2.0)
87
+ activejob (= 5.2.0)
88
+ activemodel (= 5.2.0)
89
+ activerecord (= 5.2.0)
90
+ activestorage (= 5.2.0)
91
+ activesupport (= 5.2.0)
92
+ bundler (>= 1.3.0)
93
+ railties (= 5.2.0)
94
+ sprockets-rails (>= 2.0.0)
95
+ rails-dom-testing (2.0.3)
96
+ activesupport (>= 4.2.0)
97
+ nokogiri (>= 1.6)
98
+ rails-html-sanitizer (1.0.4)
99
+ loofah (~> 2.2, >= 2.2.2)
100
+ railties (5.2.0)
101
+ actionpack (= 5.2.0)
102
+ activesupport (= 5.2.0)
103
+ method_source
104
+ rake (>= 0.8.7)
105
+ thor (>= 0.18.1, < 2.0)
20
106
  rake (10.5.0)
21
107
  rspec (3.7.0)
22
108
  rspec-core (~> 3.7.0)
@@ -31,15 +117,29 @@ GEM
31
117
  diff-lcs (>= 1.2.0, < 2.0)
32
118
  rspec-support (~> 3.7.0)
33
119
  rspec-support (3.7.1)
120
+ sprockets (3.7.1)
121
+ concurrent-ruby (~> 1.0)
122
+ rack (> 1, < 3)
123
+ sprockets-rails (3.2.1)
124
+ actionpack (>= 4.0)
125
+ activesupport (>= 4.0)
126
+ sprockets (>= 3.0.0)
127
+ thor (0.20.0)
34
128
  thread_safe (0.3.6)
35
129
  tzinfo (1.2.5)
36
130
  thread_safe (~> 0.1)
131
+ websocket-driver (0.7.0)
132
+ websocket-extensions (>= 0.1.0)
133
+ websocket-extensions (0.1.3)
37
134
 
38
135
  PLATFORMS
39
136
  ruby
40
137
 
41
138
  DEPENDENCIES
42
139
  bundler (~> 1.16)
140
+ byebug
141
+ mysql2
142
+ rails (~> 5.2.0.beta1)
43
143
  rake (~> 10.0)
44
144
  rspec (~> 3.0)
45
145
  transaction_changes!
@@ -1,3 +1,3 @@
1
1
  module TransactionChanges
2
- VERSION = "2.0.1"
2
+ VERSION = "2.1.1"
3
3
  end
@@ -1,28 +1,38 @@
1
1
  require "transaction_changes/version"
2
2
  require 'active_support/concern'
3
+ require "active_support/callbacks"
3
4
 
4
5
  module TransactionChanges
5
6
  extend ActiveSupport::Concern
7
+ include ActiveSupport::Callbacks
6
8
 
7
9
  included do
8
- after_commit -> { reset_transaction_changes }
9
10
  after_save -> { accumulate_changes }
11
+ set_callback :commit, :before, :setting_variables
12
+ end
13
+
14
+ def setting_variables
15
+ @new_transaction_changes, @old_transaction_changes = HashWithIndifferentAccess.new, @new_transaction_changes
10
16
  end
11
17
 
12
18
  def transaction_changes
13
19
  @old_transaction_changes || HashWithIndifferentAccess.new
14
20
  end
15
21
 
22
+ def _run_rollback_callbacks
23
+ super
24
+ ensure
25
+ @old_transaction_changes = HashWithIndifferentAccess.new
26
+ end
27
+
16
28
  private
29
+
17
30
  def accumulate_changes
18
31
  @new_transaction_changes ||= HashWithIndifferentAccess.new
19
-
20
- self.changes.each do |key, value|
32
+ attribute_changes = ::ActiveRecord.version.to_s.to_f >= 5.1 ? self.saved_changes : self.changes
33
+ attribute_changes.each do |key, value|
21
34
  @new_transaction_changes[key] = value
22
35
  end
23
36
  end
24
37
 
25
- def reset_transaction_changes
26
- @new_transaction_changes, @old_transaction_changes = HashWithIndifferentAccess.new, @new_transaction_changes
27
- end
28
38
  end
@@ -27,4 +27,8 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
28
  spec.add_development_dependency "rspec", "~> 3.0"
29
29
  spec.add_dependency "activesupport"
30
+ spec.add_dependency "activerecord"
31
+ spec.add_development_dependency "mysql2"
32
+ spec.add_development_dependency "byebug"
33
+
30
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transaction_changes
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Priyanka
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-08 00:00:00.000000000 Z
11
+ date: 2018-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,48 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activerecord
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: mysql2
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: byebug
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
69
111
  description: Store attribute changes during ActiveRecord Transaction
70
112
  email:
71
113
  - priyankatrancedi.iitd@gmail.com
@@ -107,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
149
  version: '0'
108
150
  requirements: []
109
151
  rubyforge_project:
110
- rubygems_version: 2.6.10
152
+ rubygems_version: 2.7.7
111
153
  signing_key:
112
154
  specification_version: 4
113
155
  summary: Store attribute changes during ActiveRecord Transaction