mobility 1.3.0.rc3 → 1.3.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: fd0b53980f62d9538827053f6e08b8ffd287d44a7a4aa87602c5d85e87bf30fc
4
- data.tar.gz: 540af4290175ec08b109a8cc0e783c1a634c66fe87bf97fd014d5c5a0f78b79c
3
+ metadata.gz: 488c8b1ec0f603d226b7a0dd54064a27ede153b1c8c3bd1ae078bcfec0dd74e2
4
+ data.tar.gz: ebce70b5815c7618b908459c59bc514647b55f2e792641bc3d400547fb5ae533
5
5
  SHA512:
6
- metadata.gz: 25fc7f6a40125020f7425691a3d183a290bfaa3381594d1ad218a924797a0329f76ca39494742f380a3310fbe9d3c879849e366de20bd695219b247c90161d17
7
- data.tar.gz: 8b02e9620070979a64e71d2774495a1be0054e92180116e4e40790575d05faff38fb78001ab460581de2524598af3823f312734b67804d2debe1de428737801a
6
+ metadata.gz: 8d8dc37e4dd38ead1eb16b593ca153876179770a23b32a63b2c6850509326590c8c80596351328b48c6e40e25df48b99f106e6cbcddd0b940381eaf0c7e41fd6
7
+ data.tar.gz: b0afa4c0962c240658c0e5fe109c76e6db533b7f1ad1679b4ed38094c8dd48cb581fb15f8ac50d57078238d98cade3198b562ee64d2ed1ca9c9af3f3bda5e72c
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  ## 1.3
4
4
 
