counter_culture 2.0.0 → 2.0.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: 626c6d44c921e9bf854359c6f2360683392c8053
4
- data.tar.gz: 171c902ee182fbe717f3fee383b2932bc8e31207
2
+ SHA256:
3
+ metadata.gz: 64eb9b917d27eb10893760ab26afdb228af051a3c2a49524e081b40c857482a0
4
+ data.tar.gz: b27d02bf40278eb9a1c311bd74095838235f551ec83cff595c9c465438d34d05
5
5
  SHA512:
6
- metadata.gz: 34dd015103dc4a1da9c49feeda4009da59662ccfd6dc7d972f7c6c05eb0e4dbd72db452c8dc113dbb50903e854dacd6db112a370890f6572013931742e82b989
7
- data.tar.gz: 84fd5aefae33c42919e10dd91a8eb4b747d564b38994702f7dfdae76c1810fd5a1d910a5be9cbcf260095838902fed8005bcb360f4447c5c143c1a0d7bdbf778
6
+ metadata.gz: 961d64e29863cb4d9e0d6b1a46c1917c4c7bbed7ac42cb9a6cf52d7ad5989f959f35d438379e1353417bb3e98c70dc50aa2a8798e0253771ade979c542900d4a
7
+ data.tar.gz: f79799eb4a5a0dcf1597538dbf2c86ea1fd8804cf096e8848ff7d2839605f30410420abae1c243d1ee4d3f88090e3f2ad457107e45cfaac95f54eaa30977b7b3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 2.0.1 (August 19, 2018)
2
+
3
+ Bugfixes:
4
+ - Properly set timestamps of PaperTrail versions (#224, #225, #226)
5
+
1
6
  ## 2.0.0 (June 12, 2018)
2
7
 
3
8
  Breaking changes:
data/README.md CHANGED
@@ -14,7 +14,7 @@ Tested against Ruby 2.2.5 and 2.3.1 and against the latest patch releases of Rai
14
14
  Add counter_culture to your Gemfile:
15
15
 
16
16
  ```ruby
17
- gem 'counter_culture', '~> 1.8'
17
+ gem 'counter_culture', '~> 2.0'
18
18
  ```
19
19
 
20
20
  Then run `bundle install`
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.0.1
@@ -2,18 +2,18 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: counter_culture 2.0.0 ruby lib
5
+ # stub: counter_culture 2.0.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "counter_culture"
9
- s.version = "2.0.0"
8
+ s.name = "counter_culture".freeze
9
+ s.version = "2.0.1"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Magnus von Koeller"]
14
- s.date = "2018-06-18"
15
- s.description = "counter_culture provides turbo-charged counter caches that are kept up-to-date not just on create and destroy, that support multiple levels of indirection through relationships, allow dynamic column names and that avoid deadlocks by updating in the after_commit callback."
16
- s.email = "magnus@vonkoeller.de"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Magnus von Koeller".freeze]
14
+ s.date = "2018-08-21"
15
+ s.description = "counter_culture provides turbo-charged counter caches that are kept up-to-date not just on create and destroy, that support multiple levels of indirection through relationships, allow dynamic column names and that avoid deadlocks by updating in the after_commit callback.".freeze
16
+ s.email = "magnus@vonkoeller.de".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.md"
@@ -118,60 +118,60 @@ Gem::Specification.new do |s|
118
118
  "spec/spec_helper.rb",
119
119
  "test_rails_versions.sh"
120
120
  ]
121
- s.homepage = "http://github.com/magnusvk/counter_culture"
122
- s.licenses = ["MIT"]
123
- s.rubygems_version = "2.5.1"
124
- s.summary = "Turbo-charged counter caches for your Rails app."
121
+ s.homepage = "http://github.com/magnusvk/counter_culture".freeze
122
+ s.licenses = ["MIT".freeze]
123
+ s.rubygems_version = "2.7.6".freeze
124
+ s.summary = "Turbo-charged counter caches for your Rails app.".freeze
125
125
 
