ar_transaction_changes 1.1.4 → 1.1.5

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
  SHA256:
3
- metadata.gz: abd88f1f38f3175de32b5fa97590b0a3bf08e83ae68aefe73797a633161956ac
4
- data.tar.gz: 7c9568f33755097c43348c72a94defafdd5b2b1fe6b4618654f394ffba6153d7
3
+ metadata.gz: b2acb53b1999dcee1b3665da06ef90afec0801aee463790207632d3618120a28
4
+ data.tar.gz: edd02898b47f64d95ee7f0eb0d30859db66b75cf75b1a2a5112b42ecd808a89c
5
5
  SHA512:
6
- metadata.gz: b4dda2921a2be6e0b7b2dea7bf597c774f322374b3c38a69e545cbf827adc290157e7e5795e8d4015c3e9c0a6c344aa0a688bf8e16e401d3249e9f8f34a75e6c
7
- data.tar.gz: ee32cc827a67f5a76fc8ea7e6659e646b1814aa31d75dc2183f4de92744e0a398574e90e4eb5ca078c63506b3750a7142b0ecf9bd99d2c7404aa8ec13a2fea4d
6
+ metadata.gz: aa7b27f1e322d10dee7d93155594b8c174c2024dbecce12d4d1b6dd5b310664aa0a1df76b09ce4dc1c9c0332b752a2af4795386b95d4867bc0bb583ac1a280a9
7
+ data.tar.gz: 10a385416ff519564fff02e55df735718b50d3bf26a88788c396e6ba591b87ad0644d8290ea65ba6924ac7725a70fc46d36cb18e959923135d3307274395de93
data/.travis.yml CHANGED
@@ -1,27 +1,17 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
 
4
- rvm:
5
- - 2.2.5
6
- - 2.3.1
7
-
8
- gemfile:
9
- - Gemfile.rails42
10
- - Gemfile.rails50
11
- - Gemfile.rails51
12
- - Gemfile.rails52
13
-
14
- matrix:
4
+ jobs:
15
5
  include:
16
- - rvm: 2.1.9
17
- gemfile: Gemfile.rails42
18
- - rvm: 2.5.0
19
- gemfile: Gemfile.rails60
20
- - rvm: 2.5.0
6
+ - name: "Minimum supported versions"
7
+ rvm: 2.4
8
+ gemfile: Gemfile.rails52
9
+ - name: "Latest released versions"
10
+ rvm: 2.7
11
+ gemfile: Gemfile
12
+ - name: "Rails master branch"
13
+ rvm: 2.7
21
14
  gemfile: Gemfile.rails_head
22
15
 
23
16
  services:
24
17
  - mysql
25
-
26
- before_script:
27
- - mysql -e 'create database ar_transaction_changes_test'
data/Gemfile.rails52 CHANGED
@@ -1,5 +1,5 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'activerecord', '~> 5.2.2'
3
+ gem 'activerecord', '~> 5.2.0'
4
4
 
5
5
  gemspec
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency "activerecord", ">= 4.2.4"
20
+ gem.add_dependency "activerecord", ">= 5.2.0"
21
21
 
22
22
  gem.add_development_dependency("rake")
23
23
  gem.add_development_dependency("mysql2")
@@ -18,17 +18,12 @@ module ArTransactionChanges
18
18
  @transaction_changed_attributes ||= HashWithIndifferentAccess.new
19
19
  end
20
20
 
21
- method_name = if ActiveRecord.gem_version >= Gem::Version.new("5.2.0.beta1")
22
- "_write_attribute"
23
- else
24
- "write_attribute"
25
- end
26
-
27
- define_method(method_name) do |attr_name, value|
21
+ def _write_attribute(attr_name, value)
28
22
  attr_name = attr_name.to_s
29
23
  old_value = read_attribute(attr_name)
30
24
  ret = super(attr_name, value)
31
- unless transaction_changed_attributes.key?(attr_name) || value == old_value
25
+ new_value = read_attribute(attr_name)
26
+ unless transaction_changed_attributes.key?(attr_name) || new_value == old_value
32
27
  transaction_changed_attributes[attr_name] = old_value
