modis 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62a6abe9671e399409e452a290c360fcd0aadfbdceccca9aa364d6f232b2df49
4
- data.tar.gz: d8468a3f54bf0587f8d89ff2b353a5c48ea0798a4c067bd291ef5ed471448a01
3
+ metadata.gz: d3cc18ebd9e13700435d34434b57d52b10eea6b6af111458db728c58ef132d7f
4
+ data.tar.gz: 77010b2ca7a9edf776064a2d94f0c1e311af46263f9419b169afb157f78c4c48
5
5
  SHA512:
6
- metadata.gz: a382d676431ed8bd7fd79dde5dbff275c19687b42ce9de52980ce35898ea91eb447a1a7349b8f09bc56606841e7f6cada8f882bc23f5eb8d9f5483b109805d61
7
- data.tar.gz: 499687970a4a33a573e16ea8f1b70749e85d2650b2092a37ce26cdd9452cc6c3a3c539e9e59dcfa9d5db0ed2d9ccf19c961122e22d0e8dfd3e41afda080c925d
6
+ metadata.gz: dec75991005c6e245aff2f49150c76fafac0c65cc4523a4de814938e8de3e39b8baed59e5338e4759a9978ac1967c765be90aecdd1b5cc99a050b96bd0561512
7
+ data.tar.gz: acff0628d95b28918f1329e1cd325031561da7635ae73619e822902f794b33a0314e104db801b8bd22cdec2e588a01fb2cbe97d1bec81316255df911b13f73ca
@@ -0,0 +1,67 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ env:
10
+ CI: "true"
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-22.04
15
+
16
+ services:
17
+ redis:
18
+ image: redis
19
+ options: >-
20
+ --health-cmd "redis-cli ping"
21
+ --health-interval 10s
22
+ --health-timeout 5s
23
+ --health-retries 5
24
+ ports:
25
+ # Maps port 6379 on service container to the host
26
+ - 6379:6379
27
+
28
+ strategy:
29
+ matrix:
30
+ gemfile: ['rails_5.2', 'rails_6.0', 'rails_6.1', 'rails_7.0']
31
+
32
+ ruby: ['2.4', '2.5', '2.6', '2.7', '3.0', '3.1']
33
+
34
+ exclude:
35
+ # Rails 5.2 requires Ruby < 3.0
36
+ # https://github.com/rails/rails/issues/40938
37
+ - ruby: '3.0'
38
+ gemfile: 'rails_5.2'
39
+ - ruby: '3.1'
40
+ gemfile: 'rails_5.2'
41
+ # Rails >= 6 requires Ruby >= 2.5
42
+ - ruby: '2.4'
43
+ gemfile: 'rails_6.0'
44
+ - ruby: '2.4'
45
+ gemfile: 'rails_6.1'
46
+ # Rails >= 7 requires Ruby >= 2.7
47
+ - ruby: '2.4'
48
+ gemfile: 'rails_7.0'
49
+ - ruby: '2.5'
50
+ gemfile: 'rails_7.0'
51
+ - ruby: '2.6'
52
+ gemfile: 'rails_7.0'
53
+
54
+ env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
55
+ BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
56
+
57
+ steps:
58
+ - uses: actions/checkout@v2
59
+
60
+ - name: Set up Ruby
61
+ uses: ruby/setup-ruby@v1
62
+ with:
63
+ ruby-version: ${{ matrix.ruby }}
64
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
65
+
66
+ - name: Run tests
67
+ run: bundle exec rake
@@ -0,0 +1,3 @@
1
+ user=rpush
2
+ project=modis
3
+ future-release=v4.1.0
data/.rubocop.yml CHANGED
@@ -3,23 +3,24 @@ AllCops:
3
3
  - modis.gemspec
4
4
  - vendor/**/*
5
5
  - gemfiles/**/*
6
+ TargetRubyVersion: 2.3
6
7
 
7
- LineLength:
8
+ Layout/LineLength:
8
9
  Enabled: false
9
10
 
10
- StringLiterals:
11
+ Style/StringLiterals:
11
12
  Enabled: false
12
13
 
13
- Documentation:
14
+ Style/Documentation:
14
15
  Enabled: false
15
16
 
16
- MethodLength:
17
+ Metrics/MethodLength:
17
18
  Enabled: false
18
19
 
19
- ClassLength:
20
+ Metrics/ClassLength:
20
21
  Enabled: false
21
22
 
22
- CyclomaticComplexity:
23
+ Metrics/CyclomaticComplexity:
23
24
  Enabled: false
24
25
 
25
26
  Style/SignalException:
@@ -42,3 +43,19 @@ Metrics/BlockLength:
42
43
 
43
44
  Security/YAMLLoad:
44
45
  Enabled: false