126
126
  if s.respond_to? :specification_version then
127
127
  s.specification_version = 4
128
128
 
129
129
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
130
- s.add_runtime_dependency(%q<after_commit_action>, ["~> 1.0"])
131
- s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
132
- s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0"])
133
- s.add_development_dependency(%q<rake>, [">= 0"])
134
- s.add_development_dependency(%q<rails>, [">= 3.1.0"])
135
- s.add_development_dependency(%q<rspec>, ["~> 3.0"])
136
- s.add_development_dependency(%q<awesome_print>, [">= 0"])
137
- s.add_development_dependency(%q<timecop>, [">= 0"])
138
- s.add_development_dependency(%q<discard>, [">= 0"])
139
- s.add_development_dependency(%q<paranoia>, [">= 0"])
140
- s.add_development_dependency(%q<paper_trail>, [">= 0"])
141
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
142
- s.add_development_dependency(%q<bundler>, [">= 1.2.0"])
143
- s.add_development_dependency(%q<jeweler>, ["~> 2.1"])
130
+ s.add_runtime_dependency(%q<after_commit_action>.freeze, ["~> 1.0"])
131
+ s.add_runtime_dependency(%q<activerecord>.freeze, [">= 3.0.0"])
132
+ s.add_runtime_dependency(%q<activesupport>.freeze, [">= 3.0.0"])
133
+ s.add_development_dependency(%q<rake>.freeze, [">= 0"])
134
+ s.add_development_dependency(%q<rails>.freeze, [">= 3.1.0"])
135
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.0"])
136
+ s.add_development_dependency(%q<awesome_print>.freeze, [">= 0"])
137
+ s.add_development_dependency(%q<timecop>.freeze, [">= 0"])
138
+ s.add_development_dependency(%q<discard>.freeze, [">= 0"])
139
+ s.add_development_dependency(%q<paranoia>.freeze, [">= 0"])
140
+ s.add_development_dependency(%q<paper_trail>.freeze, [">= 0"])
141
+ s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
142
+ s.add_development_dependency(%q<bundler>.freeze, [">= 1.2.0"])
143
+ s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.1"])
144
144
  else
145
- s.add_dependency(%q<after_commit_action>, ["~> 1.0"])
146
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
147
- s.add_dependency(%q<activesupport>, [">= 3.0.0"])
148
- s.add_dependency(%q<rake>, [">= 0"])
149
- s.add_dependency(%q<rails>, [">= 3.1.0"])
150
- s.add_dependency(%q<rspec>, ["~> 3.0"])
151
- s.add_dependency(%q<awesome_print>, [">= 0"])
152
- s.add_dependency(%q<timecop>, [">= 0"])
153
- s.add_dependency(%q<discard>, [">= 0"])
154
- s.add_dependency(%q<paranoia>, [">= 0"])
155
- s.add_dependency(%q<paper_trail>, [">= 0"])
156
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
157
- s.add_dependency(%q<bundler>, [">= 1.2.0"])
158
- s.add_dependency(%q<jeweler>, ["~> 2.1"])
145
+ s.add_dependency(%q<after_commit_action>.freeze, ["~> 1.0"])
146
+ s.add_dependency(%q<activerecord>.freeze, [">= 3.0.0"])
147
+ s.add_dependency(%q<activesupport>.freeze, [">= 3.0.0"])
148
+ s.add_dependency(%q<rake>.freeze, [">= 0"])
149
+ s.add_dependency(%q<rails>.freeze, [">= 3.1.0"])
150
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.0"])
151
+ s.add_dependency(%q<awesome_print>.freeze, [">= 0"])
152
+ s.add_dependency(%q<timecop>.freeze, [">= 0"])
153
+ s.add_dependency(%q<discard>.freeze, [">= 0"])
154
+ s.add_dependency(%q<paranoia>.freeze, [">= 0"])
155
+ s.add_dependency(%q<paper_trail>.freeze, [">= 0"])
156
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
157
+ s.add_dependency(%q<bundler>.freeze, [">= 1.2.0"])
158
+ s.add_dependency(%q<jeweler>.freeze, ["~> 2.1"])
159
159
  end