33
28
  end
34
29
  ret
@@ -1,3 +1,3 @@
1
1
  module ArTransactionChanges
2
- VERSION = "1.1.4"
2
+ VERSION = "1.1.5"
3
3
  end
data/test/test_helper.rb CHANGED
@@ -1,19 +1,24 @@
1
- ENV["RAILS_ENV"] = "test"
2
1
  require 'pathname'
3
2
  require 'yaml'
4
3
  require 'ar_transaction_changes'
5
4
  require 'minitest/autorun'
6
5
 
6
+ ENV["RAILS_ENV"] = "test"
7
+
7
8
  test_dir = Pathname.new(File.dirname(__FILE__))
8
9
  config_filename = test_dir.join("database.yml").exist? ? "database.yml" : "database.yml.default"
9
10
  database_yml = YAML.load(test_dir.join(config_filename).read)
10
- ActiveRecord::Base.establish_connection database_yml['test']
11
+ database_config = database_yml.fetch("test")
12
+
13
+ ActiveRecord::Base.establish_connection(database_config.except("database"))
14
+ ActiveRecord::Base.connection.recreate_database(database_config.fetch("database"))
15
+ ActiveRecord::Base.establish_connection(database_config)
11
16
 
12
17
  ActiveRecord::Base.connection.tap do |db|
13
- db.drop_table(:users) if db.table_exists?(:users)
14
18
  db.create_table(:users) do |t|
15
19
  t.string :name
16
20
  t.string :occupation
21
+ t.integer :age
17
22
  t.timestamps null: false
18
23
  end
19
24
  end
@@ -2,7 +2,7 @@ require 'test_helper'
2
2
 
3
3
  class TransactionChangesTest < MiniTest::Unit::TestCase
4
4
  def setup
5
- @user = User.new(:name => "Dylan", :occupation => "Developer")
5
+ @user = User.new(:name => "Dylan", :occupation => "Developer", age: 20)
6
6
  @user.save!
7
7
  @user.stored_transaction_changes = nil
8
8
  end
@@ -94,4 +94,13 @@ class TransactionChangesTest < MiniTest::Unit::TestCase
94
94
  end
95
95
  refute @user.stored_transaction_changes["name"]
96
96
  end
97
+
98
+ def test_transaction_changes_type_cast
99
+ # "20" will be converted to 20 by read_attribute https://apidock.com/rails/ActiveRecord/AttributeMethods/read_attribute
100
+ @user.transaction do
101
+ @user.age = "20"
102
+ @user.save!
103
+ end
104
+ assert_empty @user.stored_transaction_changes
105
+ end
97
106
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_transaction_changes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dylan Thacker-Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-05 00:00:00.000000000 Z
11
+ date: 2020-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.4
19
+ version: 5.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.4
26
+ version: 5.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -63,11 +63,7 @@ files:
63
63
  - ".gitignore"
64
64
  - ".travis.yml"
65
65
  - Gemfile
66
- - Gemfile.rails42
67
- - Gemfile.rails50
68
- - Gemfile.rails51
69
66
  - Gemfile.rails52
70
- - Gemfile.rails60
71
67
  - Gemfile.rails_head
72
68
  - LICENSE.txt
73
69
  - README.md
@@ -97,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
93
  - !ruby/object:Gem::Version
98
94
  version: '0'
99
95
  requirements: []
100
- rubygems_version: 3.0.2
96
+ rubygems_version: 3.0.3
101
97
  signing_key:
102
98
  specification_version: 4
103
99
  summary: Store transaction changes for active record objects
data/Gemfile.rails42 DELETED
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem 'activerecord', '~> 4.2.0'
4
-
5
- gemspec
data/Gemfile.rails50 DELETED
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem 'activerecord', '~> 5.0.0'
4
-
5
- gemspec
data/Gemfile.rails51 DELETED
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem 'activerecord', '~> 5.1.0.rc1'
4
-
5
- gemspec
data/Gemfile.rails60 DELETED
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem 'activerecord', '~> 6.0.0.beta2'
4
-
5
- gemspec