modis 4.0.0 → 4.0.1
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 +4 -4
- data/.rubocop.yml +23 -6
- data/CHANGELOG.md +50 -18
- data/Gemfile.lock +14 -14
- data/lib/modis/finder.rb +9 -4
- data/lib/modis/persistence.rb +11 -11
- data/lib/modis/transaction.rb +1 -1
- data/lib/modis/version.rb +1 -1
- data/modis.gemspec +1 -1
- data/spec/persistence_spec.rb +14 -4
- data/spec/spec_helper.rb +2 -0
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 90338a93da41f45150c96831168e346edc9c408aa587bd7e1d82cb6e735e1b5b
|
|
4
|
+
data.tar.gz: 87894188fb86b5f4f5f5586990a99744a3c88eedda54e1e1bb5d588df3c33db7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b80e7a9f7d6b546f100a03d0b49f0d6f095832cc97aeaea6fd4edb23428fd741c9851e76e1ad011d785e478f4f0bbd77eea31e77c2c420df447506ec328fc114
|
|
7
|
+
data.tar.gz: c43be4893954d2826f6f31c39c2a035bce50907f32fe224a475b4f0b71d038a42379c13132192297271ab30ad4922abcabec463db4832f40f9c5c2ac293aedb0
|
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/CHANGELOG.md
CHANGED
|
@@ -1,32 +1,61 @@
|
|
|
1
|
-
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
-
## v4.0.0 -
|
|
3
|
+
## [v4.0.1](https://github.com/rpush/modis/tree/v4.0.1) (2022-03-02)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[Full Changelog](https://github.com/rpush/modis/compare/v4.0.0...v4.0.1)
|
|
6
6
|
|
|
7
|
-
|
|
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
|
+
**Merged pull requests:**
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
- Fix deprectated pipeline calls for Redis 4.6.0 [\#32](https://github.com/rpush/modis/pull/32) ([justinhoward](https://github.com/justinhoward))
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
## [v4.0.0](https://github.com/rpush/modis/tree/v4.0.0) (2021-04-28)
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
[Full Changelog](https://github.com/rpush/modis/compare/v3.3.0...v4.0.0)
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
**Merged pull requests:**
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
- Makes hiredis a development dependency [\#31](https://github.com/rpush/modis/pull/31) ([fdocr](https://github.com/fdocr))
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
- Drop i18n dependency (credit goes to [@jas14](https://github.com/jas14) in [#23](https://github.com/rpush/modis/pull/23))
|
|
19
|
+
## [v3.3.0](https://github.com/rpush/modis/tree/v3.3.0) (2020-07-07)
|
|
23
20
|
|
|
24
|
-
|
|
21
|
+
[Full Changelog](https://github.com/rpush/modis/compare/v3.2.0...v3.3.0)
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
- Test
|
|
23
|
+
**Merged pull requests:**
|
|
24
|
+
|
|
25
|
+
- Fix deprecation warnings [\#30](https://github.com/rpush/modis/pull/30) ([rofreg](https://github.com/rofreg))
|
|
26
|
+
- Test with Ruby 2.7 [\#28](https://github.com/rpush/modis/pull/28) ([aried3r](https://github.com/aried3r))
|
|
27
|
+
|
|
28
|
+
## [v3.2.0](https://github.com/rpush/modis/tree/v3.2.0) (2019-12-12)
|
|
29
|
+
|
|
30
|
+
[Full Changelog](https://github.com/rpush/modis/compare/v3.1.0...v3.2.0)
|
|
31
|
+
|
|
32
|
+
**Merged pull requests:**
|
|
33
|
+
|
|
34
|
+
- Add missing `\#update` and `\#update!` persistance methods [\#27](https://github.com/rpush/modis/pull/27) ([dsantosmerino](https://github.com/dsantosmerino))
|
|
35
|
+
|
|
36
|
+
## [v3.1.0](https://github.com/rpush/modis/tree/v3.1.0) (2019-10-18)
|
|
37
|
+
|
|
38
|
+
[Full Changelog](https://github.com/rpush/modis/compare/3.0.0...v3.1.0)
|
|
39
|
+
|
|
40
|
+
**Merged pull requests:**
|
|
41
|
+
|
|
42
|
+
- Remove i18n dependency [\#26](https://github.com/rpush/modis/pull/26) ([aried3r](https://github.com/aried3r))
|
|
43
|
+
- Test with Rails 6, Ubuntu 18.04, Ruby 2.6 [\#25](https://github.com/rpush/modis/pull/25) ([aried3r](https://github.com/aried3r))
|
|
44
|
+
- Fix build status badge [\#22](https://github.com/rpush/modis/pull/22) ([jas14](https://github.com/jas14))
|
|
45
|
+
|
|
46
|
+
## [3.0.0](https://github.com/rpush/modis/tree/3.0.0) (2018-12-20)
|
|
47
|
+
|
|
48
|
+
[Full Changelog](https://github.com/rpush/modis/compare/v2.1.0...3.0.0)
|
|
49
|
+
|
|
50
|
+
**Merged pull requests:**
|
|
51
|
+
|
|
52
|
+
- Prep 3.0.0 release [\#21](https://github.com/rpush/modis/pull/21) ([garettarrowood](https://github.com/garettarrowood))
|
|
53
|
+
- Lock i18n version [\#20](https://github.com/rpush/modis/pull/20) ([garettarrowood](https://github.com/garettarrowood))
|
|
54
|
+
- Compatability with Rails 5.2's ActiveModel::Dirty [\#19](https://github.com/rpush/modis/pull/19) ([benlangfeld](https://github.com/benlangfeld))
|
|
55
|
+
- Resolve rubocop violations and lock version [\#17](https://github.com/rpush/modis/pull/17) ([garettarrowood](https://github.com/garettarrowood))
|
|
56
|
+
- Fix CI failures by resolving RuboCop offenses [\#12](https://github.com/rpush/modis/pull/12) ([garettarrowood](https://github.com/garettarrowood))
|
|
57
|
+
- get rid of old school rocket syntax [\#11](https://github.com/rpush/modis/pull/11) ([DmytroStepaniuk](https://github.com/DmytroStepaniuk))
|
|
58
|
+
- fix wrong readme example [\#10](https://github.com/rpush/modis/pull/10) ([DmytroStepaniuk](https://github.com/DmytroStepaniuk))
|
|
30
59
|
|
|
31
60
|
## v2.1.0
|
|
32
61
|
|
|
@@ -36,3 +65,6 @@
|
|
|
36
65
|
|
|
37
66
|
- Support MRI 2.2.2+ and JRuby 9k+ [#5](https://github.com/rpush/modis/pull/5)
|
|
38
67
|
- Remove YAML (de)serialization support [#5](https://github.com/rpush/modis/pull/5)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
modis (4.0.
|
|
4
|
+
modis (4.0.1)
|
|
5
5
|
activemodel (>= 5.2)
|
|
6
6
|
activesupport (>= 5.2)
|
|
7
7
|
connection_pool (>= 2)
|
|
@@ -23,7 +23,7 @@ GEM
|
|
|
23
23
|
bundler
|
|
24
24
|
rake
|
|
25
25
|
thor (>= 0.14.0)
|
|
26
|
-
ast (2.4.
|
|
26
|
+
ast (2.4.2)
|
|
27
27
|
cane (3.0.0)
|
|
28
28
|
parallel
|
|
29
29
|
codeclimate-test-reporter (1.0.7)
|
|
@@ -38,13 +38,13 @@ GEM
|
|
|
38
38
|
jaro_winkler (1.5.4)
|
|
39
39
|
minitest (5.14.2)
|
|
40
40
|
msgpack (1.3.3)
|
|
41
|
-
parallel (1.
|
|
42
|
-
parser (
|
|
41
|
+
parallel (1.20.1)
|
|
42
|
+
parser (3.0.1.0)
|
|
43
43
|
ast (~> 2.4.1)
|
|
44
|
-
powerpack (0.1.2)
|
|
45
44
|
rainbow (3.0.0)
|
|
46
45
|
rake (13.0.1)
|
|
47
|
-
redis (4.
|
|
46
|
+
redis (4.6.0)
|
|
47
|
+
rexml (3.2.5)
|
|
48
48
|
rspec (3.9.0)
|
|
49
49
|
rspec-core (~> 3.9.0)
|
|
50
50
|
rspec-expectations (~> 3.9.0)
|
|
@@ -58,15 +58,15 @@ GEM
|
|
|
58
58
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
59
59
|
rspec-support (~> 3.9.0)
|
|
60
60
|
rspec-support (3.9.3)
|
|
61
|
-
rubocop (0.
|
|
61
|
+
rubocop (0.81.0)
|
|
62
62
|
jaro_winkler (~> 1.5.1)
|
|
63
63
|
parallel (~> 1.10)
|
|
64
|
-
parser (>= 2.
|
|
65
|
-
powerpack (~> 0.1)
|
|
64
|
+
parser (>= 2.7.0.1)
|
|
66
65
|
rainbow (>= 2.2.2, < 4.0)
|
|
66
|
+
rexml
|
|
67
67
|
ruby-progressbar (~> 1.7)
|
|
68
|
-
unicode-display_width (
|
|
69
|
-
ruby-progressbar (1.
|
|
68
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
69
|
+
ruby-progressbar (1.11.0)
|
|
70
70
|
simplecov (0.18.5)
|
|
71
71
|
docile (~> 1.1)
|
|
72
72
|
simplecov-html (~> 0.11)
|
|
@@ -75,7 +75,7 @@ GEM
|
|
|
75
75
|
thread_safe (0.3.6)
|
|
76
76
|
tzinfo (1.2.7)
|
|
77
77
|
thread_safe (~> 0.1)
|
|
78
|
-
unicode-display_width (1.
|
|
78
|
+
unicode-display_width (1.7.0)
|
|
79
79
|
zeitwerk (2.4.0)
|
|
80
80
|
|
|
81
81
|
PLATFORMS
|
|
@@ -89,8 +89,8 @@ DEPENDENCIES
|
|
|
89
89
|
modis!
|
|
90
90
|
rake
|
|
91
91
|
rspec
|
|
92
|
-
rubocop (= 0.
|
|
92
|
+
rubocop (= 0.81.0)
|
|
93
93
|
simplecov
|
|
94
94
|
|
|
95
95
|
BUNDLED WITH
|
|
96
|
-
2.
|
|
96
|
+
2.2.21
|
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(
|
|
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
|
-
|
|
46
|
-
|
|
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/persistence.rb
CHANGED
|
@@ -135,13 +135,13 @@ module Modis
|
|
|
135
135
|
def destroy
|
|
136
136
|
self.class.transaction do |redis|
|
|
137
137
|
run_callbacks :destroy do
|
|
138
|
-
redis.pipelined do
|
|
139
|
-
remove_from_indexes(
|
|
138
|
+
redis.pipelined do |pipeline|
|
|
139
|
+
remove_from_indexes(pipeline)
|
|
140
140
|
if self.class.all_index_enabled?
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
pipeline.srem(self.class.key_for(:all), id)
|
|
142
|
+
pipeline.srem(self.class.sti_base_key_for(:all), id) if self.class.sti_child?
|
|
143
143
|
end
|
|
144
|
-
|
|
144
|
+
pipeline.del(key)
|
|
145
145
|
end
|
|
146
146
|
end
|
|
147
147
|
end
|
|
@@ -210,19 +210,19 @@ module Modis
|
|
|
210
210
|
self.class.transaction do |redis|
|
|
211
211
|
run_callbacks :save do
|
|
212
212
|
run_callbacks callback do
|
|
213
|
-
redis.pipelined do
|
|
213
|
+
redis.pipelined do |pipeline|
|
|
214
214
|
attrs = coerced_attributes
|
|
215
215
|
key = self.class.sti_child? ? self.class.sti_base_key_for(id) : self.class.key_for(id)
|
|
216
|
-
future = attrs.any? ?
|
|
216
|
+
future = attrs.any? ? pipeline.hmset(key, attrs) : :unchanged
|
|
217
217
|
|
|
218
218
|
if new_record?
|
|
219
219
|
if self.class.all_index_enabled?
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
pipeline.sadd(self.class.key_for(:all), id)
|
|
221
|
+
pipeline.sadd(self.class.sti_base_key_for(:all), id) if self.class.sti_child?
|
|
222
222
|
end
|
|
223
|
-
add_to_indexes(
|
|
223
|
+
add_to_indexes(pipeline)
|
|
224
224
|
else
|
|
225
|
-
update_indexes(
|
|
225
|
+
update_indexes(pipeline)
|
|
226
226
|
end
|
|
227
227
|
end
|
|
228
228
|
end
|
data/lib/modis/transaction.rb
CHANGED
data/lib/modis/version.rb
CHANGED
data/modis.gemspec
CHANGED
|
@@ -37,7 +37,7 @@ 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.
|
|
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
43
|
end
|
data/spec/persistence_spec.rb
CHANGED
|
@@ -111,8 +111,13 @@ describe Modis::Persistence do
|
|
|
111
111
|
|
|
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
|
-
|
|
115
|
-
|
|
114
|
+
if Gem::Version.new(Redis::VERSION) > Gem::Version.new('4.6.0')
|
|
115
|
+
expect(model.class).to receive(:transaction).and_yield(Redis::PipelinedConnection.new(Redis::Pipeline::Multi.new(redis)))
|
|
116
|
+
expect(redis).to receive(:pipelined).and_yield(Redis::PipelinedConnection.new(Redis::Pipeline.new(redis)))
|
|
117
|
+
else
|
|
118
|
+
expect(model.class).to receive(:transaction).and_yield(redis)
|
|
119
|
+
expect(redis).to receive(:pipelined).and_yield(redis)
|
|
120
|
+
end
|
|
116
121
|
model.save
|
|
117
122
|
expect { model.class.find(model.id) }.to raise_error(Modis::RecordNotFound)
|
|
118
123
|
end
|
|
@@ -135,8 +140,13 @@ describe Modis::Persistence do
|
|
|
135
140
|
model.age = 11
|
|
136
141
|
redis = double
|
|
137
142
|
expect(redis).to receive(:hmset).with("modis:persistence_spec:mock_model:1", ["age", "\v"]).and_return(double(value: 'OK'))
|
|
138
|
-
|
|
139
|
-
|
|
143
|
+
if Gem::Version.new(Redis::VERSION) > Gem::Version.new('4.6.0')
|
|
144
|
+
expect(model.class).to receive(:transaction).and_yield(Redis::PipelinedConnection.new(Redis::Pipeline::Multi.new(redis)))
|
|
145
|
+
expect(redis).to receive(:pipelined).and_yield(Redis::PipelinedConnection.new(Redis::Pipeline.new(redis)))
|
|
146
|
+
else
|
|
147
|
+
expect(model.class).to receive(:transaction).and_yield(redis)
|
|
148
|
+
expect(redis).to receive(:pipelined).and_yield(redis)
|
|
149
|
+
end
|
|
140
150
|
model.save!
|
|
141
151
|
expect(model.age).to eq(11)
|
|
142
152
|
end
|
data/spec/spec_helper.rb
CHANGED
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.
|
|
4
|
+
version: 4.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ian Leitch
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-03-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activemodel
|
|
@@ -156,14 +156,14 @@ dependencies:
|
|
|
156
156
|
requirements:
|
|
157
157
|
- - '='
|
|
158
158
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: 0.
|
|
159
|
+
version: 0.81.0
|
|
160
160
|
type: :development
|
|
161
161
|
prerelease: false
|
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
|
164
164
|
- - '='
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: 0.
|
|
166
|
+
version: 0.81.0
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
|
168
168
|
name: simplecov
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|