160
160
  else
161
- s.add_dependency(%q<after_commit_action>, ["~> 1.0"])
162
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
163
- s.add_dependency(%q<activesupport>, [">= 3.0.0"])
164
- s.add_dependency(%q<rake>, [">= 0"])
165
- s.add_dependency(%q<rails>, [">= 3.1.0"])
166
- s.add_dependency(%q<rspec>, ["~> 3.0"])
167
- s.add_dependency(%q<awesome_print>, [">= 0"])
168
- s.add_dependency(%q<timecop>, [">= 0"])
169
- s.add_dependency(%q<discard>, [">= 0"])
170
- s.add_dependency(%q<paranoia>, [">= 0"])
171
- s.add_dependency(%q<paper_trail>, [">= 0"])
172
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
173
- s.add_dependency(%q<bundler>, [">= 1.2.0"])
174
- s.add_dependency(%q<jeweler>, ["~> 2.1"])
161
+ s.add_dependency(%q<after_commit_action>.freeze, ["~> 1.0"])
162
+ s.add_dependency(%q<activerecord>.freeze, [">= 3.0.0"])
163
+ s.add_dependency(%q<activesupport>.freeze, [">= 3.0.0"])
164
+ s.add_dependency(%q<rake>.freeze, [">= 0"])
165
+ s.add_dependency(%q<rails>.freeze, [">= 3.1.0"])
166
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.0"])
167
+ s.add_dependency(%q<awesome_print>.freeze, [">= 0"])
168
+ s.add_dependency(%q<timecop>.freeze, [">= 0"])
169
+ s.add_dependency(%q<discard>.freeze, [">= 0"])
170
+ s.add_dependency(%q<paranoia>.freeze, [">= 0"])
171
+ s.add_dependency(%q<paper_trail>.freeze, [">= 0"])
172
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
173
+ s.add_dependency(%q<bundler>.freeze, [">= 1.2.0"])
174
+ s.add_dependency(%q<jeweler>.freeze, ["~> 2.1"])
175
175
  end
176
176
  end
177
177
 
@@ -74,6 +74,13 @@ module CounterCulture
74
74
  if instance
75
75
  if instance.paper_trail.respond_to?(:save_with_version)
76
76
  # touch_with_version is deprecated starting in PaperTrail 9.0.0
77
+
78
+ current_time = obj.send(:current_time_from_proper_timezone)
79
+ timestamp_columns = obj.send(:timestamp_attributes_for_update_in_model)
80
+ timestamp_columns.each do |timestamp_column|
81
+ instance.send("#{timestamp_column}=", current_time)
82
+ end
83
+
77
84
  instance.paper_trail.save_with_version(validate: false)
78
85
  else
79
86
  instance.paper_trail.touch_with_version
@@ -2015,10 +2015,7 @@ describe "CounterCulture" do
2015
2015
 
2016
2016
  describe "with papertrail support", versioning: true do
2017
2017
  it "creates a papertrail version when changed" do
2018
- if Rails.version < "5.0.0"
2019
- skip("Unsupported in this version of Rails")
2020
- end
2021
- if RUBY_VERSION < "2.3.0" && Rails.version >= "5.2.0"
2018
+ unless papertrail_supported_here?
2022
2019
  skip("Unsupported in this combination of Ruby and Rails")
2023
2020
  end
2024
2021
 
@@ -2051,11 +2048,36 @@ describe "CounterCulture" do
2051
2048
  expect(attrs_from_versions['reviews_count']).to eq(1)
2052
2049
  end
2053
2050
 
