rails-brotli-cache 0.4.5 → 0.5.0

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: a8625763513363be86da9d238d61e3db90c5052e9c15bb4327b0f64b799b5440
4
- data.tar.gz: dd4ad2c3ecb8ddd622dbc202238e535dd6ac28281efba003f07d3b1f6d0add49
3
+ metadata.gz: e5fcc9aa5854debba71fab6f5df69615ab2b9edaa6620ae139e7c68c598c0dcb
4
+ data.tar.gz: a60ba10b497f50e751ca191ce8e9034bd45b30c93e3dff718a26c14e178ffed9
5
5
  SHA512:
6
- metadata.gz: 22c8e8dee56147934a6923d908af3c02b30f78194cd15128b0b4fb1f7d015eaae132d0206d73323c4d712bc33fc938175d8a881ad468df52d084cbd99f6b5e4a
7
- data.tar.gz: 2cc953e90c76b4d7e893afe744ebeaff397372ab1b49445aaa524d5ac6ffc9ecc65210a360b0c74850f9c80a29a2807d81d35acf43b93e0b80c8806a8fec35cf
6
+ metadata.gz: 066d33ad8b2e12d2fa4242ac120cbd0cd1ceee693619146d72b2dfe95ecd8dfe69b5b01028488a31e5373c5472602c42219cb2e0e749d9a2661c0cbcc26b9cb1
7
+ data.tar.gz: a8522dff7f3452c216803cf5a45c62eb0ba1acadc3d4efece1130c35574344d4b2509938a076f78293814c271376b576973135791fc5fdf342240d587a2783cc
@@ -0,0 +1,39 @@
1
+ name: Ruby CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ services:
13
+ redis:
14
+ image: redis:alpine
15
+ ports: ["6379:6379"]
16
+ memcached:
17
+ image: memcached:alpine
18
+ ports: ["11211:11211"]
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ ruby-version: ['3.2', '3.1', '3.0', '2.7', '2.6']
23
+ steps:
24
+ - uses: actions/checkout@v3
25
+ - name: Set up Ruby ${{ matrix.ruby-version }}
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby-version }}
29
+ - name: Install dependencies
30
+ run: bundle install
31
+ - name: Run tests for Redis cache store
32
+ run: TEST_RAILS_CACHE_STORE=redis_cache_store bundle exec rspec spec
33
+ - name: Run tests for Memcache cache store
34
+ run: TEST_RAILS_CACHE_STORE=mem_cache_store bundle exec rspec spec
35
+ - name: Run tests for Brotli cache store
36
+ run: TEST_RAILS_CACHE_STORE=brotli_cache_store bundle exec rspec spec
37
+ - name: Run tests for in-memory cache store
38
+ run: bundle exec rspec spec
39
+
data/Rakefile CHANGED
@@ -7,5 +7,5 @@ task default: :spec
7
7
 
8
8
  desc 'Test all cache_stores'
9
9
  task :test_all do
10
- system("RAILS_CACHE_STORE=redis_cache_store bundle exec rspec spec/ && RAILS_CACHE_STORE=brotli_cache_store bundle exec rspec spec/ && bundle exec rspec spec/")
10
+ system("TEST_RAILS_CACHE_STORE=redis_cache_store bundle exec rspec spec && TEST_RAILS_CACHE_STORE=brotli_cache_store bundle exec rspec spec && TEST_RAILS_CACHE_STORE=mem_cache_store bundle exec rspec spec && bundle exec rspec spec")
11
11
  end
data/benchmarks/main.rb CHANGED
@@ -1,4 +1,5 @@
1
- require 'rails'
1
+ require "active_support"
2
+ require "active_support/core_ext/hash"
2
3
  require 'net/http'
3
4
  require 'rails-brotli-cache'
4
5
 
@@ -124,8 +124,8 @@ module RailsBrotliCache
124
124
  @core_store.delete(expanded_cache_key(name), options)
