rails-brotli-cache 0.3.12 → 0.3.14

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: 473f7e06756e422c9c3644f6eb8fbd97fb3c6929d74d5ede901c037c93df7db1
4
- data.tar.gz: 25ce534d47267870cb70eb49ac849f4dc60073944372b3d26fd81a01dd360834
3
+ metadata.gz: cceeb82eb8c194ea2b8acd9fbdcf5a55d53fd6dbdf0f4f9aaf20ae2577fcab2c
4
+ data.tar.gz: 6c2bcade2408e81a303091e782d01239c625c288f63def2a6c40618fedf2bc4d
5
5
  SHA512:
6
- metadata.gz: e13c7a3fb0c0591dbb9dd4ccac8bf97aaf9d51ce1ec1d793fd08c678f6d8ba75b65f45f6612a12bbf8a76fc49d7865f591d466753b0d699f474fd33cc8413ab0
7
- data.tar.gz: 4f0d2fc6e0e2e17e3212a53709fc31831bc62394daad757e1060a323dd46031daaa3ac72be67df254cfd4df8dd71751d31c70567eb217e25ec614dadc29792d3
6
+ metadata.gz: 04bc2568e39f8f398f5cd71fd169570a07ec972d506baf33202738145e48009f6064da385b521671627e058c7fec1115db28b9dd806c0cc123ae0811af9dce5e
7
+ data.tar.gz: f62f95df44c1acb1ceb734299291a68323a7c093b15f7762651faf43a49f83d5e7d80054444d2d63ff38bb2758fc2909836b15b93b50f54c3e0638b2c5456ec1
@@ -23,22 +23,22 @@ module RailsBrotliCache
23
23
  end
24
24
 
25
25
  def fetch(name, options = nil, &block)
26
- value = read(name, options)
27
-
28
- if value.present? && !options&.fetch(:force, false) == true
29
- return value
30
- end
31
-
32
- if block_given?
33
- value = block.call
34
- write(name, value, options)
26
+ options ||= {}
35
27
 
36
- value
37
- elsif options && options[:force]
28
+ if !block_given? && options[:force]
38
29
  raise ArgumentError, "Missing block: Calling `Cache#fetch` with `force: true` requires a block."
39
- else
40
- read(name, options)
41
30
  end
31
+
32
+ uncompressed(
33
+ @core_store.fetch(cache_key(name), options.merge(compress: false)) do
34
+ if block_given?
35
+ compressed(block.call, options)
36
+ else
37
+ nil
38
+ end
39
+ end,
40
+ options
41
+ )
42
42
  end
43
43
 
44
44
  def write(name, value, options = nil)
@@ -130,7 +130,7 @@ module RailsBrotliCache
130
130
  return value if value.is_a?(Integer)
131
131
  serialized = Marshal.dump(value)
132
132
 
133
- if serialized.bytesize >= COMPRESS_THRESHOLD && !options.fetch(:compress) == false
133
+ if serialized.bytesize >= COMPRESS_THRESHOLD && !options.fetch(:compress, true) == false
134
134
  compressor = compressor_class(options, default: @compressor_class)
135
135
  compressed_payload = compressor.deflate(serialized)
136
136
  if compressed_payload.bytesize < serialized.bytesize
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsBrotliCache
4
- VERSION = "0.3.12"
4
+ VERSION = "0.3.14"
5
5
  end
@@ -19,9 +19,9 @@ describe RailsBrotliCache do
19
19
 
20
20
  it "executes block only once" do
21
21
  counter = 0
22
- cache_store.fetch("forced-key") { counter += 1 }
23
- cache_store.fetch("forced-key") { counter += 1 }
24
- expect(cache_store.read("forced-key")).to eq 1
22
+ cache_store.fetch("test-key") { counter += 1 }
23
+ cache_store.fetch("test-key") { counter += 1 }
24
+ expect(cache_store.read("test-key")).to eq 1
25
25
  end
26
26
 
27
27
  context "{ force: true }" do
@@ -38,6 +38,12 @@ describe RailsBrotliCache do
38
38
  expect(cache_store.read("forced-key")).to eq 2
39
39
  end
40
40
  end
41
+
42
+ it "stores value in the configured Rails.cache when options passed" do
43
+ big_enough_to_compress_value = SecureRandom.hex(2048)
44
+ cache_store.fetch("test-key", expires_in: 5.seconds) { big_enough_to_compress_value }
45
+ expect(cache_store.read("test-key")).to eq big_enough_to_compress_value
46
+ end
41
47
  end
42
48
 
43
49
  describe "#increment and #decrement" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-brotli-cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.12
4
+ version: 0.3.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - pawurb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-27 00:00:00.000000000 Z
11
+ date: 2023-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails