pbbuilder 0.13.1 → 0.13.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/pbbuilder/template.rb +14 -3
- data/pbbuilder.gemspec +1 -1
- data/test/pbbuilder_template_test.rb +6 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ece867edfd6c367638386b6ff729160fc48869e95da675c27dcf863e114bb0f
|
4
|
+
data.tar.gz: 2ca090784cbbd677cb428f7aefe74acf350e06331f234fba62fc65266284cd46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a0128aef94081281e0c8430aa4779864c5571f1d3a4e9d7d4af9f12134fce29fdea37464228b4b21cd4739c06cf8f971d8bb4d4084038acea78cbcfc7f5783b
|
7
|
+
data.tar.gz: 92a957df036ae419b6734747d503fa348462156aa369c707d270125a1d17b3fc107b92905550a594415d6c514664da066be4fcc46be27c391d532939e3f55182
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
|
4
4
|
This format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
5
5
|
|
6
|
+
## 0.13.2 2023.02.3
|
7
|
+
### Fixed
|
8
|
+
- In case ActiveSupport::Cache::FileStore in Rails is used as a cache, File.atomic_write can have a race condition and fail to rename temporary file. We're attempting to recover from that, by catching this specific error and returning a value.
|
9
|
+
|
6
10
|
## 0.13.1 2023.01.24
|
7
11
|
### Added
|
8
12
|
- #merge! to support boolean values
|
data/lib/pbbuilder/template.rb
CHANGED
@@ -108,11 +108,22 @@ class PbbuilderTemplate < Pbbuilder
|
|
108
108
|
# @param key string
|
109
109
|
# @params options hash
|
110
110
|
#
|
111
|
-
# @return string
|
111
|
+
# @return string contents of a cache
|
112
112
|
def _write_fragment_cache(key, options = nil)
|
113
|
-
@context.controller.instrument_fragment_cache :
|
113
|
+
@context.controller.instrument_fragment_cache :write_fragment, key do
|
114
114
|
yield.tap do |value|
|
115
|
-
|
115
|
+
begin
|
116
|
+
::Rails.cache.write(key, value, options)
|
117
|
+
rescue SystemCallError
|
118
|
+
# In case ActiveSupport::Cache::FileStore in Rails is used as a cache,
|
119
|
+
# File.atomic_write can have a race condition and fail to rename temporary
|
120
|
+
# file. We're attempting to recover from that, by catching this specific
|
121
|
+
# error and returning a value.
|
122
|
+
#
|
123
|
+
# @see https://github.com/rails/rails/pull/44151
|
124
|
+
# @see https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/file/atomic.rb#L50
|
125
|
+
value
|
126
|
+
end
|
116
127
|
end
|
117
128
|
end
|
118
129
|
end
|
data/pbbuilder.gemspec
CHANGED
@@ -120,10 +120,10 @@ class PbbuilderTemplateTest < ActiveSupport::TestCase
|
|
120
120
|
result = nil
|
121
121
|
|
122
122
|
assert_nothing_raised do
|
123
|
-
result = render(<<-
|
123
|
+
result = render(<<-PBBUILDER)
|
124
124
|
pb.name "suslik"
|
125
125
|
pb.cache! "nothing" do; end
|
126
|
-
|
126
|
+
PBBUILDER
|
127
127
|
end
|
128
128
|
|
129
129
|
assert_equal "suslik", result["name"]
|
@@ -197,7 +197,7 @@ class PbbuilderTemplateTest < ActiveSupport::TestCase
|
|
197
197
|
end
|
198
198
|
|
199
199
|
test "conditional object fragment caching" do
|
200
|
-
render(<<-
|
200
|
+
render(<<-PBBUILDER)
|
201
201
|
pb.cache_if! true, "cache-key" do
|
202
202
|
pb.name "Hit"
|
203
203
|
end
|
@@ -205,9 +205,9 @@ class PbbuilderTemplateTest < ActiveSupport::TestCase
|
|
205
205
|
pb.cache_if! false, "cache-key" do
|
206
206
|
pb.last_name "Hit"
|
207
207
|
end
|
208
|
-
|
208
|
+
PBBUILDER
|
209
209
|
|
210
|
-
result = render(<<-
|
210
|
+
result = render(<<-PBBUILDER)
|
211
211
|
pb.cache_if! true, "cache-key" do
|
212
212
|
pb.name "Miss"
|
213
213
|
end
|
@@ -215,7 +215,7 @@ class PbbuilderTemplateTest < ActiveSupport::TestCase
|
|
215
215
|
pb.cache_if! false, "cache-key" do
|
216
216
|
pb.last_name "Miss"
|
217
217
|
end
|
218
|
-
|
218
|
+
PBBUILDER
|
219
219
|
|
220
220
|
assert_equal "Hit", result["name"]
|
221
221
|
assert_equal "Miss", result["last_name"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pbbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bouke van der Bijl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|