125
125
  end
126
126
 
127
- def clear
128
- @core_store.clear
127
+ def clear(options = {})
128
+ @core_store.clear(**options)
129
129
  end
130
130
 
131
131
  def increment(name, amount = 1, **options)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsBrotliCache
4
- VERSION = "0.4.5"
4
+ VERSION = "0.5.0"
5
5
  end
@@ -15,9 +15,12 @@ Gem::Specification.new do |gem|
15
15
  gem.test_files = gem.files.grep(%r{^(spec)/})
16
16
  gem.require_paths = ["lib"]
17
17
  gem.license = "MIT"
18
- gem.add_dependency "rails"
18
+ gem.add_dependency "activesupport"
19
19
  gem.add_dependency "brotli"
20
20
  gem.add_development_dependency "rspec"
21
+ gem.add_development_dependency "railties"
22
+ gem.add_development_dependency "activemodel"
23
+ gem.add_development_dependency "actionpack"
21
24
  gem.add_development_dependency "redis"
22
25
  gem.add_development_dependency "dalli"
23
26
  gem.add_development_dependency "byebug"
@@ -21,7 +21,12 @@ Bundler.require(*Rails.groups)
21
21
  module Dummy
22
22
  class Application < Rails::Application
23
23
  # Initialize configuration defaults for originally generated Rails version.
24
- config.load_defaults 7.0
24
+
25
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.7')
26
+ config.load_defaults 7.0
27
+ else
28
+ config.load_defaults 6.0
29
+ end
25
30
 
26
31
  # Configuration for the application, engines, and railties goes here.
27
32
  #
@@ -19,7 +19,7 @@ Rails.application.configure do
19
19
 
20
20
  # Enable/disable caching. By default caching is disabled.
21
21
  # Run rails dev:cache to toggle caching.
22
- config.cache_store = $rails_cache_store
22
+ config.cache_store = $test_rails_cache_store
23
23
 
24
24
  # Print deprecation notices to the Rails logger.
25
25
  config.active_support.deprecation = :log
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- return unless ENV['RAILS_CACHE_STORE'] == 'redis_cache_store'
5
+ return unless ENV['TEST_RAILS_CACHE_STORE'] == 'redis_cache_store'
6
6
 
7
7
  describe RailsBrotliCache do
8
8
  class Post
@@ -20,7 +20,7 @@ describe RailsBrotliCache do
20
20
  end
21
21
 
22
22
  let(:redis_store) do
23
- ActiveSupport::Cache::RedisCacheStore.new({ redis: $redis }.merge(options))
23
+ ActiveSupport::Cache::RedisCacheStore.new(**{ redis: $redis }.merge(options))
24
24
  end
25
25
 
26
26
  let(:brotli_store) do
@@ -75,7 +75,6 @@ describe RailsBrotliCache do
75
75
  end
76
76
 
77
77
  context "custom namespace proc" do
78
- @@counter = 0
79
78
  let(:options) do