46
+
47
+ Lint/RaiseException:
48
+ Enabled: true
49
+
50
+ Lint/StructNewOverride:
51
+ Enabled: true
52
+
53
+ Style/HashEachMethods:
54
+ Enabled: true
55
+
56
+ Style/HashTransformKeys:
57
+ Enabled: true
58
+
59
+ Style/HashTransformValues:
60
+ Enabled: true
61
+
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.5
1
+ 3.1.3
data/Appraisals CHANGED
@@ -1,20 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise 'rails-4.2' do
4
- gem 'activemodel', '~> 4.2.0'
5
- gem 'activesupport', '~> 4.2.0'
6
- end
7
-
8
- appraise 'rails-5.0' do
9
- gem 'activemodel', '~> 5.0.0'
10
- gem 'activesupport', '~> 5.0.0'
11
- end
12
-
13
- appraise 'rails-5.1' do
14
- gem 'activemodel', '~> 5.1.0'
15
- gem 'activesupport', '~> 5.1.0'
16
- end
17
-
18
3
  appraise 'rails-5.2' do
19
4
  gem 'activemodel', '~> 5.2.0'
20
5
  gem 'activesupport', '~> 5.2.0'
@@ -24,3 +9,13 @@ appraise 'rails-6.0' do
24
9
  gem 'activemodel', '~> 6.0.0'
25
10
  gem 'activesupport', '~> 6.0.0'
26
11
  end
12
+
13
+ appraise 'rails-6.1' do
14
+ gem 'activemodel', '~> 6.1.0'
15
+ gem 'activesupport', '~> 6.1.0'
16
+ end
17
+
18
+ appraise 'rails-7.0' do
19
+ gem 'activemodel', '~> 7.0.0'
20
+ gem 'activesupport', '~> 7.0.0'
21
+ end
data/CHANGELOG.md CHANGED
@@ -1,38 +1,152 @@
1
- ## Unreleased
1
+ # Changelog
2
2
 
3
- ## v4.0.0 - 2021-04-28
3
+ ## [v4.1.0](https://github.com/rpush/modis/tree/v4.1.0) (2023-02-01)
4
4
 
