route_localize 0.0.6 → 0.0.7
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/README.md +14 -1
- data/lib/route_localize.rb +33 -23
- data/lib/route_localize/extensions.rb +0 -1
- data/lib/route_localize/version.rb +1 -1
- data/test/dummy/app/controllers/trees_controller.rb +9 -0
- data/test/dummy/app/models/tree.rb +18 -0
- data/test/dummy/log/test.log +340 -0
- data/test/integration/routes_test.rb +11 -22
- data/test/route_localize_test.rb +5 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac33fb44a9d0ae4cb2d20a38e66c3e5b01938b7b
|
4
|
+
data.tar.gz: 8377b6a2ca45e7e5d14afebf1322b33ebba48b40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7d9a28eed03ce3429a45d240acd304c215761608b5494e5c1a0bb2aac9bd7c00120d52775de6fda8d37379c016b5de09a3169526281f766e0268059a5a7eb13
|
7
|
+
data.tar.gz: e9fd2c544fd8fd7eb98dfc401849fe222cb6073189f96a24412446887c7c7e0a717c71c59546d8efefeb8d3bbb606135bdfd4761f1e33c055666caec2ffc4880
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
Rails 4 engine to translate routes using locale files and subdomains.
|
4
4
|
|
5
|
+
|
5
6
|
## Install
|
6
7
|
|
7
8
|
In your Rails application's `Gemfile` add:
|
@@ -16,6 +17,7 @@ Install the plugin by running:
|
|
16
17
|
$ bundle
|
17
18
|
```
|
18
19
|
|
20
|
+
|
19
21
|
## Usage
|
20
22
|
|
21
23
|
In your `config/routes.rb`, localize the routes you want by surrounding them with a scope. For example:
|
@@ -64,6 +66,7 @@ You can then use the `locale_switch_url` helper in your views:
|
|
64
66
|
<%= link_to "en", locale_switch_url("en") %>
|
65
67
|
```
|
66
68
|
|
69
|
+
|
67
70
|
### Change the parameters in your switcher
|
68
71
|
|
69
72
|
If your params are different depending on the language, you can override
|
@@ -100,7 +103,17 @@ Then you would need to add this inside your controller:
|
|
100
103
|
|
101
104
|
## Caveats
|
102
105
|
|
103
|
-
- Tests are missing for the `locale_switch_url
|
106
|
+
- Tests are missing for the `locale_switch_url` helper.
|
107
|
+
- Rails' `url_for` cannot find the translation, prefer to use the `_path` and
|
108
|
+
`_url` methods instead. If you can't, one way around is to use
|
109
|
+
`RouteLocalize.translate_path`.
|
110
|
+
|
111
|
+
For example :
|
112
|
+
|
113
|
+
```ruby
|
114
|
+
url = url_for(controller: 'trees', action: 'index')
|
115
|
+
url = RouteLocalize.translate_path(url, I18n.locale)
|
116
|
+
```
|
104
117
|
|
105
118
|
|
106
119
|
## Development
|
data/lib/route_localize.rb
CHANGED
@@ -14,26 +14,14 @@ module RouteLocalize
|
|
14
14
|
|
15
15
|
locales = defaults.delete(:localize)
|
16
16
|
locales.each do |locale|
|
17
|
-
|
18
|
-
locale_as = "#{as}_#{locale}"
|
19
|
-
locale_as = nil if route_set.named_routes.routes[locale_as.to_sym]
|
20
|
-
|
21
|
-
# Path
|
22
|
-
locale_conditions = conditions.dup
|
23
|
-
locale_conditions[:path_info] = translate_path(locale_conditions[:path_info], locale)
|
24
|
-
locale_conditions[:subdomain] = locale.to_s
|
25
|
-
locale_conditions[:required_defaults] = locale_conditions[:required_defaults].reject { |l| l == :localize }
|
26
|
-
|
27
|
-
# Other arguments
|
28
|
-
locale_defaults = defaults.merge(subdomain: locale.to_s)
|
29
|
-
|
30
|
-
yield app, locale_conditions, requirements, locale_defaults, locale_as, anchor
|
17
|
+
yield *route_args_for_locale(locale, app, conditions, requirements, defaults, as, anchor, route_set)
|
31
18
|
end
|
32
19
|
|
33
20
|
define_locale_helpers(as, route_set.named_routes.module)
|
34
21
|
else
|
35
22
|
yield app, conditions, requirements, defaults, as, anchor
|
36
23
|
end
|
24
|
+
|
37
25
|
end
|
38
26
|
|
39
27
|
# Create _path and _url helpers for the given path name
|
@@ -46,6 +34,19 @@ module RouteLocalize
|
|
46
34
|
end
|
47
35
|
end
|
48
36
|
|
37
|
+
# Translate a path
|
38
|
+
def translate_path(path, locale)
|
39
|
+
path = path.dup
|
40
|
+
|
41
|
+
# Remove "(.:format)" in routes or "?args" if used elsewhere
|
42
|
+
final_options = path.slice!(/(\(.+\)|\?.*)$/)
|
43
|
+
|
44
|
+
segments = path.split('/').map do |segment|
|
45
|
+
translate_segment(segment, locale)
|
46
|
+
end
|
47
|
+
"#{segments.join('/')}#{final_options}"
|
48
|
+
end
|
49
|
+
|
49
50
|
# Translate part of a path
|
50
51
|
def translate_segment(segment, locale)
|
51
52
|
if segment =~ /^[a-z_0-9]+$/i
|
@@ -56,14 +57,23 @@ module RouteLocalize
|
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
59
|
-
# Translate a path
|
60
|
-
def translate_path(path, locale)
|
61
|
-
path = path.dup
|
62
|
-
final_options = path.slice!(/(\(.+\))$/) # Removes "(.:format)"
|
63
|
-
segments = path.split('/').map do |segment|
|
64
|
-
translate_segment(segment, locale)
|
65
|
-
end
|
66
|
-
"#{segments.join('/')}#{final_options}"
|
67
|
-
end
|
68
60
|
|
61
|
+
private
|
62
|
+
|
63
|
+
def route_args_for_locale(locale, app, conditions, requirements, defaults, as, anchor, route_set)
|
64
|
+
# Name
|
65
|
+
locale_as = "#{as}_#{locale}"
|
66
|
+
locale_as = nil if route_set.named_routes.routes[locale_as.to_sym]
|
67
|
+
|
68
|
+
# Path
|
69
|
+
locale_conditions = conditions.dup
|
70
|
+
locale_conditions[:path_info] = translate_path(locale_conditions[:path_info], locale)
|
71
|
+
locale_conditions[:subdomain] = locale.to_s
|
72
|
+
locale_conditions[:required_defaults] = locale_conditions[:required_defaults].reject { |l| l == :localize }
|
73
|
+
|
74
|
+
# Other arguments
|
75
|
+
locale_defaults = defaults.merge(subdomain: locale.to_s)
|
76
|
+
|
77
|
+
[app, locale_conditions, requirements, locale_defaults, locale_as, anchor]
|
78
|
+
end
|
69
79
|
end
|
@@ -3,7 +3,6 @@ module ActionDispatch
|
|
3
3
|
class RouteSet
|
4
4
|
def add_route_with_locale(app, conditions = {}, requirements = {}, defaults = {}, as = nil, anchor = true)
|
5
5
|
RouteLocalize.translate_route(app, conditions, requirements, defaults, as, anchor, self) do |*args|
|
6
|
-
# puts "#{$route} #{args.inspect}"
|
7
6
|
add_route_without_locale *args
|
8
7
|
end
|
9
8
|
end
|
@@ -1,16 +1,25 @@
|
|
1
1
|
class TreesController < ApplicationController
|
2
2
|
def home
|
3
|
+
render text: 'home'
|
3
4
|
end
|
4
5
|
|
5
6
|
def show
|
7
|
+
render text: 'show'
|
6
8
|
end
|
7
9
|
|
8
10
|
def create
|
11
|
+
render text: 'create'
|
12
|
+
end
|
13
|
+
|
14
|
+
def edit
|
15
|
+
render text: 'edit'
|
9
16
|
end
|
10
17
|
|
11
18
|
def update
|
19
|
+
render text: 'update'
|
12
20
|
end
|
13
21
|
|
14
22
|
def index
|
23
|
+
render text: 'index'
|
15
24
|
end
|
16
25
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Object that acts like a routeable ActiveRecord model
|
2
|
+
class Tree
|
3
|
+
def initialize(attributes)
|
4
|
+
@attributes = attributes
|
5
|
+
end
|
6
|
+
|
7
|
+
def to_param
|
8
|
+
@attributes[:id]
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.model_name
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.singular_route_key
|
16
|
+
"tree"
|
17
|
+
end
|
18
|
+
end
|
data/test/dummy/log/test.log
CHANGED
@@ -38,3 +38,343 @@ RoutesTest: test_generates_named_paths_for_each_locale
|
|
38
38
|
RoutesTest: test_generates_paths_depending_on_subdomain
|
39
39
|
-------------------------------------------------------
|
40
40
|
[1m[35m (0.1ms)[0m rollback transaction
|
41
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
42
|
+
--------------------------------------------
|
43
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
44
|
+
--------------------------------------------
|
45
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
46
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
47
|
+
--------------------------------------------------------------------------------
|
48
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
49
|
+
--------------------------------------------------------------------------------
|
50
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
51
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
52
|
+
------------------------------------------------------
|
53
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
54
|
+
------------------------------------------------------
|
55
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
56
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
57
|
+
-------------------------------------------------------
|
58
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
59
|
+
-------------------------------------------------------
|
60
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
61
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
62
|
+
--------------------------------------------
|
63
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
64
|
+
--------------------------------------------
|
65
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
66
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
67
|
+
--------------------------------------------------------------------------------
|
68
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
69
|
+
--------------------------------------------------------------------------------
|
70
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
71
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
72
|
+
------------------------------------------------------
|
73
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
74
|
+
------------------------------------------------------
|
75
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
76
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
77
|
+
-------------------------------------------------------
|
78
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
79
|
+
-------------------------------------------------------
|
80
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
81
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
82
|
+
--------------------------------------------
|
83
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
84
|
+
--------------------------------------------
|
85
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
86
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
87
|
+
--------------------------------------------------------------------------------
|
88
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
89
|
+
--------------------------------------------------------------------------------
|
90
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
91
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
92
|
+
------------------------------------------------------
|
93
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
94
|
+
------------------------------------------------------
|
95
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
96
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
97
|
+
-------------------------------------------------------
|
98
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
99
|
+
-------------------------------------------------------
|
100
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
101
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
102
|
+
--------------------------------------------
|
103
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
104
|
+
--------------------------------------------
|
105
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
106
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
107
|
+
--------------------------------------------------------------------------------
|
108
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
109
|
+
--------------------------------------------------------------------------------
|
110
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
111
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
112
|
+
------------------------------------------------------
|
113
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
114
|
+
------------------------------------------------------
|
115
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
116
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
117
|
+
-------------------------------------------------------
|
118
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
119
|
+
-------------------------------------------------------
|
120
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
121
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
122
|
+
--------------------------------------------
|
123
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
124
|
+
--------------------------------------------
|
125
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
126
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
127
|
+
--------------------------------------------------------------------------------
|
128
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
129
|
+
--------------------------------------------------------------------------------
|
130
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
131
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
132
|
+
------------------------------------------------------
|
133
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
134
|
+
------------------------------------------------------
|
135
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
136
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
137
|
+
-------------------------------------------------------
|
138
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
139
|
+
-------------------------------------------------------
|
140
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
141
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
142
|
+
-----------------------------------------------
|
143
|
+
RouteLocalizeHelperTest: test_locale_switch_url
|
144
|
+
-----------------------------------------------
|
145
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
146
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
147
|
+
--------------------------------------------
|
148
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
149
|
+
--------------------------------------------
|
150
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
151
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
152
|
+
--------------------------------------------------------------------------------
|
153
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
154
|
+
--------------------------------------------------------------------------------
|
155
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
156
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
157
|
+
------------------------------------------------------
|
158
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
159
|
+
------------------------------------------------------
|
160
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
161
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
162
|
+
-------------------------------------------------------
|
163
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
164
|
+
-------------------------------------------------------
|
165
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
166
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
167
|
+
-----------------------------------------------
|
168
|
+
RouteLocalizeHelperTest: test_locale_switch_url
|
169
|
+
-----------------------------------------------
|
170
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
171
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
172
|
+
--------------------------------------------
|
173
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
174
|
+
--------------------------------------------
|
175
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
176
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
177
|
+
--------------------------------------------------------------------------------
|
178
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
179
|
+
--------------------------------------------------------------------------------
|
180
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
181
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
182
|
+
------------------------------------------------------
|
183
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
184
|
+
------------------------------------------------------
|
185
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
186
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
187
|
+
-------------------------------------------------------
|
188
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
189
|
+
-------------------------------------------------------
|
190
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
191
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
192
|
+
-----------------------------------------------
|
193
|
+
RouteLocalizeHelperTest: test_locale_switch_url
|
194
|
+
-----------------------------------------------
|
195
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
196
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
197
|
+
--------------------------------------------
|
198
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
199
|
+
--------------------------------------------
|
200
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
201
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
202
|
+
--------------------------------------------------------------------------------
|
203
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
204
|
+
--------------------------------------------------------------------------------
|
205
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
206
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
207
|
+
------------------------------------------------------
|
208
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
209
|
+
------------------------------------------------------
|
210
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
211
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
212
|
+
-------------------------------------------------------
|
213
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
214
|
+
-------------------------------------------------------
|
215
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
216
|
+
[1m[36m (0.2ms)[0m [1mbegin transaction[0m
|
217
|
+
-----------------------------------------------
|
218
|
+
RouteLocalizeHelperTest: test_locale_switch_url
|
219
|
+
-----------------------------------------------
|
220
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
221
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
222
|
+
--------------------------------------------
|
223
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
224
|
+
--------------------------------------------
|
225
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
226
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
227
|
+
--------------------------------------------------------------------------------
|
228
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
229
|
+
--------------------------------------------------------------------------------
|
230
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
231
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
232
|
+
------------------------------------------------------
|
233
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
234
|
+
------------------------------------------------------
|
235
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
236
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
237
|
+
-------------------------------------------------------
|
238
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
239
|
+
-------------------------------------------------------
|
240
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
241
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
242
|
+
--------------------------------------------------------------------------------
|
243
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
244
|
+
--------------------------------------------------------------------------------
|
245
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
246
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
247
|
+
------------------------------------------------------
|
248
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
249
|
+
------------------------------------------------------
|
250
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
251
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
252
|
+
-------------------------------------------------------
|
253
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
254
|
+
-------------------------------------------------------
|
255
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
256
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
257
|
+
--------------------------------------------
|
258
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
259
|
+
--------------------------------------------
|
260
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
261
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
262
|
+
--------------------------------------------
|
263
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
264
|
+
--------------------------------------------
|
265
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
266
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
267
|
+
--------------------------------------
|
268
|
+
RouteLocalizeTest: test_translate_path
|
269
|
+
--------------------------------------
|
270
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
271
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
272
|
+
--------------------------------------------------------------------------------
|
273
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
274
|
+
--------------------------------------------------------------------------------
|
275
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
276
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
277
|
+
------------------------------------------------------
|
278
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
279
|
+
------------------------------------------------------
|
280
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
281
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
282
|
+
-------------------------------------------------------
|
283
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
284
|
+
-------------------------------------------------------
|
285
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
286
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
287
|
+
--------------------------------------------
|
288
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
289
|
+
--------------------------------------------
|
290
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
291
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
292
|
+
--------------------------------------
|
293
|
+
RouteLocalizeTest: test_translate_path
|
294
|
+
--------------------------------------
|
295
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
296
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
297
|
+
--------------------------------------------
|
298
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
299
|
+
--------------------------------------------
|
300
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
301
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
302
|
+
--------------------------------------
|
303
|
+
RouteLocalizeTest: test_translate_path
|
304
|
+
--------------------------------------
|
305
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
306
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
307
|
+
--------------------------------------------
|
308
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
309
|
+
--------------------------------------------
|
310
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
311
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
312
|
+
--------------------------------------
|
313
|
+
RouteLocalizeTest: test_translate_path
|
314
|
+
--------------------------------------
|
315
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
316
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
317
|
+
--------------------------------------------
|
318
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
319
|
+
--------------------------------------------
|
320
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
321
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
322
|
+
--------------------------------------
|
323
|
+
RouteLocalizeTest: test_translate_path
|
324
|
+
--------------------------------------
|
325
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
326
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
327
|
+
--------------------------------------------
|
328
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
329
|
+
--------------------------------------------
|
330
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
331
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
332
|
+
--------------------------------------
|
333
|
+
RouteLocalizeTest: test_translate_path
|
334
|
+
--------------------------------------
|
335
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
336
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
337
|
+
--------------------------------------------
|
338
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
339
|
+
--------------------------------------------
|
340
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
341
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
342
|
+
--------------------------------------
|
343
|
+
RouteLocalizeTest: test_translate_path
|
344
|
+
--------------------------------------
|
345
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
346
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
347
|
+
--------------------------------------------
|
348
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
349
|
+
--------------------------------------------
|
350
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
351
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
352
|
+
--------------------------------------
|
353
|
+
RouteLocalizeTest: test_translate_path
|
354
|
+
--------------------------------------
|
355
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
356
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
357
|
+
--------------------------------------------------------------------------------
|
358
|
+
RoutesTest: test_generates_generic_named_paths_that_depend_on_the_current_locale
|
359
|
+
--------------------------------------------------------------------------------
|
360
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
361
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
362
|
+
------------------------------------------------------
|
363
|
+
RoutesTest: test_generates_named_paths_for_each_locale
|
364
|
+
------------------------------------------------------
|
365
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
366
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
367
|
+
-------------------------------------------------------
|
368
|
+
RoutesTest: test_generates_paths_depending_on_subdomain
|
369
|
+
-------------------------------------------------------
|
370
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
371
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
372
|
+
--------------------------------------------
|
373
|
+
RouteLocalizeTest: test_RouteLocalize_exists
|
374
|
+
--------------------------------------------
|
375
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
376
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
377
|
+
---------------------------------------------------------------
|
378
|
+
RouteLocalizeTest: test_translate_path_should_not_change_routes
|
379
|
+
---------------------------------------------------------------
|
380
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
@@ -2,21 +2,7 @@
|
|
2
2
|
require 'test_helper'
|
3
3
|
|
4
4
|
class RoutesTest < ActionDispatch::IntegrationTest
|
5
|
-
fixtures :all
|
6
|
-
|
7
|
-
# Mock object that acts like a routeable ActiveRecord model
|
8
|
-
class FakeTree
|
9
|
-
attr_reader :to_param
|
10
|
-
def initialize(to_param)
|
11
|
-
@to_param = to_param
|
12
|
-
end
|
13
|
-
def self.model_name
|
14
|
-
self
|
15
|
-
end
|
16
|
-
def self.singular_route_key
|
17
|
-
"tree"
|
18
|
-
end
|
19
|
-
end
|
5
|
+
# fixtures :all
|
20
6
|
|
21
7
|
include ActionDispatch::Routing::UrlFor
|
22
8
|
include Rails.application.routes.url_helpers
|
@@ -42,14 +28,16 @@ class RoutesTest < ActionDispatch::IntegrationTest
|
|
42
28
|
assert_equal "/home", home_path
|
43
29
|
assert_equal "/trees/planting", new_tree_path
|
44
30
|
assert_equal "/trees/42", tree_path(42)
|
45
|
-
assert_equal "
|
31
|
+
assert_equal "/trees/42/edit", edit_tree_path(42)
|
32
|
+
assert_equal "http://en.example.com/trees/42", url_for(Tree.new(id: 42))
|
46
33
|
assert_equal "/default", default_path
|
47
34
|
|
48
35
|
I18n.locale = :fr
|
49
36
|
assert_equal "/accueil", home_path
|
50
37
|
assert_equal "/arbres/planter", new_tree_path
|
51
38
|
assert_equal "/arbres/42", tree_path(42)
|
52
|
-
assert_equal "
|
39
|
+
assert_equal "/arbres/42/%C3%A9diter", edit_tree_path(42)
|
40
|
+
assert_equal "http://fr.example.com/arbres/42", url_for(Tree.new(id: 42))
|
53
41
|
assert_equal "/default", default_path
|
54
42
|
end
|
55
43
|
|
@@ -60,14 +48,15 @@ class RoutesTest < ActionDispatch::IntegrationTest
|
|
60
48
|
{ subdomain: "en" })
|
61
49
|
|
62
50
|
# fr
|
63
|
-
|
64
|
-
|
65
|
-
{ subdomain: "fr" })
|
66
|
-
# FIXME
|
67
|
-
# Rails always seems to generate /trees/42 instead
|
51
|
+
|
52
|
+
# FIXME : assert_routing points to /trees/42
|
68
53
|
# assert_routing("http://fr.lacolhost.com/arbres/42",
|
69
54
|
# { controller: "trees", action: "show", subdomain: "fr", id: "42" },
|
70
55
|
# subdomain: "fr")
|
56
|
+
|
57
|
+
assert_recognizes({ controller: "trees", action: "show", subdomain: "fr", id: "42" },
|
58
|
+
"http://fr.lacolhost.com/arbres/42",
|
59
|
+
{ subdomain: "fr" })
|
71
60
|
end
|
72
61
|
|
73
62
|
end
|
data/test/route_localize_test.rb
CHANGED
@@ -4,4 +4,9 @@ class RouteLocalizeTest < ActiveSupport::TestCase
|
|
4
4
|
test "RouteLocalize exists" do
|
5
5
|
assert_kind_of Module, RouteLocalize
|
6
6
|
end
|
7
|
+
|
8
|
+
test "translate_path should not change routes" do
|
9
|
+
assert_equal "/a(:b)", RouteLocalize.translate_path("/a(:b)", "fr")
|
10
|
+
assert_equal "/a?b=c", RouteLocalize.translate_path("/a?b=c", "fr")
|
11
|
+
end
|
7
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: route_localize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sunny Ripert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -59,6 +59,7 @@ files:
|
|
59
59
|
- test/dummy/app/controllers/application_controller.rb
|
60
60
|
- test/dummy/app/controllers/trees_controller.rb
|
61
61
|
- test/dummy/app/helpers/application_helper.rb
|
62
|
+
- test/dummy/app/models/tree.rb
|
62
63
|
- test/dummy/app/views/layouts/application.html.erb
|
63
64
|
- test/dummy/app/views/trees/home.html.erb
|
64
65
|
- test/dummy/bin/bundle
|
@@ -123,6 +124,7 @@ test_files:
|
|
123
124
|
- test/dummy/app/controllers/application_controller.rb
|
124
125
|
- test/dummy/app/controllers/trees_controller.rb
|
125
126
|
- test/dummy/app/helpers/application_helper.rb
|
127
|
+
- test/dummy/app/models/tree.rb
|
126
128
|
- test/dummy/app/views/layouts/application.html.erb
|
127
129
|
- test/dummy/app/views/trees/home.html.erb
|
128
130
|
- test/dummy/bin/bundle
|