route_translator 7.1.2 → 9.0.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: 7861c7f66e3b60f6633a6736ab821d4042d6275560eb0223590d56cbcf3d118b
4
- data.tar.gz: ad579f109665d509d564256de391f70e02980a24a669cfe3ade1dfb9fb1ae97a
3
+ metadata.gz: baff0e31d0c0f72b8daddc3754594542af32f47ffa29a0cacb6801a69e8a12c9
4
+ data.tar.gz: 277a5c0d34be1d75ab2aaefc16cd7e7d5f5a87d6c00e999445d5968121a699b2
5
5
  SHA512:
6
- metadata.gz: 67415bc015800fef7bba533f862697d1ad73cd6cef3090c912274755645f93f8ae9869c4dcfbac402f2f033b1beefd66c768be76b5c96b77f1598363f9b16f9d
7
- data.tar.gz: 94fb6ed99741379ea97043b505668a217c525df9637fe768fb3598421cc4b33ea74c2666276e6726039ef27fbe85f1ec6bfcaa3b37986e309ac26fdd1c406b24
6
+ metadata.gz: e0a20daed33d3f7979dd0f18eb235944230351a4f730fde34da6642455bfbdcc0d435d405405cc8cb9e7bab8a467b4b4654dd87375e7019eac4bc9e4d0854c37
7
+ data.tar.gz: 9e321b96018d925b0cb42dd960243f2211258cf686d53939a6e637e683177bf93ab01cccd2abb7611dc4d7f1d15d2f21265d976c0bde8a8f54758abbf074c489
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.0 / 2020-11-07
4
+
5
+ * [ENHANCEMENT] Check for `empty?` instead of `any?` on available_locales array
6
+ * [ENHANCEMENT] Update development dependencies
7
+
8
+ ## 8.2.1 / 2020-11-03
9
+
10
+ * [ENHANCEMENT] Fix deprecation with URI.parser ([#234](https://github.com/enriclluelles/route_translator/pull/234))
11
+
12
+ ## 8.2.0 / 2020-11-03
13
+
14
+ * [FEATURE] Add Rails 6.1 compatibility
15
+ * [ENHANCEMENT] Update development dependencies
16
+
17
+ ## 8.1.0 / 2020-08-10
18
+
19
+ * [FEATURE] Allow Ruby 3.0.0
20
+ * [ENHANCEMENT] Test against latest Ruby versions
21
+ * [ENHANCEMENT] Update development dependencies
22
+
23
+ ## 8.0.0 / 2020-04-17
24
+
25
+ * [FEATURE] Drop Ruby 2.3 support
26
+ * [ENHANCEMENT] Add gem metadata for RubyGems.org
27
+ * [ENHANCEMENT] Test against latest Ruby versions
28
+ * [ENHANCEMENT] Update development dependencies
29
+
3
30
  ## 7.1.2 / 2020-03-02
4
31
 
5
32
  * [BUGFIX] Fix lazy load of action controller ([#206](https://github.com/enriclluelles/route_translator/pull/206))
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # RouteTranslator
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/route_translator.svg)](https://badge.fury.io/rb/route_translator)
4
+ [![SemVer](https://api.dependabot.com/badges/compatibility_score?dependency-name=route_translator&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=route_translator&package-manager=bundler&version-scheme=semver)
4
5
  [![Build Status](https://travis-ci.org/enriclluelles/route_translator.svg?branch=master)](https://travis-ci.org/enriclluelles/route_translator)
5
6
  [![Maintainability](https://api.codeclimate.com/v1/badges/1c369ce6147724b353fc/maintainability)](https://codeclimate.com/github/enriclluelles/route_translator/maintainability)
6
7
  [![Coverage Status](https://coveralls.io/repos/github/enriclluelles/route_translator/badge.svg?branch=master)](https://coveralls.io/github/enriclluelles/route_translator?branch=master)
@@ -9,7 +10,7 @@ RouteTranslator is a gem to allow you to manage the translations of your app rou
9
10
 
10
11
  It started as a fork of the awesome [translate_routes](https://github.com/raul/translate_routes) plugin by [Raúl Murciano](https://github.com/raul).
11
12
 
12
- Right now it works with Rails 5.x and Rails 6.0
13
+ Right now it works with Rails 5.x and Rails 6.x
13
14
 
14
15
 
15
16
 
@@ -144,6 +145,21 @@ Right now it works with Rails 5.x and Rails 6.0
144
145
  Note: you might be tempted to use `before_action` instead of `around_action`: just don't. That could lead to [thread-related issues](https://github.com/enriclluelles/route_translator/issues/44).
145
146
 
146
147
 
148
+ ### Changing the Language
149
+
150
+ To change the language and reload the appropriate route while staying on the same page, use the following code snippet:
151
+
152
+ ```ruby
153
+ link_to url_for(locale: 'es'), hreflang: 'es', rel: 'alternate'
154
+ ```
155
+
156
+ Although locales are stored by Rails as a symbol (`:es`), when linking to a page in a different locale you need to use a string (`'es'`). Otherwise, instead of a namespaced route (`/es/my-route`) you will get a parameterized route (`/my-route?locale=es`).
157
+
158
+ If the page contains a localized slug, the above snippet does not work and a custom implementation is neede.
159
+
160
+ More information at [Generating translated URLs](https://github.com/enriclluelles/route_translator/wiki/Generating-translated-URLs)
161
+
162
+
147
163
  ### Namespaces
148
164
 
149
165
  You can translate a namespace route by either its `name` or `path` option:
@@ -358,11 +374,12 @@ end
358
374
 
359
375
 
360
376
  ## Testing
361
- Testing your controllers with routes-translator is easy, just add a locale parameter for your localized routes. Otherwise, an ActionController::UrlGenerationError will raise.
377
+ Testing your controllers with routes-translator is easy, just add a locale parameter as `String` for your localized routes. Otherwise, an `ActionController::UrlGenerationError` will raise.
362
378
 
363
379
  ```ruby
364
380
  describe 'GET index' do
365
381
  it 'should respond with success' do
382
+ # Remember to pass the locale param as String
366
383
  get :index, locale: 'fr'
367
384
 
368
385
  expect(response).to be_success
@@ -65,10 +65,10 @@ module RouteTranslator
65
65
  def available_locales
66
66
  locales = config.available_locales
67
67
 
68
- if locales.any?
69
- locales.map(&:to_sym)
70
- else
68
+ if locales.empty?
71
69
  I18n.available_locales.dup
70
+ else
71
+ locales.map(&:to_sym)
72
72
  end
73
73
  end
74
74
 
@@ -11,7 +11,7 @@ module ActionDispatch
11
11
  @localized = false
12
12
  end
13
13
 
14
- # rubocop:disable Lint/UnderscorePrefixedVariableName
14
+ # rubocop:disable Lint/UnderscorePrefixedVariableName, Metrics/PerceivedComplexity
15
15
  def add_route(action, controller, options, _path, to, via, formatted, anchor, options_constraints) # :nodoc:
16
16
  return super unless @localized
17
17
 
@@ -22,25 +22,25 @@ module ActionDispatch
22
22
 
23
23
  default_action = options.delete(:action) || @scope[:action]
24
24
 
25
- if action =~ %r{^[\w\-\/]+$}
25
+ if %r{^[\w\-\/]+$}.match?(action)
26
26
  default_action ||= action.tr('-', '_') unless action.include?('/')
27
27
  else
28
28
  action = nil
29
29
  end
30
30
 
31
- as = if !options.fetch(:as, true) # if it's set to nil or false
32
- options.delete(:as)
33
- else
31
+ as = if options.fetch(:as, true)
34
32
  name_for_action(options.delete(:as), action)
33
+ else
34
+ options.delete(:as)
35
35
  end
36
36
 
37
- path = Mapping.normalize_path URI.parser.escape(path), formatted
37
+ path = Mapping.normalize_path URI::DEFAULT_PARSER.escape(path), formatted
38
38
  ast = Journey::Parser.parse path
39
39
 
40
40
  mapping = Mapping.build(@scope, @set, ast, controller, default_action, to, via, formatted, options_constraints, anchor, options)
41
41
  @set.add_localized_route(mapping, ast, as, anchor, @scope, path, controller, default_action, to, via, formatted, options_constraints, options)
42
42
  end
43
- # rubocop:enable Lint/UnderscorePrefixedVariableName
43
+ # rubocop:enable Lint/UnderscorePrefixedVariableName, Metrics/PerceivedComplexity
44
44
 
45
45
  private
46
46
 
@@ -12,7 +12,7 @@ module RouteTranslator
12
12
  end
13
13
 
14
14
  def native_locale?(locale)
15
- locale.to_s.match(/native_/).present?
15
+ locale.to_s.include?('native_')
16
16
  end
17
17
 
18
18
  def native_locales
@@ -23,7 +23,7 @@ module RouteTranslator
23
23
 
24
24
  def locale_from_host(host)
25
25
  locales = RouteTranslator.config.host_locales.each_with_object([]) do |(pattern, locale), result|
26
- result << locale.to_sym if host =~ regex_for(pattern)
26
+ result << locale.to_sym if host&.match?(regex_for(pattern))
27
27
  end
28
28
  locales &= I18n.available_locales
29
29
  locales.first&.to_sym
@@ -24,10 +24,10 @@ module RouteTranslator
24
24
  handler = proc { |exception| exception }
25
25
  opts = { locale: locale, scope: scope }
26
26
 
27
- if I18n.translate(str, **opts.merge(exception_handler: handler)).is_a?(I18n::MissingTranslation)
28
- I18n.translate str, **opts.merge(fallback_options(str, locale))
27
+ if I18n.t(str, **opts.merge(exception_handler: handler)).is_a?(I18n::MissingTranslation)
28
+ I18n.t str, **opts.merge(fallback_options(str, locale))
29
29
  else
30
- I18n.translate str, **opts
30
+ I18n.t str, **opts
31
31
  end
32
32
  end
33
33
 
@@ -51,12 +51,12 @@ module RouteTranslator
51
51
  def translate(segment, locale, scope)
52
52
  return segment if segment.empty?
53
53
 
54
- if segment.starts_with?(':')
54
+ if segment.start_with?(':')
55
55
  named_param, hyphenized = segment.split('-', 2)
56
56
  return "#{named_param}-#{translate(hyphenized, locale, scope)}" if hyphenized
57
57
  end
58
58
 
59
- return segment if segment.starts_with?('(', '*') || segment.include?(':')
59
+ return segment if segment.start_with?('(', '*') || segment.include?(':')
60
60
 
61
61
  appended_part = segment.slice!(/(\()$/)
62
62
  str = translatable_segment(segment)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RouteTranslator
4
- VERSION = '7.1.2'
4
+ VERSION = '9.0.0'
5
5
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: route_translator
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.2
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geremia Taglialatela
8
8
  - Enric Lluelles
9
9
  - Raul Murciano
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-03-02 00:00:00.000000000 Z
13
+ date: 2020-11-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: actionpack
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 5.0.0.1
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: '6.1'
24
+ version: '6.2'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,7 +31,7 @@ dependencies:
31
31
  version: 5.0.0.1
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '6.1'
34
+ version: '6.2'
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: activesupport
37
37
  requirement: !ruby/object:Gem::Requirement
@@ -41,7 +41,7 @@ dependencies:
41
41
  version: 5.0.0.1
42
42
  - - "<"
43
43
  - !ruby/object:Gem::Version
44
- version: '6.1'
44
+ version: '6.2'
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
@@ -51,7 +51,7 @@ dependencies:
51
51
  version: 5.0.0.1
52
52
  - - "<"
53
53
  - !ruby/object:Gem::Version
54
- version: '6.1'
54
+ version: '6.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: addressable
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.2'
75
+ version: '2.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.2'
82
+ version: '2.3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: byebug
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -104,22 +104,16 @@ dependencies:
104
104
  name: coveralls_reborn
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: 0.14.0
110
- - - "<"
107
+ - - "~>"
111
108
  - !ruby/object:Gem::Version
112
- version: '0.16'
109
+ version: 0.18.0
113
110
  type: :development
114
111
  prerelease: false
115
112
  version_requirements: !ruby/object:Gem::Requirement
116
113
  requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: 0.14.0
120
- - - "<"
114
+ - - "~>"
121
115
  - !ruby/object:Gem::Version
122
- version: '0.16'
116
+ version: 0.18.0
123
117
  - !ruby/object:Gem::Dependency
124
118
  name: minitest
125
119
  requirement: !ruby/object:Gem::Requirement
@@ -143,7 +137,7 @@ dependencies:
143
137
  version: 5.0.0.1
144
138
  - - "<"
145
139
  - !ruby/object:Gem::Version
146
- version: '6.1'
140
+ version: '6.2'
147
141
  type: :development
148
142
  prerelease: false
149
143
  version_requirements: !ruby/object:Gem::Requirement
@@ -153,7 +147,7 @@ dependencies:
153
147
  version: 5.0.0.1
154
148
  - - "<"
155
149
  - !ruby/object:Gem::Version
156
- version: '6.1'
150
+ version: '6.2'
157
151
  - !ruby/object:Gem::Dependency
158
152
  name: rake
159
153
  requirement: !ruby/object:Gem::Requirement
@@ -174,62 +168,62 @@ dependencies:
174
168
  requirements:
175
169
  - - "~>"
176
170
  - !ruby/object:Gem::Version
177
- version: 0.80.1
171
+ version: 1.2.0
178
172
  type: :development
179
173
  prerelease: false
180
174
  version_requirements: !ruby/object:Gem::Requirement
181
175
  requirements:
182
176
  - - "~>"
183
177
  - !ruby/object:Gem::Version
184
- version: 0.80.1
178
+ version: 1.2.0
185
179
  - !ruby/object:Gem::Dependency
186
180
  name: rubocop-performance
187
181
  requirement: !ruby/object:Gem::Requirement
188
182
  requirements:
189
183
  - - "~>"
190
184
  - !ruby/object:Gem::Version
191
- version: '1.5'
185
+ version: '1.8'
192
186
  type: :development
193
187
  prerelease: false
194
188
  version_requirements: !ruby/object:Gem::Requirement
195
189
  requirements:
196
190
  - - "~>"
197
191
  - !ruby/object:Gem::Version
198
- version: '1.5'
192
+ version: '1.8'
199
193
  - !ruby/object:Gem::Dependency
200
194
  name: rubocop-rails
201
195
  requirement: !ruby/object:Gem::Requirement
202
196
  requirements:
203
197
  - - "~>"
204
198
  - !ruby/object:Gem::Version
205
- version: '2.4'
199
+ version: '2.8'
206
200
  type: :development
207
201
  prerelease: false
208
202
  version_requirements: !ruby/object:Gem::Requirement
209
203
  requirements:
210
204
  - - "~>"
211
205
  - !ruby/object:Gem::Version
212
- version: '2.4'
206
+ version: '2.8'
213
207
  - !ruby/object:Gem::Dependency
214
208
  name: simplecov
215
209
  requirement: !ruby/object:Gem::Requirement
216
210
  requirements:
217
211
  - - ">="
218
212
  - !ruby/object:Gem::Version
219
- version: 0.17.1
213
+ version: 0.18.5
220
214
  - - "<"
221
215
  - !ruby/object:Gem::Version
222
- version: '0.19'
216
+ version: '0.20'
223
217
  type: :development
224
218
  prerelease: false
225
219
  version_requirements: !ruby/object:Gem::Requirement
226
220
  requirements:
227
221
  - - ">="
228
222
  - !ruby/object:Gem::Version
229
- version: 0.17.1
223
+ version: 0.18.5
230
224
  - - "<"
231
225
  - !ruby/object:Gem::Version
232
- version: '0.19'
226
+ version: '0.20'
233
227
  description: Translates the Rails routes of your application into the languages defined
234
228
  in your locale files
235
229
  email:
@@ -260,24 +254,27 @@ files:
260
254
  homepage: https://github.com/enriclluelles/route_translator
261
255
  licenses:
262
256
  - MIT
263
- metadata: {}
264
- post_install_message:
257
+ metadata:
258
+ bug_tracker_uri: https://github.com/enriclluelles/route_translator/issues
259
+ changelog_uri: https://github.com/enriclluelles/route_translator/blob/master/CHANGELOG.md
260
+ source_code_uri: https://github.com/enriclluelles/route_translator
261
+ post_install_message:
265
262
  rdoc_options: []
266
263
  require_paths:
267
264
  - lib
268
265
  required_ruby_version: !ruby/object:Gem::Requirement
269
266
  requirements:
270
- - - "~>"
267
+ - - ">="
271
268
  - !ruby/object:Gem::Version
272
- version: '2.3'
269
+ version: '2.4'
273
270
  required_rubygems_version: !ruby/object:Gem::Requirement
274
271
  requirements:
275
272
  - - ">="
276
273
  - !ruby/object:Gem::Version
277
274
  version: '0'
278
275
  requirements: []
279
- rubygems_version: 3.1.2
280
- signing_key:
276
+ rubygems_version: 3.1.4
277
+ signing_key:
281
278
  specification_version: 4
282
279
  summary: Translate your Rails routes in a simple manner
283
280
  test_files: []