2054
- it "does not create a papertrail version when papertrail flag not set" do
2055
- if Rails.version < "5.0.0"
2056
- skip("Unsupported in this version of Rails")
2051
+ context "counter-cache model versioning" do
2052
+ let!(:main_obj) { SimpleMain.create(created_at: 1.day.ago, updated_at: 1.day.ago) }
2053
+
2054
+ it "updates the updated_at of the parent variant" do
2055
+ unless papertrail_supported_here?
2056
+ skip("Unsupported in this combination of Ruby and Rails")
2057
+ end
2058
+
2059
+ the_time = Time.now.utc
2060
+ Timecop.freeze(the_time) do
2061
+ main_obj.simple_dependents.create!
2062
+ expect(main_obj.reload.updated_at.to_i).to eq(the_time.to_i)
2063
+ end
2064
+ end
2065
+
2066
+ it "sets the created_at time of the new version row to the current time" do
2067
+ unless papertrail_supported_here?
2068
+ skip("Unsupported in this combination of Ruby and Rails")
2069
+ end
2070
+
2071
+ the_time = Time.now.utc
2072
+ Timecop.freeze(the_time) do
2073
+ main_obj.simple_dependents.create!
2074
+ expect(main_obj.versions.last.created_at.to_i).to eq(the_time.to_i)
2075
+ end
2057
2076
  end
2058
- if RUBY_VERSION < "2.3.0" && Rails.version >= "5.2.0"
2077
+ end
2078
+
2079
+ it "does not create a papertrail version when papertrail flag not set" do
2080
+ unless papertrail_supported_here?
2059
2081
  skip("Unsupported in this combination of Ruby and Rails")
2060
2082
  end
2061
2083
 
@@ -2073,4 +2095,11 @@ describe "CounterCulture" do
2073
2095
  expect(user.versions.count).to eq(1)
2074
2096
  end
2075
2097
  end
2098
+
2099
+ private
2100
+ def papertrail_supported_here?
2101
+ return false if Rails.version < "5.0.0"
2102
+ return false if RUBY_VERSION < "2.3.0" && Rails.version >= "5.2.0"
2103
+ true
2104
+ end
2076
2105
  end
@@ -1,5 +1,5 @@
1
1
  class SimpleDependent < ActiveRecord::Base
2
2
  belongs_to :simple_main
3
3
 
4
- counter_culture :simple_main
4
+ counter_culture :simple_main, with_papertrail: Rails.version >= '5.0.0'
5
5
  end
@@ -1,3 +1,7 @@
1
1
  class SimpleMain < ActiveRecord::Base
2
2
  has_many :simple_dependents
3
+
4
+ if Rails.version >= "5.0.0"
5
+ has_paper_trail
6
+ end
3
7
  end
@@ -4,4 +4,9 @@
4
4
  # If you change this key, all old signed cookies will become invalid!
5
5
  # Make sure the secret is at least 30 characters and all random,
6
6
  # no regular words or you'll be exposed to dictionary attacks.
7
- RailsApp::Application.config.secret_token = 'fcc06e5fc19cdbf0f0db6fd634aa5160a9f28ad692528f227e14975da33b0dbd92bb8a9f15e0ef44f0664415a0f6eba003cbb088300865f0058965c104e5abd6'
7
+ secret = 'fcc06e5fc19cdbf0f0db6fd634aa5160a9f28ad692528f227e14975da33b0dbd92bb8a9f15e0ef44f0664415a0f6eba003cbb088300865f0058965c104e5abd6'
8
+ if Rails.version < '5.2.0'
9
+ RailsApp::Application.config.secret_token = secret
10
+ else
11
+ RailsApp::Application.config.secret_key_base = secret
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: counter_culture
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus von Koeller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-18 00:00:00.000000000 Z
11
+ date: 2018-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: after_commit_action
@@ -335,7 +335,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
335
335
  version: '0'
336
336
  requirements: []
337
337
  rubyforge_project:
338
- rubygems_version: 2.5.1
338
+ rubygems_version: 2.7.6
339
339
  signing_key:
340
340
  specification_version: 4
341
341
  summary: Turbo-charged counter caches for your Rails app.