5
- **Breaking:**
5
+ [Full Changelog](https://github.com/rpush/modis/compare/v4.0.1...v4.1.0)
6
6
 
7
- - Drop support for Rails 4.2, 5.0, 5.1.
8
- - Removed `hiredis` as a dependency and made it a development dependency.
9
- For details, see [#31](https://github.com/rpush/modis/pull/31) by [@fdoxyz](https://github.com/fdoxyz).
7
+ **Closed issues:**
10
8
 
11
- ## v3.3.0 - 2020-07-07
9
+ - Migrate CI to GitHub Actions, add testing for Rails 7.0 and Ruby 3.1 [\#33](https://github.com/rpush/modis/issues/33)
12
10
 
13
- - Fix deprecation warnings when using Ruby >= 2.7, `activemodel` >= 6.0.3, or `redis` >= 4.2.0. [#30](https://github.com/rpush/modis/pull/30) by [@rofreg](https://github.com/rofreg).
11
+ **Merged pull requests:**
14
12
 
15
- ## v3.2.0 - 2019-12-12
13
+ - Upgrades to latest activesupport [\#44](https://github.com/rpush/modis/pull/44) ([benlangfeld](https://github.com/benlangfeld))
14
+ - Switch from Travis CI to GH actions [\#42](https://github.com/rpush/modis/pull/42) ([benlangfeld](https://github.com/benlangfeld))
15
+ - Flexible encoding [\#41](https://github.com/rpush/modis/pull/41) ([benlangfeld](https://github.com/benlangfeld))
16
+ - Compatibility with redis 4.8.x gem [\#40](https://github.com/rpush/modis/pull/40) ([benlangfeld](https://github.com/benlangfeld))
17
+ - Compatibility with redis 4.7.x gem [\#39](https://github.com/rpush/modis/pull/39) ([benlangfeld](https://github.com/benlangfeld))
18
+ - More modern ruby for local dev [\#37](https://github.com/rpush/modis/pull/37) ([benlangfeld](https://github.com/benlangfeld))
19
+ - Don't allow redis \> 4.6 yet [\#36](https://github.com/rpush/modis/pull/36) ([benlangfeld](https://github.com/benlangfeld))
16
20
 
17
- - Add missing `#update` and `#update!`. [#27](https://github.com/rpush/modis/pull/27) by [@dsantosmerino](https://github.com/dsantosmerino).
21
+ ## [v4.0.1](https://github.com/rpush/modis/tree/v4.0.1) (2022-03-02)
18
22
 
19
- ## v3.1.0 - 2019-10-18
23
+ [Full Changelog](https://github.com/rpush/modis/compare/v4.0.0...v4.0.1)
20
24
 
21
- - Test with Rails 6
22
- - Drop i18n dependency (credit goes to [@jas14](https://github.com/jas14) in [#23](https://github.com/rpush/modis/pull/23))
25
+ **Merged pull requests:**
23
26
 
24
- ## v3.0.0 - 2018-12-20
27
+ - Fix deprectated pipeline calls for Redis 4.6.0 [\#32](https://github.com/rpush/modis/pull/32) ([justinhoward](https://github.com/justinhoward))
25
28
 
26
- - Drop support for any Ruby < 2.3 and Rails < 4.2.
27
- - Add support for Rails 5.2
28
- - Resolve Rubocop lint violations
29
- - Test combinations of Ruby and Rails versions in CI
29
+ ## [v4.0.0](https://github.com/rpush/modis/tree/v4.0.0) (2021-04-28)
30
30
 
31
- ## v2.1.0
31
+ [Full Changelog](https://github.com/rpush/modis/compare/v3.3.0...v4.0.0)
32
32
 
33
- - Add `enable_all_index` option to allow disabling the `all` keys. [#7](https://github.com/rpush/modis/pull/7)
33
+ **Closed issues:**
34
34
 
35
- ## v2.0.0
35
+ - remove hiredis dependency [\#15](https://github.com/rpush/modis/issues/15)
36
36
 
37
- - Support MRI 2.2.2+ and JRuby 9k+ [#5](https://github.com/rpush/modis/pull/5)
38
- - Remove YAML (de)serialization support [#5](https://github.com/rpush/modis/pull/5)
37
+ **Merged pull requests:**
38
+
39
+ - Makes hiredis a development dependency [\#31](https://github.com/rpush/modis/pull/31) ([fdocr](https://github.com/fdocr))
40
+
41
+ ## [v3.3.0](https://github.com/rpush/modis/tree/v3.3.0) (2020-07-07)
42
+
43
+ [Full Changelog](https://github.com/rpush/modis/compare/v3.2.0...v3.3.0)
44
+
45
+ **Merged pull requests:**
46
+
47
+ - Fix deprecation warnings [\#30](https://github.com/rpush/modis/pull/30) ([rofreg](https://github.com/rofreg))
48
+ - Test with Ruby 2.7 [\#28](https://github.com/rpush/modis/pull/28) ([aried3r](https://github.com/aried3r))
49
+
50
+ ## [v3.2.0](https://github.com/rpush/modis/tree/v3.2.0) (2019-12-12)
51
+
52
+ [Full Changelog](https://github.com/rpush/modis/compare/v3.1.0...v3.2.0)
53
+
54
+ **Merged pull requests:**
55
+
56
+ - Add missing `#update` and `#update!` persistance methods [\#27](https://github.com/rpush/modis/pull/27) ([dsantosmerino](https://github.com/dsantosmerino))
57
+
58
+ ## [v3.1.0](https://github.com/rpush/modis/tree/v3.1.0) (2019-10-18)
59
+
60
+ [Full Changelog](https://github.com/rpush/modis/compare/3.0.0...v3.1.0)
61
+
62
+ **Closed issues:**
63
+
64
+ - Add testing for Rails 6 [\#24](https://github.com/rpush/modis/issues/24)
65
+ - Modis Memory Leak [\#14](https://github.com/rpush/modis/issues/14)
66
+ - Support of Rails 5.2 [\#13](https://github.com/rpush/modis/issues/13)
67
+
68
+ **Merged pull requests:**
69
+
70
+ - Remove i18n dependency [\#26](https://github.com/rpush/modis/pull/26) ([aried3r](https://github.com/aried3r))
71
+ - Test with Rails 6, Ubuntu 18.04, Ruby 2.6 [\#25](https://github.com/rpush/modis/pull/25) ([aried3r](https://github.com/aried3r))
72
+ - Fix build status badge [\#22](https://github.com/rpush/modis/pull/22) ([jas14](https://github.com/jas14))
73
+
74
+ ## [3.0.0](https://github.com/rpush/modis/tree/3.0.0) (2018-12-20)
75
+
76
+ [Full Changelog](https://github.com/rpush/modis/compare/v2.1.0...3.0.0)
77
+
78
+ **Closed issues:**
79
+
80
+ - difficult to persist after making changes to part of a hash attribute [\#8](https://github.com/rpush/modis/issues/8)
81
+
82
+ **Merged pull requests:**
83
+
84
+ - Prep 3.0.0 release [\#21](https://github.com/rpush/modis/pull/21) ([garettarrowood](https://github.com/garettarrowood))
85
+ - Lock i18n version [\#20](https://github.com/rpush/modis/pull/20) ([garettarrowood](https://github.com/garettarrowood))
86
+ - Compatability with Rails 5.2's ActiveModel::Dirty [\#19](https://github.com/rpush/modis/pull/19) ([benlangfeld](https://github.com/benlangfeld))
87
+ - Resolve rubocop violations and lock version [\#17](https://github.com/rpush/modis/pull/17) ([garettarrowood](https://github.com/garettarrowood))
88
+ - Fix CI failures by resolving RuboCop offenses [\#12](https://github.com/rpush/modis/pull/12) ([garettarrowood](https://github.com/garettarrowood))
89
+ - get rid of old school rocket syntax [\#11](https://github.com/rpush/modis/pull/11) ([DmytroStepaniuk](https://github.com/DmytroStepaniuk))
90
+ - fix wrong readme example [\#10](https://github.com/rpush/modis/pull/10) ([DmytroStepaniuk](https://github.com/DmytroStepaniuk))
91
+
92
+ ## [v2.1.0](https://github.com/rpush/modis/tree/v2.1.0) (2017-06-24)
93
+
94
+ [Full Changelog](https://github.com/rpush/modis/compare/v1.4.2...v2.1.0)
95
+
96
+ **Closed issues:**
97
+
98
+ - Reason of :all index [\#6](https://github.com/rpush/modis/issues/6)
99
+
100
+ **Merged pull requests:**
101
+
102
+ - New option for Modis::Model - :enable\_all\_index [\#7](https://github.com/rpush/modis/pull/7) ([nattfodd](https://github.com/nattfodd))
103
+
104
+ ## [v1.4.2](https://github.com/rpush/modis/tree/v1.4.2) (2017-06-05)
105
+
106
+ [Full Changelog](https://github.com/rpush/modis/compare/v2.0.0...v1.4.2)
107
+
108
+ ## [v2.0.0](https://github.com/rpush/modis/tree/v2.0.0) (2017-05-25)
109
+
110
+ [Full Changelog](https://github.com/rpush/modis/compare/v1.4.1...v2.0.0)
111
+
112
+ **Closed issues:**
113
+
114
+ - Drop support for Ruby \<= 2.1 [\#4](https://github.com/rpush/modis/issues/4)
115
+ - Spec errors in new optimizations [\#1](https://github.com/rpush/modis/issues/1)
116
+
117
+ **Merged pull requests:**
118
+
119
+ - Improvements [\#5](https://github.com/rpush/modis/pull/5) ([Tonkpils](https://github.com/Tonkpils))
120
+ - Support for Ruby 2.4.1 [\#3](https://github.com/rpush/modis/pull/3) ([Tonkpils](https://github.com/Tonkpils))
121
+
122
+ ## [v1.4.1](https://github.com/rpush/modis/tree/v1.4.1) (2015-01-20)
123
+
124
+ [Full Changelog](https://github.com/rpush/modis/compare/v1.4.0...v1.4.1)
125
+
126
+ ## [v1.4.0](https://github.com/rpush/modis/tree/v1.4.0) (2015-01-13)
127
+
128
+ [Full Changelog](https://github.com/rpush/modis/compare/v1.3.0...v1.4.0)
129
+
130
+ ## [v1.3.0](https://github.com/rpush/modis/tree/v1.3.0) (2014-09-01)
131
+
132
+ [Full Changelog](https://github.com/rpush/modis/compare/v1.2.0...v1.3.0)
133
+
134
+ ## [v1.2.0](https://github.com/rpush/modis/tree/v1.2.0) (2014-09-01)
135
+
136
+ [Full Changelog](https://github.com/rpush/modis/compare/v1.1.0...v1.2.0)
137
+
138
+ ## [v1.1.0](https://github.com/rpush/modis/tree/v1.1.0) (2014-07-09)
139
+
140
+ [Full Changelog](https://github.com/rpush/modis/compare/v1.0.0...v1.1.0)
141
+
142
+ ## [v1.0.0](https://github.com/rpush/modis/tree/v1.0.0) (2014-06-22)
143
+
144
+ [Full Changelog](https://github.com/rpush/modis/compare/v0.0.1...v1.0.0)
145
+
146
+ ## [v0.0.1](https://github.com/rpush/modis/tree/v0.0.1) (2014-04-20)
147
+
148
+ [Full Changelog](https://github.com/rpush/modis/compare/a42bf2ff8e233a52ce1fb4fd3120f21cec8bee1c...v0.0.1)
149
+
150
+
151
+
152
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Gemfile.lock CHANGED
@@ -1,50 +1,101 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- modis (4.0.0)
4
+ modis (4.1.0)
5
5
  activemodel (>= 5.2)
6
6
  activesupport (>= 5.2)
7
7
  connection_pool (>= 2)
8
8
  msgpack (>= 0.5)
9
- redis (>= 3.0)
9
+ redis (>= 3.0, < 5.0)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activemodel (6.0.3.4)
15
- activesupport (= 6.0.3.4)
16
- activesupport (6.0.3.4)
14
+ activemodel (7.0.4.2)
15
+ activesupport (= 7.0.4.2)
16
+ activesupport (7.0.4.2)
17
17
  concurrent-ruby (~> 1.0, >= 1.0.2)
18
- i18n (>= 0.7, < 2)
19
- minitest (~> 5.1)
20
- tzinfo (~> 1.1)
21
- zeitwerk (~> 2.2, >= 2.2.2)
18
+ i18n (>= 1.6, < 2)
19
+ minitest (>= 5.1)
20
+ tzinfo (~> 2.0)
21
+ addressable (2.8.1)
22
+ public_suffix (>= 2.0.2, < 6.0)
22
23
  appraisal (2.3.0)
23
24
  bundler
24
25
  rake
25
26
  thor (>= 0.14.0)
26
- ast (2.4.1)
27
+ ast (2.4.2)
28
+ async (2.3.1)
29
+ console (~> 1.10)
30
+ io-event (~> 1.1)
31
+ timers (~> 4.1)
32
+ async-http (0.59.5)
33
+ async (>= 1.25)
34
+ async-io (>= 1.28)
35
+ async-pool (>= 0.2)
36
+ protocol-http (~> 0.23)
37
+ protocol-http1 (~> 0.14.0)
38
+ protocol-http2 (~> 0.14.0)
39
+ traces (>= 0.8.0)
40
+ async-http-faraday (0.11.0)
41
+ async-http (~> 0.42)
42
+ faraday
43
+ async-io (1.34.3)
44
+ async
45
+ async-pool (0.3.12)
46
+ async (>= 1.25)
27
47
  cane (3.0.0)
28
48
  parallel
29
49
  codeclimate-test-reporter (1.0.7)
30
50
  simplecov
31
- concurrent-ruby (1.1.7)
32
- connection_pool (2.2.3)
51
+ concurrent-ruby (1.2.0)
52
+ connection_pool (2.3.0)
53
+ console (1.16.2)
54
+ fiber-local
33
55
  diff-lcs (1.4.4)
34
56
  docile (1.3.2)
57
+ faraday (2.7.4)
58
+ faraday-net_http (>= 2.0, < 3.1)
59
+ ruby2_keywords (>= 0.0.4)
60
+ faraday-http-cache (2.4.1)
61
+ faraday (>= 0.8)
62
+ faraday-net_http (3.0.2)
63
+ fiber-local (1.0.0)
64
+ github_changelog_generator (1.16.4)
65
+ activesupport
66
+ async (>= 1.25.0)
67
+ async-http-faraday
68
+ faraday-http-cache
69
+ multi_json
70
+ octokit (~> 4.6)
71
+ rainbow (>= 2.2.1)
72
+ rake (>= 10.0)
35
73
  hiredis (0.6.3)
36
- i18n (1.8.5)
74
+ i18n (1.12.0)
37
75
  concurrent-ruby (~> 1.0)
76
+ io-event (1.1.6)
38
77
  jaro_winkler (1.5.4)
39
- minitest (5.14.2)
40
- msgpack (1.3.3)
41
- parallel (1.19.2)
42
- parser (2.7.1.4)
78
+ minitest (5.17.0)
79
+ msgpack (1.6.0)
80
+ multi_json (1.15.0)
81
+ octokit (4.25.1)
82
+ faraday (>= 1, < 3)
83
+ sawyer (~> 0.9)
84
+ parallel (1.20.1)
85
+ parser (3.0.1.0)
43
86
  ast (~> 2.4.1)
44
- powerpack (0.1.2)
87
+ protocol-hpack (1.4.2)
88
+ protocol-http (0.24.0)
89
+ protocol-http1 (0.14.6)
90
+ protocol-http (~> 0.22)
91
+ protocol-http2 (0.14.2)
92
+ protocol-hpack (~> 1.4)
93
+ protocol-http (~> 0.18)
94
+ public_suffix (5.0.1)
45
95
  rainbow (3.0.0)
46
96
  rake (13.0.1)
47
- redis (4.2.1)
97
+ redis (4.8.0)
98
+ rexml (3.2.5)
48
99
  rspec (3.9.0)
49
100
  rspec-core (~> 3.9.0)
50
101
  rspec-expectations (~> 3.9.0)
@@ -58,25 +109,29 @@ GEM
58
109
  diff-lcs (>= 1.2.0, < 2.0)
59
110
  rspec-support (~> 3.9.0)
60
111
  rspec-support (3.9.3)
61
- rubocop (0.61.1)
112
+ rubocop (0.81.0)
62
113
  jaro_winkler (~> 1.5.1)
63
114
  parallel (~> 1.10)
64
- parser (>= 2.5, != 2.5.1.1)
65
- powerpack (~> 0.1)
115
+ parser (>= 2.7.0.1)
66
116
  rainbow (>= 2.2.2, < 4.0)
117
+ rexml
67
118
  ruby-progressbar (~> 1.7)
68
- unicode-display_width (~> 1.4.0)
69
- ruby-progressbar (1.10.1)
119
+ unicode-display_width (>= 1.4.0, < 2.0)
120
+ ruby-progressbar (1.11.0)
121
+ ruby2_keywords (0.0.5)
122
+ sawyer (0.9.2)
123
+ addressable (>= 2.3.5)
124
+ faraday (>= 0.17.3, < 3)
70
125
  simplecov (0.18.5)
71
126
  docile (~> 1.1)
72
127
  simplecov-html (~> 0.11)
73
- simplecov-html (0.12.2)
128
+ simplecov-html (0.12.3)
74
129
  thor (1.0.1)
75
- thread_safe (0.3.6)
76
- tzinfo (1.2.7)
77
- thread_safe (~> 0.1)
78
- unicode-display_width (1.4.1)
79
- zeitwerk (2.4.0)
130
+ timers (4.3.5)
131
+ traces (0.8.0)
132
+ tzinfo (2.0.6)
133
+ concurrent-ruby (~> 1.0)
134
+ unicode-display_width (1.7.0)
80
135
 
81
136
  PLATFORMS
82
137
  ruby
@@ -85,12 +140,13 @@ DEPENDENCIES
85
140
  appraisal
86
141
  cane
87
142
  codeclimate-test-reporter
143
+ github_changelog_generator
88
144
  hiredis (>= 0.5)
89
145
  modis!
90
146
  rake
91
147
  rspec
92
- rubocop (= 0.61.1)
148
+ rubocop (= 0.81.0)
93
149
  simplecov
94
150
 
95
151
  BUNDLED WITH
96
- 2.1.4
152
+ 2.2.21
data/README.md CHANGED
@@ -1,4 +1,3 @@
1
- [![Build Status](https://travis-ci.org/rpush/modis.svg?branch=master)](https://travis-ci.org/rpush/modis)
2
1
  [![Code Climate](https://codeclimate.com/github/ileitch/modis/badges/gpa.svg)](https://codeclimate.com/github/ileitch/modis)
3
2
  [![Test Coverage](https://codeclimate.com/github/ileitch/modis/badges/coverage.svg)](https://codeclimate.com/github/ileitch/modis)
4
3
 
data/Rakefile CHANGED
@@ -10,9 +10,9 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
10
10
  spec.rspec_opts = ['--backtrace']
11
11
  end
12
12
 
13
- if ENV['TRAVIS'] && ENV['QUALITY'] == 'false'
13
+ if ENV['CI'] && ENV['QUALITY'] == 'false'
14
14
  task default: 'spec'
15
- elsif RUBY_VERSION > '1.9' && defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby'
15
+ elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby'
16
16
  task default: 'spec:quality'
17
17
  else
18
18
  task default: 'spec'
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activemodel", "~> 7.0.0"
6
+ gem "activesupport", "~> 7.0.0"
7
+
8
+ gemspec path: "../"
data/lib/modis/finder.rb CHANGED
@@ -20,8 +20,8 @@ module Modis
20
20
 
21
21
  records = Modis.with_connection do |redis|
22
22
  ids = redis.smembers(key_for(:all))
23
- redis.pipelined do
24
- ids.map { |id| record_for(redis, id) }
23
+ redis.pipelined do |pipeline|
24
+ ids.map { |id| record_for(pipeline, id) }
25
25
  end
26
26
  end
27
27
 
@@ -42,8 +42,13 @@ module Modis
42
42
  raise RecordNotFound, "Couldn't find #{name} without an ID" if ids.empty?
43
43
 
44
44
  records = Modis.with_connection do |redis|
45
- blk = proc { |id| record_for(redis, id) }
46
- ids.count == 1 ? ids.map(&blk) : redis.pipelined { ids.map(&blk) }
45
+ if ids.count == 1
46
+ ids.map { |id| record_for(redis, id) }
47
+ else
48
+ redis.pipelined do |pipeline|
49
+ ids.map { |id| record_for(pipeline, id) }
50
+ end
51
+ end
47
52
  end
48
53
 
49
54
  models = records_to_models(records)
data/lib/modis/index.rb CHANGED
@@ -62,7 +62,7 @@ module Modis
62
62
 
63
63
  indexed_attributes.each do |attribute|
64
64
  key = index_key(attribute, read_attribute(attribute))
65
- redis.sadd(key, id)
65
+ redis.sadd(key, [id])
66
66
  end
67
67
  end
68
68
 
@@ -71,7 +71,7 @@ module Modis
71
71
 
72
72
  indexed_attributes.each do |attribute|
73
73
  key = index_key(attribute, read_attribute(attribute))
74
- redis.srem(key, id)
74
+ redis.srem(key, [id])
75
75
  end
76
76
  end
77
77
 
@@ -83,7 +83,8 @@ module Modis
83
83
 
84
84
  def deserialize(record)
85
85
  values = record.values
86
- values = MessagePack.unpack(msgpack_array_header(values.size) + values.join)
86
+ header = msgpack_array_header(values.size, values.first.encoding)
87
+ values = MessagePack.unpack(header + values.join)
87
88
  keys = record.keys
88
89
  values.each_with_index { |v, i| record[keys[i]] = v }
89
90
  record
@@ -97,14 +98,14 @@ module Modis
97
98
 
98
99
  private
99
100
 
100
- def msgpack_array_header(values_size)
101
+ def msgpack_array_header(values_size, encoding)
101
102
  if values_size < 16
102
103
  [0x90 | values_size].pack("C")
103
104
  elsif values_size < 65536
104
105
  [0xDC, values_size].pack("Cn")
105
106
  else
106
107
  [0xDD, values_size].pack("CN")
107
- end.force_encoding(Encoding::UTF_8)
108
+ end.force_encoding(encoding)
108
109
  end
109
110
  end
110
111
 
@@ -135,13 +136,13 @@ module Modis
135
136
  def destroy
136
137
  self.class.transaction do |redis|
137
138
  run_callbacks :destroy do
138
- redis.pipelined do
139
- remove_from_indexes(redis)
139
+ redis.pipelined do |pipeline|
140
+ remove_from_indexes(pipeline)
140
141
  if self.class.all_index_enabled?
141
- redis.srem(self.class.key_for(:all), id)
142
- redis.srem(self.class.sti_base_key_for(:all), id) if self.class.sti_child?
142
+ pipeline.srem(self.class.key_for(:all), [id])
143
+ pipeline.srem(self.class.sti_base_key_for(:all), [id]) if self.class.sti_child?
143
144
  end
144
- redis.del(key)
145
+ pipeline.del(key)
145
146
  end
146
147
  end
147
148
  end
@@ -210,19 +211,19 @@ module Modis
210
211
  self.class.transaction do |redis|
211
212
  run_callbacks :save do
212
213
  run_callbacks callback do
213
- redis.pipelined do
214
+ redis.pipelined do |pipeline|
214
215
  attrs = coerced_attributes
215
216
  key = self.class.sti_child? ? self.class.sti_base_key_for(id) : self.class.key_for(id)
216
- future = attrs.any? ? redis.hmset(key, attrs) : :unchanged
217
+ future = attrs.any? ? pipeline.hmset(key, attrs) : :unchanged
217
218
 
218
219
  if new_record?
219
220
  if self.class.all_index_enabled?
220
- redis.sadd(self.class.key_for(:all), id)
221
- redis.sadd(self.class.sti_base_key_for(:all), id) if self.class.sti_child?
221
+ pipeline.sadd(self.class.key_for(:all), [id])
222
+ pipeline.sadd(self.class.sti_base_key_for(:all), [id]) if self.class.sti_child?
222
223
  end
223
- add_to_indexes(redis)
224
+ add_to_indexes(pipeline)
224
225
  else
225
- update_indexes(redis)
226
+ update_indexes(pipeline)
226
227
  end
227
228
  end
228
229
  end
@@ -8,7 +8,7 @@ module Modis
8
8
 
9
9
  module ClassMethods
10
10
  def transaction
11
- Modis.with_connection { |redis| redis.multi { yield(redis) } }
11
+ Modis.with_connection { |redis| redis.multi { |transaction| yield(transaction) } }
12
12
  end
13
13
  end
14
14
  end
data/lib/modis/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Modis
4
- VERSION = '4.0.0'
4
+ VERSION = '4.1.0'
5
5
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  begin
4
- if ENV['TRAVIS']
4
+ if ENV['CI']
5
5
  namespace :spec do
6
6
  task cane: ['spec']
7
7
  end
data/modis.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
22
22
 
23
23
  gem.add_runtime_dependency 'activemodel', '>= 5.2'
24
24
  gem.add_runtime_dependency 'activesupport', '>= 5.2'
25
- gem.add_runtime_dependency 'redis', '>= 3.0'
25
+ gem.add_runtime_dependency 'redis', '>= 3.0', '< 5.0'
26
26
  gem.add_runtime_dependency 'connection_pool', '>= 2'
27
27
 
28
28
  if defined? JRUBY_VERSION
@@ -37,7 +37,8 @@ Gem::Specification.new do |gem|
37
37
  gem.add_development_dependency 'rspec'
38
38
  gem.add_development_dependency 'codeclimate-test-reporter'
39
39
  gem.add_development_dependency 'cane'
40
- gem.add_development_dependency 'rubocop', '0.61.1'
40
+ gem.add_development_dependency 'rubocop', '0.81.0'
41
41
  gem.add_development_dependency 'simplecov'
42
42
  gem.add_development_dependency 'hiredis', '>= 0.5'
43
+ gem.add_development_dependency 'github_changelog_generator'
43
44
  end
data/spec/finder_spec.rb CHANGED
@@ -183,7 +183,7 @@ describe Modis::Finder do
183
183
  it 'transparently upgrades old data' do
184
184
  consumer = FindersSpec::Consumer.create!(name: 'Ian')
185
185
  Modis.with_connection do |redis|
186
- redis.srem(FindersSpec::Consumer.key_for(:all), consumer.id)
186
+ redis.srem(FindersSpec::Consumer.key_for(:all), [consumer.id])
187
187
  end
188
188
  expect(FindersSpec::Consumer.find(consumer.id)).to eq(consumer)
189
189
  end
@@ -112,7 +112,7 @@ describe Modis::Persistence do
112
112
  it 'does not track the ID if the underlying Redis command failed' do
113
113
  redis = double(hmset: double(value: nil), sadd: nil)
114
114
  expect(model.class).to receive(:transaction).and_yield(redis)
115
- expect(redis).to receive(:pipelined).and_yield
115
+ expect(redis).to receive(:pipelined).and_yield(redis)
116
116
  model.save
117
117
  expect { model.class.find(model.id) }.to raise_error(Modis::RecordNotFound)
118
118
  end
@@ -136,7 +136,7 @@ describe Modis::Persistence do
136
136
  redis = double
137
137
  expect(redis).to receive(:hmset).with("modis:persistence_spec:mock_model:1", ["age", "\v"]).and_return(double(value: 'OK'))
138
138
  expect(model.class).to receive(:transaction).and_yield(redis)
139
- expect(redis).to receive(:pipelined).and_yield
139
+ expect(redis).to receive(:pipelined).and_yield(redis)
140
140
  model.save!
141
141
  expect(model.age).to eq(11)
142
142
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- unless ENV['TRAVIS']
3
+ unless ENV['CI']
4
4
  begin
5
5
  require './spec/support/simplecov_helper'
6
6
  include SimpleCovHelper # rubocop:disable Style/MixinUsage
@@ -12,6 +12,8 @@ end
12
12
 
13
13
  require 'modis'
14
14
 
15
+ Redis.raise_deprecations = true if Gem.loaded_specs['redis'].version >= Gem::Version.new('4.6.0')
16
+
15
17
  Modis.configure do |config|
16
18
  config.namespace = 'modis'
17
19
  end
@@ -11,7 +11,7 @@ module SimpleCovHelper
11
11
 
12
12
  formatters = [SimpleCov::Formatter::QualityFormatter]
13
13
 
14
- if ENV['TRAVIS']
14
+ if ENV['CI']
15
15
  require 'codeclimate-test-reporter'
16
16
 
17
17
  formatters << CodeClimate::TestReporter::Formatter if CodeClimate::TestReporter.run?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modis
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Leitch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-28 00:00:00.000000000 Z
11
+ date: 2023-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -45,6 +45,9 @@ dependencies:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '5.0'
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,6 +55,9 @@ dependencies:
52
55
  - - ">="
53
56
  - !ruby/object:Gem::Version
54
57
  version: '3.0'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '5.0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: connection_pool
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +162,14 @@ dependencies:
156
162
  requirements:
157
163
  - - '='
158
164
  - !ruby/object:Gem::Version
159
- version: 0.61.1
165
+ version: 0.81.0
160
166
  type: :development
161
167
  prerelease: false
162
168
  version_requirements: !ruby/object:Gem::Requirement
163
169
  requirements:
164
170
  - - '='
165
171
  - !ruby/object:Gem::Version
166
- version: 0.61.1
172
+ version: 0.81.0
167
173
  - !ruby/object:Gem::Dependency
168
174
  name: simplecov
169
175
  requirement: !ruby/object:Gem::Requirement
@@ -192,6 +198,20 @@ dependencies:
192
198
  - - ">="
193
199
  - !ruby/object:Gem::Version
194
200
  version: '0.5'
201
+ - !ruby/object:Gem::Dependency
202
+ name: github_changelog_generator
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
195
215
  description: ActiveModel + Redis
196
216
  email:
197
217
  - port001@gmail.com
@@ -199,10 +219,11 @@ executables: []
199
219
  extensions: []
200
220
  extra_rdoc_files: []
201
221
  files:
222
+ - ".github/workflows/test.yml"
223
+ - ".github_changelog_generator"
202
224
  - ".gitignore"
203
225
  - ".rubocop.yml"
204
226
  - ".ruby-version"
205
- - ".travis.yml"
206
227
  - Appraisals
207
228
  - CHANGELOG.md
208
229
  - Gemfile
@@ -217,6 +238,7 @@ files:
217
238
  - gemfiles/rails_5.2.gemfile
218
239
  - gemfiles/rails_6.0.gemfile
219
240
  - gemfiles/rails_6.1.gemfile
241
+ - gemfiles/rails_7.0.gemfile
220
242
  - lib/modis.rb
221
243
  - lib/modis/attribute.rb
222
244
  - lib/modis/configuration.rb
@@ -258,7 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
280
  - !ruby/object:Gem::Version
259
281
  version: '0'
260
282
  requirements: []
261
- rubygems_version: 3.1.4
283
+ rubygems_version: 3.3.26
262
284
  signing_key:
263
285
  specification_version: 4
264
286
  summary: ActiveModel + Redis
data/.travis.yml DELETED
@@ -1,42 +0,0 @@
1
- language: ruby
2
-
3
- dist: bionic
4
-
5
- cache: bundler
6
-
7
- services:
8
- - redis-server
9
-
10
- rvm:
11
- - 2.3
12
- - 2.4
13
- - 2.5
14
- - 2.6
15
- - 2.7
16
- - 3.0
17
- - jruby-9.2.17.0
18
-
19
- gemfile:
20
- - gemfiles/rails_5.2.gemfile
21
- - gemfiles/rails_6.0.gemfile
22
- - gemfiles/rails_6.1.gemfile
23
-
24
- matrix:
25
- fast_finish: true
26
- exclude:
27
- # Rails 6 requires Ruby 2.5 or higher
28
- - gemfile: gemfiles/rails_6.0.gemfile
29
- rvm: 2.3
30
- - gemfile: gemfiles/rails_6.1.gemfile
31
- rvm: 2.3
32
- - gemfile: gemfiles/rails_6.0.gemfile
33
- rvm: 2.4
34
- - gemfile: gemfiles/rails_6.1.gemfile
35
- rvm: 2.4
36
- # Rails 5.2 isn't compatible with Ruby 3.0 or higher
37
- - gemfile: gemfiles/rails_5.2.gemfile
38
- rvm: 3.0
39
-
40
- env:
41
- global:
42
- secure: LrTz0Pq2ibNZuKDhdzcrvEUSNxUpPopEq9aJeCxy3UpV0v4vpHBtWV0S6zofvf98g/RkZ6cGI1u+0H578dHgE6pWTo+iR8LAwqPKofrFIWRkeo+M77Vs5swahb3mQyPOcig1hfVWDm25MsojePYm70eBIcBU55NWImtdePXfiU0=