mobility 1.2.6 → 1.2.9
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +16 -0
- data/Gemfile.lock +42 -24
- data/README.md +1 -1
- data/lib/mobility/plugins/active_model/dirty.rb +7 -1
- data/lib/mobility/plugins/active_record/query.rb +6 -4
- data/lib/mobility/plugins/backend.rb +13 -7
- data/lib/mobility/plugins/sequel/query.rb +4 -1
- data/lib/mobility/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9a2836c1681d1832331e807e58fa61956426ddc3cc730c15e6b3d6ebac2fce40
|
|
4
|
+
data.tar.gz: 61c798b73769f7d73bb5a3a97b3a1a27ac8884a186df89aeb5ceef0ecb92b692
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e8693fb2b5d997a1d7029413aee5c5f064eeafbef6f8a10ad2c947bd545fff72e238f6d57ebaae8761d5948e036446d310f7ce9da3c047a7577818919dfd7908
|
|
7
|
+
data.tar.gz: e980cc7d53a32c517c04994105540fd9635aae5899d35cecb1544a36ef052619adb0647b58ec666902402e8ad642c85aa576f0301d3708211e83b5f3d0e6d95b
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## 1.2
|
|
4
4
|
|
|
5
|
+
### 1.2.9
|
|
6
|
+
- Fix missing method `mobility_attribute?` on Rails 7
|
|
7
|
+
([#582](https://github.com/shioyama/mobility/pull/582) and
|
|
8
|
+
[#584](https://github.com/shioyama/mobility/pull/584))
|
|
9
|
+
|
|
10
|
+
### 1.2.8
|
|
11
|
+
- Fix issues with subclassing, such as when using AR STI,
|
|
12
|
+
fixes [#566](https://github.com/shioyama/mobility/issues/566)
|
|
13
|
+
([#568](https://github.com/shioyama/mobility/pull/568))
|
|
14
|
+
- Handle attribute_method_matchers rename (part of #560)
|
|
15
|
+
|
|
16
|
+
### 1.2.7
|
|
17
|
+
- Do not query same attribute more than once, fixes
|
|
18
|
+
[#564](https://github.com/shioyama/mobility/pull/578)
|
|
19
|
+
([#577](https://github.com/shioyama/mobility/pull/577))
|
|
20
|
+
|
|
5
21
|
### 1.2.6
|
|
6
22
|
- Require mfa on rubygems
|
|
7
23
|
([#545](https://github.com/shioyama/mobility/pull/545))
|
data/Gemfile.lock
CHANGED
|
@@ -1,21 +1,31 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
mobility (1.
|
|
4
|
+
mobility (1.2.8)
|
|
5
5
|
i18n (>= 0.6.10, < 2)
|
|
6
6
|
request_store (~> 1.0)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
|
|
11
|
+
activemodel (7.0.3)
|
|
12
|
+
activesupport (= 7.0.3)
|
|
13
|
+
activerecord (7.0.3)
|
|
14
|
+
activemodel (= 7.0.3)
|
|
15
|
+
activesupport (= 7.0.3)
|
|
16
|
+
activesupport (7.0.3)
|
|
17
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
18
|
+
i18n (>= 1.6, < 2)
|
|
19
|
+
minitest (>= 5.1)
|
|
20
|
+
tzinfo (~> 2.0)
|
|
21
|
+
benchmark-ips (2.10.0)
|
|
12
22
|
byebug (11.1.3)
|
|
13
23
|
coderay (1.1.3)
|
|
14
|
-
concurrent-ruby (1.1.
|
|
24
|
+
concurrent-ruby (1.1.10)
|
|
15
25
|
database_cleaner (1.99.0)
|
|
16
|
-
diff-lcs (1.
|
|
17
|
-
ffi (1.15.
|
|
18
|
-
formatador (
|
|
26
|
+
diff-lcs (1.5.0)
|
|
27
|
+
ffi (1.15.5)
|
|
28
|
+
formatador (1.1.0)
|
|
19
29
|
guard (2.18.0)
|
|
20
30
|
formatador (>= 0.2.4)
|
|
21
31
|
listen (>= 2.7, < 4.0)
|
|
@@ -30,55 +40,63 @@ GEM
|
|
|
30
40
|
guard (~> 2.1)
|
|
31
41
|
guard-compat (~> 1.1)
|
|
32
42
|
rspec (>= 2.99.0, < 4.0)
|
|
33
|
-
i18n (1.
|
|
43
|
+
i18n (1.10.0)
|
|
34
44
|
concurrent-ruby (~> 1.0)
|
|
35
|
-
listen (3.7.
|
|
45
|
+
listen (3.7.1)
|
|
36
46
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
37
47
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
38
48
|
lumberjack (1.2.8)
|
|
39
49
|
method_source (1.0.0)
|
|
50
|
+
minitest (5.16.1)
|
|
40
51
|
nenv (0.3.0)
|
|
41
52
|
notiffany (0.1.3)
|
|
42
53
|
nenv (~> 0.1)
|
|
43
54
|
shellany (~> 0.0)
|
|
55
|
+
pg (1.3.5)
|
|
44
56
|
pry (0.13.1)
|
|
45
57
|
coderay (~> 1.1)
|
|
46
58
|
method_source (~> 1.0)
|
|
47
59
|
pry-byebug (3.9.0)
|
|
48
60
|
byebug (~> 11.0)
|
|
49
61
|
pry (~> 0.13.0)
|
|
50
|
-
rack (2.2.3)
|
|
62
|
+
rack (2.2.3.1)
|
|
51
63
|
rake (12.3.3)
|
|
52
|
-
rb-fsevent (0.11.
|
|
64
|
+
rb-fsevent (0.11.1)
|
|
53
65
|
rb-inotify (0.10.1)
|
|
54
66
|
ffi (~> 1.0)
|
|
55
|
-
request_store (1.5.
|
|
67
|
+
request_store (1.5.1)
|
|
56
68
|
rack (>= 1.4)
|
|
57
|
-
rspec (3.
|
|
58
|
-
rspec-core (~> 3.
|
|
59
|
-
rspec-expectations (~> 3.
|
|
60
|
-
rspec-mocks (~> 3.
|
|
61
|
-
rspec-core (3.
|
|
62
|
-
rspec-support (~> 3.
|
|
63
|
-
rspec-expectations (3.
|
|
69
|
+
rspec (3.11.0)
|
|
70
|
+
rspec-core (~> 3.11.0)
|
|
71
|
+
rspec-expectations (~> 3.11.0)
|
|
72
|
+
rspec-mocks (~> 3.11.0)
|
|
73
|
+
rspec-core (3.11.0)
|
|
74
|
+
rspec-support (~> 3.11.0)
|
|
75
|
+
rspec-expectations (3.11.0)
|
|
64
76
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
65
|
-
rspec-support (~> 3.
|
|
66
|
-
rspec-mocks (3.
|
|
77
|
+
rspec-support (~> 3.11.0)
|
|
78
|
+
rspec-mocks (3.11.1)
|
|
67
79
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
68
|
-
rspec-support (~> 3.
|
|
69
|
-
rspec-support (3.
|
|
80
|
+
rspec-support (~> 3.11.0)
|
|
81
|
+
rspec-support (3.11.0)
|
|
70
82
|
shellany (0.0.1)
|
|
71
|
-
thor (1.1
|
|
72
|
-
|
|
83
|
+
thor (1.2.1)
|
|
84
|
+
tzinfo (2.0.4)
|
|
85
|
+
concurrent-ruby (~> 1.0)
|
|
86
|
+
webrick (1.7.0)
|
|
87
|
+
yard (0.9.28)
|
|
88
|
+
webrick (~> 1.7.0)
|
|
73
89
|
|
|
74
90
|
PLATFORMS
|
|
75
91
|
ruby
|
|
76
92
|
|
|
77
93
|
DEPENDENCIES
|
|
94
|
+
activerecord (~> 7.0.0)
|
|
78
95
|
benchmark-ips
|
|
79
96
|
database_cleaner (~> 1.5, >= 1.5.3)
|
|
80
97
|
guard-rspec
|
|
81
98
|
mobility!
|
|
99
|
+
pg
|
|
82
100
|
pry-byebug
|
|
83
101
|
rake (~> 12, >= 12.2.1)
|
|
84
102
|
rspec (~> 3.0)
|
data/README.md
CHANGED
|
@@ -153,7 +153,13 @@ the ActiveRecord dirty plugin for more information.
|
|
|
153
153
|
# suffixes is simplest given they change from Rails version to version.
|
|
154
154
|
def patterns
|
|
155
155
|
@patterns ||=
|
|
156
|
-
|
|
156
|
+
begin
|
|
157
|
+
# Method name changes in Rails 7.1
|
|
158
|
+
attribute_method_patterns = klass.respond_to?(:attribute_method_patterns) ?
|
|
159
|
+
klass.attribute_method_patterns :
|
|
160
|
+
klass.attribute_method_matchers
|
|
161
|
+
attribute_method_patterns.map { |p| "#{p.prefix}%s#{p.suffix}" } - excluded_patterns
|
|
162
|
+
end
|
|
157
163
|
end
|
|
158
164
|
|
|
159
165
|
private
|
|
@@ -163,9 +163,8 @@ enabled for any one attribute on the model.
|
|
|
163
163
|
define_method method_name do |*attrs, &block|
|
|
164
164
|
return super(*attrs, &block) if (method_name == 'select' && block.present?)
|
|
165
165
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
end
|
|
166
|
+
return super(*attrs, &block) unless @klass.respond_to?(:mobility_attribute?)
|
|
167
|
+
|
|
169
168
|
return super(*attrs, &block) unless attrs.any?(&@klass.method(:mobility_attribute?))
|
|
170
169
|
|
|
171
170
|
keys = attrs.dup
|
|
@@ -223,10 +222,13 @@ enabled for any one attribute on the model.
|
|
|
223
222
|
|
|
224
223
|
keys, predicates = opts.keys.map(&:to_s), []
|
|
225
224
|
|
|
225
|
+
used_keys = []
|
|
226
|
+
|
|
226
227
|
query_map = mods.inject(IDENTITY) do |qm, mod|
|
|
227
|
-
i18n_keys = mod.names & keys
|
|
228
|
+
i18n_keys = mod.names & keys - used_keys
|
|
228
229
|
next qm if i18n_keys.empty?
|
|
229
230
|
|
|
231
|
+
used_keys += i18n_keys
|
|
230
232
|
mod_predicates = i18n_keys.map do |key|
|
|
231
233
|
build_predicate(scope.backend_node(key.to_sym, locale), opts.delete(key))
|
|
232
234
|
end
|
|
@@ -159,16 +159,22 @@ Defines:
|
|
|
159
159
|
raise KeyError, "No backend for: #{name}"
|
|
160
160
|
end
|
|
161
161
|
|
|
162
|
-
def inherited(klass)
|
|
163
|
-
parent_classes = mobility_backend_classes.freeze # ensure backend classes are not modified after being inherited
|
|
164
|
-
klass.class_eval { @mobility_backend_classes = parent_classes.dup }
|
|
165
|
-
super
|
|
166
|
-
end
|
|
167
|
-
|
|
168
162
|
protected
|
|
169
163
|
|
|
170
164
|
def mobility_backend_classes
|
|
171
|
-
@mobility_backend_classes
|
|
165
|
+
if @mobility_backend_classes
|
|
166
|
+
@mobility_backend_classes
|
|
167
|
+
else
|
|
168
|
+
@mobility_backend_classes = {}
|
|
169
|
+
parent_class = self.superclass
|
|
170
|
+
while parent_class&.respond_to?(:mobility_backend_classes, true)
|
|
171
|
+
# ensure backend classes are not modified after being inherited
|
|
172
|
+
parent_class_classes = parent_class.mobility_backend_classes.freeze
|
|
173
|
+
@mobility_backend_classes.merge!(parent_class_classes)
|
|
174
|
+
parent_class = parent_class.superclass
|
|
175
|
+
end
|
|
176
|
+
@mobility_backend_classes
|
|
177
|
+
end
|
|
172
178
|
end
|
|
173
179
|
end
|
|
174
180
|
|
|
@@ -135,10 +135,13 @@ ActiveRecord query plugin.
|
|
|
135
135
|
keys, predicates = cond.keys, []
|
|
136
136
|
model = dataset.model
|
|
137
137
|
|
|
138
|
+
used_keys = []
|
|
139
|
+
|
|
138
140
|
query_map = attribute_modules(model).inject(IDENTITY) do |qm, mod|
|
|
139
|
-
i18n_keys = mod.names.map(&:to_sym) & keys
|
|
141
|
+
i18n_keys = mod.names.map(&:to_sym) & keys - used_keys
|
|
140
142
|
next qm if i18n_keys.empty?
|
|
141
143
|
|
|
144
|
+
used_keys += i18n_keys
|
|
142
145
|
mod_predicates = i18n_keys.map do |key|
|
|
143
146
|
build_predicate(dataset.backend_op(key, locale), cond.delete(key))
|
|
144
147
|
end
|
data/lib/mobility/version.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mobility
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Salzberg
|
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
|
34
34
|
QHgocnSksU5GOM+G2UhjVycbTamd+bCxjWAZTEDZNafFt5CmnfK1D1UTIblR/ci9
|
|
35
35
|
fUDdW+GhxhobB8N1mtDRlhELoxLLjx7mSvJ3Wg==
|
|
36
36
|
-----END CERTIFICATE-----
|
|
37
|
-
date: 2022-
|
|
37
|
+
date: 2022-06-24 00:00:00.000000000 Z
|
|
38
38
|
dependencies:
|
|
39
39
|
- !ruby/object:Gem::Dependency
|
|
40
40
|
name: request_store
|
metadata.gz.sig
CHANGED
|
Binary file
|