5
+ ### 1.3.0
6
+
7
+ - Only support ActiveRecord >= 7.0
8
+ - Allow `I18n.available_locales` to contain Strings
9
+ ([#612](https://github.com/shioyama/mobility/pull/612))
10
+ - Update CI config, add support for Rails 8
11
+ ([#653](https://github.com/shioyama/mobility/pull/653)), thanks
12
+ [d-rodriguez](https://github.com/n-rodriguez)!
13
+ - Fix broken count statements in Active Record 8.0
14
+ ([#655](https://github.com/shioyama/mobility/pull/655)), thanks
15
+ [jukra](https://github.com/jukra)!
16
+
5
17
  ### 1.3.0.rc3
6
18
 
7
19
  - Don't try to load generators if Rails is loaded but AR is not
data/Gemfile CHANGED
@@ -10,7 +10,7 @@ group :development, :test do
10
10
  when 'active_record'
11
11
  orm_version ||= '7.0'
12
12
  case orm_version
13
- when '6.1', '7.0', '7.1'
13
+ when '6.1', '7.0', '7.1', '7.2', '8.0'
14
14
  gem 'activerecord', "~> #{orm_version}.0"
15
15
  when 'edge'
16
16
  git 'https://github.com/rails/rails.git', branch: 'main' do
@@ -45,19 +45,15 @@ group :development, :test do
45
45
  gem 'pry-byebug'
46
46
  case ENV['DB']
47
47
  when 'sqlite3'
48
- if orm == 'active_record' && orm_version < '5.2'
49
- gem 'sqlite3', '~> 1.3.13'
48
+ if orm == 'active_record' && orm_version >= '8.0'
49
+ gem 'sqlite3', '>= 2.1.0'
50
50
  else
51
- gem 'sqlite3', '~> 1.4.1'
51
+ gem 'sqlite3', '~> 1.5.0'
52
52
  end
53
53
  when 'mysql'
54
54
  gem 'mysql2'
55
55
  when 'postgres'
56
- if orm == 'active_record' && orm_version < '5.0'
57
- gem 'pg', '< 1.0'
58
- else
59
- gem 'pg'
60
- end
56
+ gem 'pg'
61
57
  end
62
58
  end
63
59
  end
data/Gemfile.lock CHANGED
@@ -1,22 +1,46 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mobility (1.3.0.rc1)
4
+ mobility (1.3.0.rc3)
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
- benchmark-ips (2.13.0)
11
+ activemodel (7.1.5)
12
+ activesupport (= 7.1.5)
13
+ activerecord (7.1.5)
14
+ activemodel (= 7.1.5)
15
+ activesupport (= 7.1.5)
16
+ timeout (>= 0.4.0)
17
+ activesupport (7.1.5)
18
+ base64
19
+ benchmark (>= 0.3)
20
+ bigdecimal
21
+ concurrent-ruby (~> 1.0, >= 1.0.2)
22
+ connection_pool (>= 2.2.5)
23
+ drb
24
+ i18n (>= 1.6, < 2)
25
+ logger (>= 1.4.2)
26
+ minitest (>= 5.1)
27
+ mutex_m
28
+ securerandom (>= 0.3)
29
+ tzinfo (~> 2.0)
30
+ base64 (0.2.0)
31
+ benchmark (0.4.0)
32
+ benchmark-ips (2.14.0)
33
+ bigdecimal (3.1.8)
12
34
  byebug (11.1.3)
13
35
  coderay (1.1.3)
14
- concurrent-ruby (1.2.3)
36
+ concurrent-ruby (1.3.4)
37
+ connection_pool (2.4.1)
15
38
  database_cleaner (1.99.0)
16
39
  diff-lcs (1.5.1)
17
- ffi (1.16.3)
40
+ drb (2.2.1)
41
+ ffi (1.17.0-x86_64-linux-gnu)
18
42
  formatador (1.1.0)
19
- guard (2.18.1)
43
+ guard (2.19.0)
20
44
  formatador (>= 0.2.4)
21
45
  listen (>= 2.7, < 4.0)
22
46
  lumberjack (>= 1.0.12, < 2.0)
@@ -30,13 +54,17 @@ GEM
30
54
  guard (~> 2.1)
31
55
  guard-compat (~> 1.1)
32
56
  rspec (>= 2.99.0, < 4.0)
33
- i18n (1.14.4)
57
+ i18n (1.14.6)
34
58
  concurrent-ruby (~> 1.0)
35
59
  listen (3.9.0)
36
60
  rb-fsevent (~> 0.10, >= 0.10.3)
37
61
  rb-inotify (~> 0.9, >= 0.9.10)
62
+ logger (1.6.1)
38
63
  lumberjack (1.2.10)
39
- method_source (1.0.0)
64
+ method_source (1.1.0)
65
+ mini_portile2 (2.8.8)
66
+ minitest (5.25.2)
67
+ mutex_m (0.3.0)
40
68
  nenv (0.3.0)
41
69
  notiffany (0.1.3)
42
70
  nenv (~> 0.1)
@@ -47,35 +75,41 @@ GEM
47
75
  pry-byebug (3.10.1)
48
76
  byebug (~> 11.0)
49
77
  pry (>= 0.13, < 0.15)
50
- rack (3.0.9.1)
78
+ rack (3.1.8)
51
79
  rake (12.3.3)
52
80
  rb-fsevent (0.11.2)
53
- rb-inotify (0.10.1)
81
+ rb-inotify (0.11.1)
54
82
  ffi (~> 1.0)
55
- request_store (1.6.0)
83
+ request_store (1.7.0)
56
84
  rack (>= 1.4)
57
85
  rspec (3.13.0)
58
86
  rspec-core (~> 3.13.0)
59
87
  rspec-expectations (~> 3.13.0)
60
88
  rspec-mocks (~> 3.13.0)
61
- rspec-core (3.13.0)
89
+ rspec-core (3.13.2)
62
90
  rspec-support (~> 3.13.0)
63
- rspec-expectations (3.13.0)
91
+ rspec-expectations (3.13.3)
64
92
  diff-lcs (>= 1.2.0, < 2.0)
65
93
  rspec-support (~> 3.13.0)
66
- rspec-mocks (3.13.0)
94
+ rspec-mocks (3.13.2)
67
95
  diff-lcs (>= 1.2.0, < 2.0)
68
96
  rspec-support (~> 3.13.0)
69
97
  rspec-support (3.13.1)
98
+ securerandom (0.3.2)
70
99
  shellany (0.0.1)
71
- sqlite3 (1.4.4)
72
- thor (1.3.1)
73
- yard (0.9.36)
100
+ sqlite3 (1.5.4)
101
+ mini_portile2 (~> 2.8.0)
102
+ thor (1.3.2)
103
+ timeout (0.4.2)
104
+ tzinfo (2.0.6)
105
+ concurrent-ruby (~> 1.0)
106
+ yard (0.9.37)
74
107
 
75
108
  PLATFORMS
76
109
  x86_64-linux
77
110
 
78
111
  DEPENDENCIES
112
+ activerecord (~> 7.1.0)
79
113
  benchmark-ips
80
114
  database_cleaner (~> 1.5, >= 1.5.3)
81
115
  guard-rspec
@@ -83,7 +117,7 @@ DEPENDENCIES
83
117
  pry-byebug
84
118
  rake (~> 12, >= 12.2.1)
85
119
  rspec (~> 3.0)
86
- sqlite3 (~> 1.4.1)
120
+ sqlite3 (~> 1.5.0)
87
121
  yard (~> 0.9.0)
88
122
 
89
123
  BUNDLED WITH
data/README.md CHANGED
@@ -60,7 +60,7 @@ gem 'mobility', '~> 1.3.0.rc3'
60
60
  ### ActiveRecord (Rails)
61
61
 
62
62
  Requirements:
63
- - ActiveRecord >= 6.1
63
+ - ActiveRecord >= 7.0
64
64
 
65
65
  To translate attributes on a model, extend `Mobility`, then call `translates`
66
66
  passing in one or more attributes as well as a hash of options (see below).
@@ -86,25 +86,6 @@ Implements the {Mobility::Backends::Container} backend for ActiveRecord models.
86
86
  end
87
87
  end
88
88
 
89
- setup do |_attributes, options|
90
- # Fix for duping depth-2 jsonb column in AR < 5.0
91
- if ::ActiveRecord::VERSION::STRING < '5.0'
92
- column_name = options[:column_name]
93
- module_name = "MobilityArContainer#{column_name.to_s.camelcase}"
94
- unless const_defined?(module_name)
95
- dupable = Module.new do
96
- class_eval <<-EOM, __FILE__, __LINE__ + 1
97
- def initialize_dup(source)
98
- super
99
- self.#{column_name} = source.#{column_name}.deep_dup
100
- end
101
- EOM
102
- end
103
- include const_set(module_name, dupable)
104
- end
105
- end
106
- end
107
-
108
89
  private
109
90
 
110
91
  def model_translations(locale)
@@ -79,28 +79,24 @@ locale suffix, so +title_en+, +title_pt_br+, etc.)
79
79
  )
80
80
 
81
81
  module InstanceMethods
82
- if ::ActiveRecord::VERSION::STRING >= '5.1' # define patterns added in 5.1
83
- def saved_changes
84
- super.merge(mutations_from_mobility.previous_changes)
85
- end
82
+ def saved_changes
83
+ super.merge(mutations_from_mobility.previous_changes)
84
+ end
86
85
 
87
- def changes_to_save
88
- super.merge(mutations_from_mobility.changes)
89
- end
86
+ def changes_to_save
87
+ super.merge(mutations_from_mobility.changes)
88
+ end
90
89
 
91
- def changed_attribute_names_to_save
92
- super + mutations_from_mobility.changed
93
- end
90
+ def changed_attribute_names_to_save
91
+ super + mutations_from_mobility.changed
92
+ end
94
93
 
95
- def attributes_in_database
96
- super.merge(mutations_from_mobility.changed_attributes)
97
- end
94
+ def attributes_in_database
95
+ super.merge(mutations_from_mobility.changed_attributes)
96
+ end
98
97
 
99
- if ::ActiveRecord::VERSION::STRING >= '6.0'
100
- def has_changes_to_save?
101
- super || mutations_from_mobility.changed?
102
- end
103
- end
98
+ def has_changes_to_save?
99
+ super || mutations_from_mobility.changed?
104
100
  end
105
101
 
106
102
  def reload(*)
@@ -137,19 +137,19 @@ enabled for any one attribute on the model.
137
137
  end
138
138
 
139
139
  def order(opts, *rest)
140
- return super unless @klass.respond_to?(:mobility_attribute?)
140
+ return super unless klass.respond_to?(:mobility_attribute?)
141
141
 
142
142
  case opts
143
143
  when Symbol, String
144
- @klass.mobility_attribute?(opts) ? order({ opts => :asc }, *rest) : super
144
+ klass.mobility_attribute?(opts) ? order({ opts => :asc }, *rest) : super
145
145
  when ::Hash
146
- i18n_keys, keys = opts.keys.partition(&@klass.method(:mobility_attribute?))
146
+ i18n_keys, keys = opts.keys.partition(&klass.method(:mobility_attribute?))
147
147
  return super if i18n_keys.empty?
148
148
 
149
149
  base = keys.empty? ? self : super(opts.slice(keys))
150
150
 
151
151
  i18n_keys.inject(base) do |query, key|
152
- backend_class = @klass.mobility_backend_class(key)
152
+ backend_class = klass.mobility_backend_class(key)
153
153
  dir, node = opts[key], backend_node(key)
154
154
  backend_class.apply_scope(query, node).order(node.send(dir.downcase))
155
155
  end
@@ -158,29 +158,27 @@ enabled for any one attribute on the model.
158
158
  end
159
159
  end
160
160
 
161
- if ::ActiveRecord::VERSION::STRING >= '5.0'
162
- %w[pluck group select].each do |method_name|
163
- define_method method_name do |*attrs, &block|
164
- return super(*attrs, &block) if (method_name == 'select' && block.present?)
161
+ %w[pluck group select].each do |method_name|
162
+ define_method method_name do |*attrs, &block|
163
+ return super(*attrs, &block) if (method_name == 'select' && block.present?)
165
164
 
166
- return super(*attrs, &block) unless @klass.respond_to?(:mobility_attribute?)
165
+ return super(*attrs, &block) unless klass.respond_to?(:mobility_attribute?)
167
166
 
168
- return super(*attrs, &block) unless attrs.any?(&@klass.method(:mobility_attribute?))
167
+ return super(*attrs, &block) unless attrs.any?(&klass.method(:mobility_attribute?))
169
168
 
170
- keys = attrs.dup
169
+ keys = attrs.dup
171
170
 
172
- base = keys.each_with_index.inject(self) do |query, (key, index)|
173
- next query unless @klass.mobility_attribute?(key)
174
- keys[index] = backend_node(key)
175
- if method_name == "select"
176
- keys[index] = keys[index]
177
- .as(::Mobility::Plugins::ActiveRecord::Query.attribute_alias(key.to_s))
178
- end
179
- @klass.mobility_backend_class(key).apply_scope(query, backend_node(key))
171
+ base = keys.each_with_index.inject(self) do |query, (key, index)|
172
+ next query unless klass.mobility_attribute?(key)
173
+ keys[index] = backend_node(key)
174
+ if method_name == "select" && query.order_values.any?
175
+ keys[index] = keys[index]
176
+ .as(::Mobility::Plugins::ActiveRecord::Query.attribute_alias(key.to_s))
180
177
  end
181
-
182
- base.public_send(method_name, *keys, &block)
178
+ klass.mobility_backend_class(key).apply_scope(query, backend_node(key))
183
179
  end
180
+
181
+ base.public_send(method_name, *keys, &block)
184
182
  end
185
183
  end
186
184
 
@@ -189,7 +187,7 @@ enabled for any one attribute on the model.
189
187
  # @param [Symbol] locale Locale
190
188
  # @return [Arel::Node] Arel node for this attribute in given locale
191
189
  def backend_node(name, locale = Mobility.locale)
192
- @klass.mobility_backend_class(name)[name, locale]
190
+ klass.mobility_backend_class(name)[name, locale]
193
191
  end
194
192
 
195
193
  class WhereChain < ::ActiveRecord::QueryMethods::WhereChain
@@ -26,17 +26,6 @@ module Mobility
26
26
  end)
27
27
  end
28
28
 
29
- # Needed for AR 4.2, can be removed when support is deprecated
30
- if ::ActiveRecord::VERSION::STRING < '5.0'
31
- [JsonbDashDoubleArrow, HstoreDashArrow].each do |klass|
32
- klass.class_eval do
33
- def quoted_node other
34
- other && super
35
- end
36
- end
37
- end
38
- end
39
-
40
29
  class Jsonb < JsonbDashDoubleArrow
41
30
  def to_dash_arrow
42
31
  JsonbDashArrow.new left, right
@@ -9,7 +9,7 @@ module Mobility
9
9
  MAJOR = 1
10
10
  MINOR = 3
11
11
  TINY = 0
12
- PRE = "rc3"
12
+ PRE = nil
13
13
 
14
14
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
15
15
  end
data/lib/mobility.rb CHANGED
@@ -228,9 +228,9 @@ module Mobility
228
228
  # methods (in LocaleAccessors) than is really necessary.
229
229
  def available_locales
230
230
  if defined?(Rails) && Rails.respond_to?(:application) && Rails.application
231
- Rails.application.config.i18n.available_locales&.map(&:to_sym) || I18n.available_locales
231
+ Rails.application.config.i18n.available_locales&.map(&:to_sym) || I18n.available_locales.map(&:to_sym)
232
232
  else
233
- I18n.available_locales
233
+ I18n.available_locales.map(&:to_sym)
234
234
  end
235
235
  end
236
236
 
@@ -78,7 +78,7 @@ Mobility.configure do
78
78
  # fallbacks
79
79
  #
80
80
  # Or uncomment this line to enable fallbacks with a global default.
81
- # fallbacks { :pt => :en }
81
+ # fallbacks(pt: :en)
82
82
 
83
83
  # Presence
84
84
  #
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.3.0.rc3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Salzberg
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3I5AfnFAG4/1IwhadqwF5cl3jOUa7n3mS2OJl3tRCGuPvwAA9MV10hmwbQTXMrNK
36
36
  tD9kfT9eseUE4mfPnIaHOs4FiIoHniA7zdtjB7GIQ4cEpB6o
37
37
  -----END CERTIFICATE-----
38
- date: 2024-03-31 00:00:00.000000000 Z
38
+ date: 2024-11-30 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: request_store
@@ -270,9 +270,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
270
270
  version: '2.5'
271
271
  required_rubygems_version: !ruby/object:Gem::Requirement
272
272
  requirements:
273
- - - ">"
273
+ - - ">="
274
274
  - !ruby/object:Gem::Version
275
- version: 1.3.1
275
+ version: '0'
276
276
  requirements: []
277
277
  rubygems_version: 3.4.6
278
278
  signing_key:
metadata.gz.sig CHANGED
Binary file