80
79
  {
81
80
  namespace: -> { "myapp" }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- return unless ENV['RAILS_CACHE_STORE'] == 'brotli_cache_store'
5
+ return unless ENV['TEST_RAILS_CACHE_STORE'] == 'brotli_cache_store'
6
6
 
7
7
  describe RailsBrotliCache do
8
8
  subject(:cache_store) do
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- return unless ENV['RAILS_CACHE_STORE'] == 'redis_cache_store'
5
+ return unless ENV['TEST_RAILS_CACHE_STORE'] == 'redis_cache_store'
6
6
 
7
7
  describe RailsBrotliCache do
8
8
  let(:options) do
@@ -211,4 +211,13 @@ describe RailsBrotliCache do
211
211
  expect(cache_store.read("test-key")).to eq nil
212
212
  end
213
213
  end
214
+
215
+ describe "#clear" do
216
+ it "clears the cache" do
217
+ expect(cache_store.write("test-key", 1234))
218
+ expect(cache_store.read("test-key")).to eq 1234
219
+ cache_store.clear
220
+ expect(cache_store.read("test-key")).to eq nil
221
+ end
222
+ end
214
223
  end
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,18 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
- require 'rails'
3
+ require "active_support"
4
+ require "active_support/core_ext/hash"
4
5
  require 'redis'
5
6
 
6
7
  require_relative '../lib/rails-brotli-cache'
7
8
 
8
9
  $redis = Redis.new
9
- $rails_cache_store = if ENV['RAILS_CACHE_STORE'] == 'redis_cache_store'
10
+ $test_rails_cache_store = if ENV['TEST_RAILS_CACHE_STORE'] == 'redis_cache_store'
10
11
  ActiveSupport::Cache::RedisCacheStore.new(redis: $redis)
11
- elsif ENV['RAILS_CACHE_STORE'] == 'brotli_cache_store'
12
+ elsif ENV['TEST_RAILS_CACHE_STORE'] == 'brotli_cache_store'
12
13
  RailsBrotliCache::Store.new(ActiveSupport::Cache::MemoryStore.new)
14
+ elsif ENV['TEST_RAILS_CACHE_STORE'] == 'memcache_cache_store'
15
+ ActiveSupport::Cache::ActiveSupport::Cache::MemCacheStore.new
13
16
  else
14
17
  ActiveSupport::Cache::MemoryStore.new
15
18
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-brotli-cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pawurb
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-12 00:00:00.000000000 Z
11
+ date: 2023-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -52,6 +52,48 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: railties
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activemodel
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
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: actionpack
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'
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: redis
57
99
  requirement: !ruby/object:Gem::Requirement
@@ -102,7 +144,7 @@ executables: []
102
144
  extensions: []
103
145
  extra_rdoc_files: []
104
146
  files:
105
- - ".circleci/config.yml"
147
+ - ".github/workflows/ci.yml"
106
148
  - ".gitignore"
107
149
  - Gemfile
108
150
  - LICENSE.txt
@@ -169,7 +211,7 @@ licenses:
169
211
  - MIT
170
212
  metadata:
171
213
  rubygems_mfa_required: 'true'
172
- post_install_message:
214
+ post_install_message:
173
215
  rdoc_options: []
174
216
  require_paths:
175
217
  - lib
@@ -184,8 +226,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
226
  - !ruby/object:Gem::Version
185
227
  version: '0'
186
228
  requirements: []
187
- rubygems_version: 3.1.6
188
- signing_key:
229
+ rubygems_version: 3.4.10
230
+ signing_key:
189
231
  specification_version: 4
190
232
  summary: Drop-in enhancement for Rails cache, offering better performance and compression
191
233
  with Brotli algorithm.
data/.circleci/config.yml DELETED
@@ -1,34 +0,0 @@
1
- version: 2
2
- jobs:
3
- test:
4
- docker:
5
- - image: cimg/ruby:2.7.6
6
- - image: redis:alpine
7
- - image: memcached:alpine
8
- parallelism: 1
9
- steps:
10
- - checkout
11
- - run: gem update --system
12
- - run: gem install bundler
13
- - run: sudo apt-get update --allow-releaseinfo-change
14
- - run: bundle config set --local path 'vendor/bundle'
15
- - run: bundle install
16
- - run: sleep 5
17
- - run:
18
- name: Run specs for redis cache store
19
- environment:
20
- TEST_CACHE_STORE: redis_cache_store
21
- command: bundle exec rspec spec/
22
- - run:
23
- name: Run specs for memcached cache store
24
- environment:
25
- TEST_CACHE_STORE: mem_cache_store
26
- command: bundle exec rspec spec/
27
- - run:
28
- name: Run specs for in-memory cache store
29
- command: bundle exec rspec spec/
30
- workflows:
31
- version: 2
32
- test:
33
- jobs:
34
- - test