route_translator 13.1.0 → 13.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 773a40298cd3819de8d7801f3ae31b0dc5fcb4c3db65f809570adb1ae0a25e7e
4
- data.tar.gz: 9176264924cade856a3c1e2e6b811bb744ca132f4382a377afb45aa4dd79061c
3
+ metadata.gz: 7cdedc4080c8163372dc065026e2084f00cd8436cb49bbbf0bf9fd3a5624a0b7
4
+ data.tar.gz: 9b1d8e9b07c2c04e10ce89a976f1cda42efac59a23dabb375361f9ec570418ae
5
5
  SHA512:
6
- metadata.gz: d20204dae597c1d97111bf3f75d2079dd027bd71f8c36918d65be770daed4c5eb695d7802977b0650d9bd394861e93b5293d512f6dbc29d3e766ad9619ce5145
7
- data.tar.gz: 87155014e01709f6418964b4278b699b2009371e03c69eb6b75d0ac32f1d579a6f415f3437fb77b08b0044fb954aefcb02e03cfe2f387b703fe9a94d40f38729
6
+ metadata.gz: 657a89132bee2d9d8b28a1d4940c36e2326b736ec1edb2815756108fae10e69b55b1d166c7b56ec77a0ad271ce54aad9928fe9624152d5de7b51bb8e342a900a
7
+ data.tar.gz: fbb5fec9b9443e5e2d6eee402a2394248742dbe7a47d144791670aefd3880319e2e1203ab4a4fde3fb38c4ead477ec64baddd460d066abe4033240e68eb08587
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 13.2.0 / 2023-07-28
4
+
5
+ * [FEATURE] Add option for standard nested separator ([#285](https://github.com/enriclluelles/route_translator/pull/285))
6
+ * [ENHANCEMENT] Update development dependencies
7
+
8
+ ## 13.1.1 / 2023-07-01
9
+
10
+ * [ENHANCEMENT] Better integration with ActionController::TestCase
11
+ * [ENHANCEMENT] Remove Rails 5.1 code
12
+ * [ENHANCEMENT] Update development dependencies
13
+
3
14
  ## 13.1.0 / 2022-12-26
4
15
 
5
16
  * [ENHANCEMENT] Test against Ruby 3.1 and Ruby 3.2
data/README.md CHANGED
@@ -280,7 +280,13 @@ end
280
280
  | `host_locales` | Sets `I18n.locale` based on `request.host`. Useful for apps accepting requests from more than one domain. See below for more details | `{}` |
281
281
  | `locale_param_key` | The param key used to set the locale to the newly generated routes | `:locale` |
282
282
  | `locale_segment_proc` | The locale segment of the url will by default be `locale.to_s.downcase`. You can supply your own mechanism via a Proc that takes `locale` as an argument, e.g. `->(locale) { locale.to_s.upcase }` | `false` |
283
+ | `i18n_use_slash_separator` | Use the exact controller path `account/foo` for looking up translations instead of nested keys `account.foo` | `false` |
283
284
 
285
+ #### Deprecated options
286
+
287
+ - `i18n_use_slash_separator` is deprecated and will be forced to `true` in the next major release of Route Translator. This only
288
+ affects application with nested routes. Please set this option to `true` to remove the deprecation message and ensure
289
+ to convert nested routes like `people.products` to the new `people/products`.
284
290
 
285
291
  ### Host-based Locale
286
292
 
@@ -16,7 +16,11 @@ module RouteTranslator
16
16
  def scope
17
17
  @scope ||=
18
18
  if mapping.defaults[:controller]
19
- %i[routes controllers].concat mapping.defaults[:controller].split('/').map(&:to_sym)
19
+ if RouteTranslator.config.i18n_use_slash_separator
20
+ %i[routes controllers].push mapping.defaults[:controller]
21
+ else
22
+ %i[routes controllers].concat mapping.defaults[:controller].split('/').map(&:to_sym)
23
+ end
20
24
  else
21
25
  %i[routes controllers]
22
26
  end
@@ -3,17 +3,9 @@
3
3
  module RouteTranslator
4
4
  module Translator
5
5
  module RouteHelpers
6
- class << self
7
- private
8
-
9
- def add_helpers_to_test_cases(helper_container)
10
- %w[ActionController ActionMailer ActionView].each do |klass_name|
11
- next unless Module.const_defined?(klass_name)
12
-
13
- klass_name.constantize::TestCase.__send__(:include, helper_container)
14
- end
15
- end
16
- end
6
+ TEST_CASE_HOOKS = %i[
7
+ action_controller_test_case action_mailer_test_case action_view_test_case
8
+ ].freeze
17
9
 
18
10
  module_function
19
11
 
@@ -27,15 +19,19 @@ module RouteTranslator
27
19
 
28
20
  %w[path url].each do |suffix|
29
21
  helper_container = named_route_collection.send(:"#{suffix}_helpers_module")
30
- new_helper_name = "#{old_name}_#{suffix}"
22
+ new_helper_name = :"#{old_name}_#{suffix}"
31
23
 
32
- helper_list.push(new_helper_name.to_sym) unless helper_list.include?(new_helper_name.to_sym)
24
+ helper_list.push(new_helper_name) unless helper_list.include?(new_helper_name)
33
25
 
34
26
  helper_container.__send__(:define_method, new_helper_name) do |*args|
35
27
  __send__(Translator.route_name_for(args, old_name, suffix, self), *args)
36
28
  end
37
29
 
38
- add_helpers_to_test_cases(helper_container) if ENV.fetch('RAILS_ENV', nil) == 'test'
30
+ TEST_CASE_HOOKS.each do |test_case_hook|
31
+ ActiveSupport.on_load(test_case_hook) do
32
+ include helper_container
33
+ end
34
+ end
39
35
  end
40
36
  end
41
37
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RouteTranslator
4
- VERSION = '13.1.0'
4
+ VERSION = '13.2.0'
5
5
  end
@@ -20,7 +20,8 @@ module RouteTranslator
20
20
  hide_locale: false,
21
21
  host_locales: {},
22
22
  locale_param_key: :locale,
23
- locale_segment_proc: false
23
+ locale_segment_proc: false,
24
+ i18n_use_slash_separator: false
24
25
  }.freeze
25
26
 
26
27
  Configuration = Struct.new(*DEFAULT_CONFIGURATION.keys)
@@ -34,6 +35,18 @@ module RouteTranslator
34
35
  @config.generate_unnamed_unlocalized_routes = false
35
36
  @config.hide_locale = true
36
37
  end
38
+
39
+ def check_deprecations
40
+ return if @config.i18n_use_slash_separator
41
+
42
+ ActiveSupport::Deprecation.warn <<~MSG
43
+ `i18n_use_slash_separator` set to `false` is deprecated and will be
44
+ removed in the next major release of Route Translator to match
45
+ Rails' ActiveRecord nested model syntax.
46
+
47
+ More information at https://github.com/enriclluelles/route_translator/pull/285
48
+ MSG
49
+ end
37
50
  end
38
51
 
39
52
  module_function
@@ -48,6 +61,7 @@ module RouteTranslator
48
61
  yield @config if block_given?
49
62
 
50
63
  resolve_host_locale_config_conflicts if @config.host_locales.present?
64
+ check_deprecations
51
65
 
52
66
  @config
53
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: route_translator
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.1.0
4
+ version: 13.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geremia Taglialatela
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-12-26 00:00:00.000000000 Z
13
+ date: 2023-07-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: actionpack
@@ -52,110 +52,6 @@ dependencies:
52
52
  - - "<"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '7.1'
55
- - !ruby/object:Gem::Dependency
56
- name: appraisal
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.4'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.4'
69
- - !ruby/object:Gem::Dependency
70
- name: byebug
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '11.1'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '11.1'
83
- - !ruby/object:Gem::Dependency
84
- name: minitest
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '5.16'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '5.16'
97
- - !ruby/object:Gem::Dependency
98
- name: rails
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '5.2'
104
- - - "<"
105
- - !ruby/object:Gem::Version
106
- version: '7.1'
107
- type: :development
108
- prerelease: false
109
- version_requirements: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: '5.2'
114
- - - "<"
115
- - !ruby/object:Gem::Version
116
- version: '7.1'
117
- - !ruby/object:Gem::Dependency
118
- name: rake
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '13.0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '13.0'
131
- - !ruby/object:Gem::Dependency
132
- name: simplecov
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: 0.22.0
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: 0.22.0
145
- - !ruby/object:Gem::Dependency
146
- name: simplecov-lcov
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: 0.8.0
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: 0.8.0
159
55
  description: Translates the Rails routes of your application into the languages defined
160
56
  in your locale files
161
57
  email:
@@ -204,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
100
  - !ruby/object:Gem::Version
205
101
  version: '0'
206
102
  requirements: []
207
- rubygems_version: 3.2.33
103
+ rubygems_version: 3.4.1
208
104
  signing_key:
209
105
  specification_version: 4
210
106
  summary: Translate your Rails routes in a simple manner