route_downcaser 1.2.2 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.rdoc +2 -2
- data/Rakefile +1 -5
- data/lib/route_downcaser/configuration.rb +0 -1
- data/lib/route_downcaser/downcase_route_middleware.rb +9 -10
- data/lib/route_downcaser/railtie.rb +1 -1
- data/lib/route_downcaser/version.rb +1 -1
- data/test/integration/route_middleware_test.rb +16 -14
- data/test/rails421/app/assets/config/manifest.js +3 -0
- data/test/rails421/app/controllers/hello_controller.rb +1 -1
- data/test/rails421/bin/rails +1 -1
- data/test/rails421/bin/rake +1 -1
- data/test/rails421/bin/setup +8 -8
- data/test/rails421/bin/spring +5 -5
- data/test/rails421/config/application.rb +6 -6
- data/test/rails421/config/environments/test.rb +4 -2
- data/test/rails421/config/routes.rb +2 -2
- data/test/rails421/log/test.log +611 -645
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/0p/0pLW5uAkYcVMn-L1f008s8QG400BA-CGnjEUCaGLgwA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/1E/1Eq7urfYMOFFaH2_2qtEtAzItryBST0NWI8LjG7_8AY.cache +3 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/1t/1tj8wAl_ygkeV4rjgm17Yabg53-rR_pkntyJe1pnStk.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/21/21O83OBXXXSWrKD2yP5QfOt5GdsGKcUvdkHuxGVDCq0.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/2V/2VVsM_aqLieq8REU3CAcwO12z7nTUOMDaOG8mfPTlDc.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/7A/7AfJBOCTRna7lhBueluC9znK0PVnN3Z0wUaxOqGL_A4.cache +3 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/9B/9BuTfVVX9s_SyGNUVwTAliEfEbBaBhN4h3UUAvmaO5w.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/9G/9GSHOjw505wesb6iaMzEVqLjrV7bDI8N8MnO892fjkY.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/9I/9IPM2vWQgQR4xfKHMKObDvNQpOackOP1Hhf3-GMlZnA.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/AD/ADMJimKJauAcBJIneLV5egsXBPBoCjbSP9kY6njR36I.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/AH/AHbfhhP0cTEOs-1EBUNUXXyeEHxgK0boxQfplICtNiA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/B5/B5enM7rLQGpvU7rBc2Zu3cO-5FhDDj0_nCVJWZvjX7s.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/C5/C5PnkMgUphtk9ABTF6z2KS4sHgpENn8GBLoy-i3E3wo.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/CQ/CQ_GqCyDnwt2tUBwsxP1dZHI65ufI-hB9MQ3y1--m9Q.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Fy/FyhhzuND_ItWUB5CEJ3iyuY40AgIG84NRv4zu9Timps.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/H-/H-Xq75Ky6CJKbSHsls6b1RlUhAZsCvAsQBp1hEo4SQE.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/JD/JDzlonPoUacVM5xof3d6jVjmE61rJg-Om9N6lYAo7ZI.cache +3 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/KD/KDZ5JOyifGKCzqVzvh51rBn4-z2waWNs3-ied97ntvk.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/KL/KLfhFc73IoPAgk4UqkkweYC0d9WoWDsdFt6tvPk-sH4.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Lr/Lr-IyGH4TR4pHCYggxyAjgjEdL2fA8HQm_WdYfSqivs.cache +3 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/MP/MPkUdTQ18IIRCAqCDpPHC_aLe9EvuxF2rCs0Zi7ormg.cache +3 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Mk/MkHnY3zJtJQlrbU7VsPIbKzhVht8Kh-jfEbTilENQgA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/NS/NSoASzvu62nmDpGMHQrHaDmhnAtsI4vc8886q8304tk.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Od/Odde9BXdsuh0jKZhRr4e_mzWgRviGF2hraOo-CBT2Uc.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/UJ/UJ9oV8YAQYl3QXld841M9Q8GDChRm4hq-p_-ub-8Mnw.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Vi/ViNv05i6eMoI4yhVXbPOdOe8uxRNvkjNSYoK5OS99Dw.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Ys/Ys273n5EbMBrlmQ8NS6qFULe7v3P3HsMJ-7AKvcpUVQ.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/bB/bBjLJM-5v5XvzSjbmk6765v1o0j-26cy2yuTD1KXkl0.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/iG/iGXSyXK76m1vZahJipVHsBeSuq9a02pimNfRGul6UyE.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/jZ/jZck37TJYp10fX7dzwjF6k7-gPhmNdzB5PWayl2lSRQ.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/kh/khKGwmTZNJ3bMZIUHcaMzBFC8ORvLIMmSF735G5h5JA.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p0AgQcqeMod0Q93wM6Lm_wksgSixervifjXcfre3UNg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/tN/tNMYFw0s6bpMU4Rph9cmm8M-3G0ZCkojT-JjMxvXY5c.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/uc/ucpiLQJan6bNoAklPDQXEwdgbK9N_iHcEdcUK3sXfi8.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/uw/uw7uS6ON94iLO0V-uIz9HG08EtTXbCsegAx2rsW8ZZw.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/v7/v79_HLVOJ_bTUgdWPb3KnIe1Ob_60Lytir4WusrWpQg.cache +3 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/wr/wrx3kO_wdP5NwpV8WnIPmG6582mk1yXcAYXwZECzF1c.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/xs/xsXpTMvclkmE9PUtRWGU4l13KsXsf143bqyVpBHalvE.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/z5/z5kOnAPBYWOw-zvMXDeGE_yVaZZoO9assTdxLAezanE.cache +1 -0
- data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/zi/zi3iTvVQF4pcw9u3GU9UJ6mttFr7TO49bUhRb-pA7sc.cache +1 -0
- data/test/rails602/Gemfile.lock +183 -0
- data/test/rails602/log/development.log +2 -0
- data/test/rails602/log/test.log +642 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/0a/0akXyz-RvD7ECckO9hP1DJxTo5DmWnfdLxYT8v6iBB0.cache +1 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/1G/1GDNz0WzrvjCbDFhKGTRB4SqMCVxSD35_Xf7FM-xGyA.cache +2 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/8A/8Aj0qbTT_8xMiQdT4ay1288JA7cIiscUWqD8v8AhrSo.cache +1 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +2 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/A9/A90cbULL8Hfbsv-9YOrxkplqpjR3vMl94Ty3mNaytyg.cache +1 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +2 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/Qw/QwqNC1B79H6PvmagB1AGJO9I9qeFBpiit-qXaOCDjp8.cache +1 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/lX/lXQ4hYUaxBbrnZMkw-u9ScABwdSoG7c63G01rUy4FLg.cache +0 -0
- data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/sC/sCHJ2HP3o3cxIJWeTGqTYDYOtgzS7Hlcpmz1hBftKTc.cache +0 -0
- data/test/rails602/tmp/development_secret.txt +1 -0
- data/test/route_downcaser_test.rb +47 -53
- data/test/test_helper.rb +6 -6
- metadata +127 -5
- data/lib/route_downcaser/original_downcase_route_middleware.rb +0 -83
@@ -0,0 +1 @@
|
|
1
|
+
"%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
|
@@ -0,0 +1 @@
|
|
1
|
+
I"}app/assets/stylesheets/application.css?type=text/css&id=b750ccd6ed16272ae4ff2f55017497d48f37afa42196ed0b9336b0b9da21331d:ET
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TTF
|
@@ -0,0 +1 @@
|
|
1
|
+
"%��%���?�a>6�(��8���ϥ>j�aUz
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=5f9ddaba0c2138681b88a600b6be6b2cbd38f2569cc0455d738f95947c90934f:ET
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
d4d03fd364fe80fc1bc74f90260bbc653afe062259d0f5febdb8624b956169c32b53eab87fa321d383e7d615ee04e434f4221240d6e116e15c005f5a0a54a923
|
@@ -2,14 +2,12 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class MyMockApp
|
4
4
|
def call(env)
|
5
|
-
raise
|
5
|
+
raise 'Env nil' if env.blank?
|
6
6
|
@env = env.clone
|
7
|
-
return @env
|
8
|
-
end
|
9
|
-
|
10
|
-
def env
|
11
7
|
@env
|
12
8
|
end
|
9
|
+
|
10
|
+
attr_reader :env
|
13
11
|
end
|
14
12
|
|
15
13
|
class RouteDowncaserTest < ActiveSupport::TestCase
|
@@ -22,38 +20,37 @@ class RouteDowncaserTest < ActiveSupport::TestCase
|
|
22
20
|
end
|
23
21
|
end
|
24
22
|
|
25
|
-
test
|
26
|
-
callenv = { 'REQUEST_URI' =>
|
23
|
+
test 'REQUEST_URI path-part is downcased' do
|
24
|
+
callenv = { 'REQUEST_URI' => 'HELLO/WORLD', 'REQUEST_METHOD' => 'GET' }
|
27
25
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
28
|
-
assert_equal(
|
26
|
+
assert_equal('hello/world', @app.env['REQUEST_URI'])
|
29
27
|
end
|
30
28
|
|
31
|
-
test
|
32
|
-
callenv = { 'REQUEST_URI' =>
|
29
|
+
test 'REQUEST_URI querystring parameters are not touched' do
|
30
|
+
callenv = { 'REQUEST_URI' => 'HELLO/WORLD?FOO=BAR', 'REQUEST_METHOD' => 'GET' }
|
33
31
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
34
|
-
assert_equal(
|
32
|
+
assert_equal('hello/world?FOO=BAR', @app.env['REQUEST_URI'])
|
35
33
|
end
|
36
34
|
|
37
|
-
test
|
38
|
-
callenv = { 'REQUEST_URI' =>
|
35
|
+
test 'REQUEST_URI querystring parameters can contain ?' do
|
36
|
+
callenv = { 'REQUEST_URI' => 'HELLO/WORLD?FOO=BAR?BAZ=BING', 'REQUEST_METHOD' => 'GET' }
|
39
37
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
40
|
-
assert_equal(
|
38
|
+
assert_equal('hello/world?FOO=BAR?BAZ=BING', @app.env['REQUEST_URI'])
|
41
39
|
end
|
42
40
|
|
43
|
-
test
|
44
|
-
callenv = { 'PATH_INFO' =>
|
41
|
+
test 'entire PATH_INFO is downcased' do
|
42
|
+
callenv = { 'PATH_INFO' => 'HELLO/WORLD', 'REQUEST_METHOD' => 'GET' }
|
45
43
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
46
|
-
assert_equal(
|
44
|
+
assert_equal('hello/world', @app.env['PATH_INFO'])
|
47
45
|
end
|
48
46
|
|
49
|
-
test
|
50
|
-
callenv = { 'PATH_INFO' =>
|
47
|
+
test 'the call environment should always be returned' do
|
48
|
+
callenv = { 'PATH_INFO' => 'HELLO/WORLD', 'REQUEST_METHOD' => 'GET' }
|
51
49
|
retval = RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
52
|
-
assert_equal({ 'PATH_INFO' =>
|
50
|
+
assert_equal({ 'PATH_INFO' => 'hello/world', 'REQUEST_METHOD' => 'GET' }, retval)
|
53
51
|
end
|
54
52
|
end
|
55
53
|
|
56
|
-
|
57
54
|
class ExcludePatternsTests < ActiveSupport::TestCase
|
58
55
|
setup do
|
59
56
|
@app = MyMockApp.new
|
@@ -63,26 +60,25 @@ class RouteDowncaserTest < ActiveSupport::TestCase
|
|
63
60
|
end
|
64
61
|
end
|
65
62
|
|
66
|
-
test
|
67
|
-
callenv = { 'PATH_INFO' =>
|
63
|
+
test 'when PATH_INFO is found in exclude_patterns, do nothing' do
|
64
|
+
callenv = { 'PATH_INFO' => 'ASSETS/IMAges/SpaceCat.jpeg', 'REQUEST_METHOD' => 'GET' }
|
68
65
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
69
|
-
assert_equal(
|
66
|
+
assert_equal('ASSETS/IMAges/SpaceCat.jpeg', @app.env['PATH_INFO'])
|
70
67
|
end
|
71
68
|
|
72
|
-
test
|
73
|
-
callenv = { 'REQUEST_URI' =>
|
69
|
+
test 'when REQUEST_URI is found in exclude_patterns, do nothing' do
|
70
|
+
callenv = { 'REQUEST_URI' => 'ASSETS/IMAges/SpaceCat.jpeg', 'REQUEST_METHOD' => 'GET' }
|
74
71
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
75
|
-
assert_equal(
|
72
|
+
assert_equal('ASSETS/IMAges/SpaceCat.jpeg', @app.env['REQUEST_URI'])
|
76
73
|
end
|
77
74
|
|
78
|
-
test
|
79
|
-
callenv = { 'REQUEST_URI' =>
|
75
|
+
test 'the call environment should always be returned' do
|
76
|
+
callenv = { 'REQUEST_URI' => 'ASSETS/IMAges/SpaceCat.jpeg', 'REQUEST_METHOD' => 'GET' }
|
80
77
|
retval = RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
81
78
|
assert_equal(callenv, retval)
|
82
79
|
end
|
83
80
|
end
|
84
81
|
|
85
|
-
|
86
82
|
class RedirectTrueTests < ActiveSupport::TestCase
|
87
83
|
setup do
|
88
84
|
@app = MyMockApp.new
|
@@ -92,24 +88,23 @@ class RouteDowncaserTest < ActiveSupport::TestCase
|
|
92
88
|
end
|
93
89
|
end
|
94
90
|
|
95
|
-
test
|
96
|
-
callenv = { 'REQUEST_URI' =>
|
91
|
+
test 'when redirect is true it redirects REQUEST_URI' do
|
92
|
+
callenv = { 'REQUEST_URI' => 'HELLO/WORLD', 'REQUEST_METHOD' => 'GET' }
|
97
93
|
assert_equal(
|
98
|
-
[301, {'Location' =>
|
94
|
+
[301, { 'Location' => 'hello/world', 'Content-Type' => 'text/html' }, []],
|
99
95
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
100
96
|
)
|
101
97
|
end
|
102
98
|
|
103
|
-
test
|
104
|
-
callenv = { 'PATH_INFO' =>
|
99
|
+
test 'when redirect is true it redirects PATH_INFO' do
|
100
|
+
callenv = { 'PATH_INFO' => 'HELLO/WORLD', 'REQUEST_METHOD' => 'GET' }
|
105
101
|
assert_equal(
|
106
|
-
[301, {'Location' =>
|
102
|
+
[301, { 'Location' => 'hello/world', 'Content-Type' => 'text/html' }, []],
|
107
103
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
108
104
|
)
|
109
105
|
end
|
110
106
|
end
|
111
107
|
|
112
|
-
|
113
108
|
class RedirectTrueExcludePatternsTests < ActiveSupport::TestCase
|
114
109
|
setup do
|
115
110
|
@app = MyMockApp.new
|
@@ -119,20 +114,19 @@ class RouteDowncaserTest < ActiveSupport::TestCase
|
|
119
114
|
end
|
120
115
|
end
|
121
116
|
|
122
|
-
test
|
123
|
-
callenv = { 'REQUEST_URI' =>
|
117
|
+
test 'when redirect is true it does not redirect, if REQUEST_URI match exclude patterns' do
|
118
|
+
callenv = { 'REQUEST_URI' => 'fonts/Icons.woff', 'REQUEST_METHOD' => 'GET' }
|
124
119
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
125
|
-
assert_equal(
|
120
|
+
assert_equal('fonts/Icons.woff', @app.env['REQUEST_URI'])
|
126
121
|
end
|
127
122
|
|
128
|
-
test
|
129
|
-
callenv = { 'PATH_INFO' =>
|
123
|
+
test 'when redirect is true it does not redirect, if PATH_INFO match exclude patterns' do
|
124
|
+
callenv = { 'PATH_INFO' => 'fonts/Icons.woff', 'REQUEST_METHOD' => 'GET' }
|
130
125
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
131
|
-
assert_equal(
|
126
|
+
assert_equal('fonts/Icons.woff', @app.env['PATH_INFO'])
|
132
127
|
end
|
133
128
|
end
|
134
129
|
|
135
|
-
|
136
130
|
class MultibyteTests < ActiveSupport::TestCase
|
137
131
|
setup do
|
138
132
|
@app = MyMockApp.new
|
@@ -142,22 +136,22 @@ class RouteDowncaserTest < ActiveSupport::TestCase
|
|
142
136
|
end
|
143
137
|
end
|
144
138
|
|
145
|
-
test
|
146
|
-
callenv = { 'REQUEST_URI' =>
|
139
|
+
test 'Multibyte REQUEST_URI path-part is downcased' do
|
140
|
+
callenv = { 'REQUEST_URI' => 'ШУРШАЩАЯ ЗМЕЯ', 'REQUEST_METHOD' => 'GET' }
|
147
141
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
148
|
-
assert_equal(
|
142
|
+
assert_equal('шуршащая змея', @app.env['REQUEST_URI'])
|
149
143
|
end
|
150
144
|
|
151
|
-
test
|
152
|
-
callenv = { 'PATH_INFO' =>
|
145
|
+
test 'Multibyte PATH_INFO is downcased' do
|
146
|
+
callenv = { 'PATH_INFO' => 'ВЕЛОСИПЕД', 'REQUEST_METHOD' => 'GET' }
|
153
147
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
154
|
-
assert_equal(
|
148
|
+
assert_equal('велосипед', @app.env['PATH_INFO'])
|
155
149
|
end
|
156
150
|
|
157
|
-
test
|
158
|
-
callenv = { 'REQUEST_URI' =>
|
151
|
+
test 'Additional multibyte downcase tests' do
|
152
|
+
callenv = { 'REQUEST_URI' => 'ПИВО', 'REQUEST_METHOD' => 'GET' }
|
159
153
|
RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
|
160
|
-
assert_equal(
|
154
|
+
assert_equal('пиво', @app.env['REQUEST_URI'])
|
161
155
|
end
|
162
156
|
end
|
163
157
|
|
data/test/test_helper.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
require
|
1
|
+
require 'simplecov'
|
2
2
|
SimpleCov.start
|
3
3
|
|
4
4
|
# Configure Rails Environment
|
5
|
-
ENV[
|
5
|
+
ENV['RAILS_ENV'] = 'test'
|
6
6
|
|
7
|
-
#require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
8
|
-
require File.expand_path(
|
9
|
-
require
|
7
|
+
# require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
8
|
+
require File.expand_path('../rails421/config/environment.rb', __FILE__)
|
9
|
+
require 'rails/test_help'
|
10
10
|
|
11
11
|
Rails.backtrace_cleaner.remove_silencers!
|
12
12
|
|
@@ -15,5 +15,5 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
|
15
15
|
|
16
16
|
# Load fixtures from the engine
|
17
17
|
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
18
|
-
ActiveSupport::TestCase.fixture_path = File.expand_path(
|
18
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
|
19
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: route_downcaser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Gehling
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -39,12 +39,12 @@ files:
|
|
39
39
|
- lib/route_downcaser.rb
|
40
40
|
- lib/route_downcaser/configuration.rb
|
41
41
|
- lib/route_downcaser/downcase_route_middleware.rb
|
42
|
-
- lib/route_downcaser/original_downcase_route_middleware.rb
|
43
42
|
- lib/route_downcaser/railtie.rb
|
44
43
|
- lib/route_downcaser/version.rb
|
45
44
|
- lib/tasks/route_downcaser_tasks.rake
|
46
45
|
- test/integration/route_middleware_test.rb
|
47
46
|
- test/rails421/Rakefile
|
47
|
+
- test/rails421/app/assets/config/manifest.js
|
48
48
|
- test/rails421/app/assets/javascripts/application.js
|
49
49
|
- test/rails421/app/assets/stylesheets/application.css
|
50
50
|
- test/rails421/app/controllers/application_controller.rb
|
@@ -158,6 +158,67 @@ files:
|
|
158
158
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/xu/xuHg3Ok3I6Ioa8MvbTYwIrYE_ECmwnU6iG9oIqi9Kw0.cache
|
159
159
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/y3/y397xgx0zBU7JiqxnZxg555Z1CcnrG1svhgwJvZA6Fs.cache
|
160
160
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache
|
161
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/0p/0pLW5uAkYcVMn-L1f008s8QG400BA-CGnjEUCaGLgwA.cache
|
162
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/1E/1Eq7urfYMOFFaH2_2qtEtAzItryBST0NWI8LjG7_8AY.cache
|
163
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/1t/1tj8wAl_ygkeV4rjgm17Yabg53-rR_pkntyJe1pnStk.cache
|
164
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/21/21O83OBXXXSWrKD2yP5QfOt5GdsGKcUvdkHuxGVDCq0.cache
|
165
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/2V/2VVsM_aqLieq8REU3CAcwO12z7nTUOMDaOG8mfPTlDc.cache
|
166
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache
|
167
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache
|
168
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/7A/7AfJBOCTRna7lhBueluC9znK0PVnN3Z0wUaxOqGL_A4.cache
|
169
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/9B/9BuTfVVX9s_SyGNUVwTAliEfEbBaBhN4h3UUAvmaO5w.cache
|
170
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/9G/9GSHOjw505wesb6iaMzEVqLjrV7bDI8N8MnO892fjkY.cache
|
171
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/9I/9IPM2vWQgQR4xfKHMKObDvNQpOackOP1Hhf3-GMlZnA.cache
|
172
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/AD/ADMJimKJauAcBJIneLV5egsXBPBoCjbSP9kY6njR36I.cache
|
173
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/AH/AHbfhhP0cTEOs-1EBUNUXXyeEHxgK0boxQfplICtNiA.cache
|
174
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/B5/B5enM7rLQGpvU7rBc2Zu3cO-5FhDDj0_nCVJWZvjX7s.cache
|
175
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/C5/C5PnkMgUphtk9ABTF6z2KS4sHgpENn8GBLoy-i3E3wo.cache
|
176
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/CQ/CQ_GqCyDnwt2tUBwsxP1dZHI65ufI-hB9MQ3y1--m9Q.cache
|
177
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache
|
178
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Fy/FyhhzuND_ItWUB5CEJ3iyuY40AgIG84NRv4zu9Timps.cache
|
179
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/H-/H-Xq75Ky6CJKbSHsls6b1RlUhAZsCvAsQBp1hEo4SQE.cache
|
180
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/JD/JDzlonPoUacVM5xof3d6jVjmE61rJg-Om9N6lYAo7ZI.cache
|
181
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache
|
182
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/KD/KDZ5JOyifGKCzqVzvh51rBn4-z2waWNs3-ied97ntvk.cache
|
183
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/KL/KLfhFc73IoPAgk4UqkkweYC0d9WoWDsdFt6tvPk-sH4.cache
|
184
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Lr/Lr-IyGH4TR4pHCYggxyAjgjEdL2fA8HQm_WdYfSqivs.cache
|
185
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/MP/MPkUdTQ18IIRCAqCDpPHC_aLe9EvuxF2rCs0Zi7ormg.cache
|
186
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Mk/MkHnY3zJtJQlrbU7VsPIbKzhVht8Kh-jfEbTilENQgA.cache
|
187
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/NS/NSoASzvu62nmDpGMHQrHaDmhnAtsI4vc8886q8304tk.cache
|
188
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Od/Odde9BXdsuh0jKZhRr4e_mzWgRviGF2hraOo-CBT2Uc.cache
|
189
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache
|
190
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/UJ/UJ9oV8YAQYl3QXld841M9Q8GDChRm4hq-p_-ub-8Mnw.cache
|
191
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Vi/ViNv05i6eMoI4yhVXbPOdOe8uxRNvkjNSYoK5OS99Dw.cache
|
192
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache
|
193
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Ys/Ys273n5EbMBrlmQ8NS6qFULe7v3P3HsMJ-7AKvcpUVQ.cache
|
194
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/bB/bBjLJM-5v5XvzSjbmk6765v1o0j-26cy2yuTD1KXkl0.cache
|
195
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/iG/iGXSyXK76m1vZahJipVHsBeSuq9a02pimNfRGul6UyE.cache
|
196
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/jZ/jZck37TJYp10fX7dzwjF6k7-gPhmNdzB5PWayl2lSRQ.cache
|
197
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache
|
198
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/kh/khKGwmTZNJ3bMZIUHcaMzBFC8ORvLIMmSF735G5h5JA.cache
|
199
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache
|
200
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p0AgQcqeMod0Q93wM6Lm_wksgSixervifjXcfre3UNg.cache
|
201
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/tN/tNMYFw0s6bpMU4Rph9cmm8M-3G0ZCkojT-JjMxvXY5c.cache
|
202
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/uc/ucpiLQJan6bNoAklPDQXEwdgbK9N_iHcEdcUK3sXfi8.cache
|
203
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/uw/uw7uS6ON94iLO0V-uIz9HG08EtTXbCsegAx2rsW8ZZw.cache
|
204
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/v7/v79_HLVOJ_bTUgdWPb3KnIe1Ob_60Lytir4WusrWpQg.cache
|
205
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/wr/wrx3kO_wdP5NwpV8WnIPmG6582mk1yXcAYXwZECzF1c.cache
|
206
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/xs/xsXpTMvclkmE9PUtRWGU4l13KsXsf143bqyVpBHalvE.cache
|
207
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/z5/z5kOnAPBYWOw-zvMXDeGE_yVaZZoO9assTdxLAezanE.cache
|
208
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/zi/zi3iTvVQF4pcw9u3GU9UJ6mttFr7TO49bUhRb-pA7sc.cache
|
209
|
+
- test/rails602/Gemfile.lock
|
210
|
+
- test/rails602/log/development.log
|
211
|
+
- test/rails602/log/test.log
|
212
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/0a/0akXyz-RvD7ECckO9hP1DJxTo5DmWnfdLxYT8v6iBB0.cache
|
213
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/1G/1GDNz0WzrvjCbDFhKGTRB4SqMCVxSD35_Xf7FM-xGyA.cache
|
214
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/8A/8Aj0qbTT_8xMiQdT4ay1288JA7cIiscUWqD8v8AhrSo.cache
|
215
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache
|
216
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/A9/A90cbULL8Hfbsv-9YOrxkplqpjR3vMl94Ty3mNaytyg.cache
|
217
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache
|
218
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/Qw/QwqNC1B79H6PvmagB1AGJO9I9qeFBpiit-qXaOCDjp8.cache
|
219
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/lX/lXQ4hYUaxBbrnZMkw-u9ScABwdSoG7c63G01rUy4FLg.cache
|
220
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/sC/sCHJ2HP3o3cxIJWeTGqTYDYOtgzS7Hlcpmz1hBftKTc.cache
|
221
|
+
- test/rails602/tmp/development_secret.txt
|
161
222
|
- test/route_downcaser_test.rb
|
162
223
|
- test/test_helper.rb
|
163
224
|
homepage: https://github.com/carstengehling/route_downcaser
|
@@ -179,8 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
240
|
- !ruby/object:Gem::Version
|
180
241
|
version: '0'
|
181
242
|
requirements: []
|
182
|
-
|
183
|
-
rubygems_version: 2.6.14
|
243
|
+
rubygems_version: 3.0.6
|
184
244
|
signing_key:
|
185
245
|
specification_version: 4
|
186
246
|
summary: Makes routing in Rails case-insensitive
|
@@ -189,6 +249,7 @@ test_files:
|
|
189
249
|
- test/rails421/app/controllers/application_controller.rb
|
190
250
|
- test/rails421/app/controllers/hello_controller.rb
|
191
251
|
- test/rails421/app/views/layouts/application.html.erb
|
252
|
+
- test/rails421/app/assets/config/manifest.js
|
192
253
|
- test/rails421/app/assets/javascripts/application.js
|
193
254
|
- test/rails421/app/assets/stylesheets/application.css
|
194
255
|
- test/rails421/app/helpers/application_helper.rb
|
@@ -222,6 +283,54 @@ test_files:
|
|
222
283
|
- test/rails421/public/404.html
|
223
284
|
- test/rails421/public/robots.txt
|
224
285
|
- test/rails421/log/test.log
|
286
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache
|
287
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/9B/9BuTfVVX9s_SyGNUVwTAliEfEbBaBhN4h3UUAvmaO5w.cache
|
288
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache
|
289
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache
|
290
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/z5/z5kOnAPBYWOw-zvMXDeGE_yVaZZoO9assTdxLAezanE.cache
|
291
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/v7/v79_HLVOJ_bTUgdWPb3KnIe1Ob_60Lytir4WusrWpQg.cache
|
292
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Vi/ViNv05i6eMoI4yhVXbPOdOe8uxRNvkjNSYoK5OS99Dw.cache
|
293
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/0p/0pLW5uAkYcVMn-L1f008s8QG400BA-CGnjEUCaGLgwA.cache
|
294
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/KD/KDZ5JOyifGKCzqVzvh51rBn4-z2waWNs3-ied97ntvk.cache
|
295
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/B5/B5enM7rLQGpvU7rBc2Zu3cO-5FhDDj0_nCVJWZvjX7s.cache
|
296
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/AD/ADMJimKJauAcBJIneLV5egsXBPBoCjbSP9kY6njR36I.cache
|
297
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/bB/bBjLJM-5v5XvzSjbmk6765v1o0j-26cy2yuTD1KXkl0.cache
|
298
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/NS/NSoASzvu62nmDpGMHQrHaDmhnAtsI4vc8886q8304tk.cache
|
299
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/KL/KLfhFc73IoPAgk4UqkkweYC0d9WoWDsdFt6tvPk-sH4.cache
|
300
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/jZ/jZck37TJYp10fX7dzwjF6k7-gPhmNdzB5PWayl2lSRQ.cache
|
301
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache
|
302
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache
|
303
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache
|
304
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/iG/iGXSyXK76m1vZahJipVHsBeSuq9a02pimNfRGul6UyE.cache
|
305
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Od/Odde9BXdsuh0jKZhRr4e_mzWgRviGF2hraOo-CBT2Uc.cache
|
306
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Fy/FyhhzuND_ItWUB5CEJ3iyuY40AgIG84NRv4zu9Timps.cache
|
307
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/1t/1tj8wAl_ygkeV4rjgm17Yabg53-rR_pkntyJe1pnStk.cache
|
308
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache
|
309
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/21/21O83OBXXXSWrKD2yP5QfOt5GdsGKcUvdkHuxGVDCq0.cache
|
310
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/xs/xsXpTMvclkmE9PUtRWGU4l13KsXsf143bqyVpBHalvE.cache
|
311
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/UJ/UJ9oV8YAQYl3QXld841M9Q8GDChRm4hq-p_-ub-8Mnw.cache
|
312
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p0AgQcqeMod0Q93wM6Lm_wksgSixervifjXcfre3UNg.cache
|
313
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache
|
314
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/zi/zi3iTvVQF4pcw9u3GU9UJ6mttFr7TO49bUhRb-pA7sc.cache
|
315
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/uc/ucpiLQJan6bNoAklPDQXEwdgbK9N_iHcEdcUK3sXfi8.cache
|
316
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Ys/Ys273n5EbMBrlmQ8NS6qFULe7v3P3HsMJ-7AKvcpUVQ.cache
|
317
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/9I/9IPM2vWQgQR4xfKHMKObDvNQpOackOP1Hhf3-GMlZnA.cache
|
318
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/9G/9GSHOjw505wesb6iaMzEVqLjrV7bDI8N8MnO892fjkY.cache
|
319
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/uw/uw7uS6ON94iLO0V-uIz9HG08EtTXbCsegAx2rsW8ZZw.cache
|
320
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Mk/MkHnY3zJtJQlrbU7VsPIbKzhVht8Kh-jfEbTilENQgA.cache
|
321
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/H-/H-Xq75Ky6CJKbSHsls6b1RlUhAZsCvAsQBp1hEo4SQE.cache
|
322
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/MP/MPkUdTQ18IIRCAqCDpPHC_aLe9EvuxF2rCs0Zi7ormg.cache
|
323
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/AH/AHbfhhP0cTEOs-1EBUNUXXyeEHxgK0boxQfplICtNiA.cache
|
324
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/kh/khKGwmTZNJ3bMZIUHcaMzBFC8ORvLIMmSF735G5h5JA.cache
|
325
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/CQ/CQ_GqCyDnwt2tUBwsxP1dZHI65ufI-hB9MQ3y1--m9Q.cache
|
326
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/Lr/Lr-IyGH4TR4pHCYggxyAjgjEdL2fA8HQm_WdYfSqivs.cache
|
327
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/C5/C5PnkMgUphtk9ABTF6z2KS4sHgpENn8GBLoy-i3E3wo.cache
|
328
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/JD/JDzlonPoUacVM5xof3d6jVjmE61rJg-Om9N6lYAo7ZI.cache
|
329
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/wr/wrx3kO_wdP5NwpV8WnIPmG6582mk1yXcAYXwZECzF1c.cache
|
330
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/1E/1Eq7urfYMOFFaH2_2qtEtAzItryBST0NWI8LjG7_8AY.cache
|
331
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/2V/2VVsM_aqLieq8REU3CAcwO12z7nTUOMDaOG8mfPTlDc.cache
|
332
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/tN/tNMYFw0s6bpMU4Rph9cmm8M-3G0ZCkojT-JjMxvXY5c.cache
|
333
|
+
- test/rails421/tmp/cache/assets/sprockets/v4.0.0/7A/7AfJBOCTRna7lhBueluC9znK0PVnN3Z0wUaxOqGL_A4.cache
|
225
334
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache
|
226
335
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/YY/YYg4F7MwALcoY2sRAE6hl0-2rtVq5V-9JixAGfbxLF0.cache
|
227
336
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache
|
@@ -300,5 +409,18 @@ test_files:
|
|
300
409
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/8b/8bGxiI7b1E3sXm_6Main4IVaCaNunTCJECvMivc6vao.cache
|
301
410
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/tn/tnnlCZmqi-M2TWOY6xMLnGBbKqxvkwkMHVJ8kHRBmik.cache
|
302
411
|
- test/rails421/tmp/cache/assets/sprockets/v3.0/7a/7aucnxDrWU2Wq9Gv2-MzRJ-TODqCU9XYtPF9yUAxzrA.cache
|
412
|
+
- test/rails602/log/test.log
|
413
|
+
- test/rails602/log/development.log
|
414
|
+
- test/rails602/Gemfile.lock
|
415
|
+
- test/rails602/tmp/development_secret.txt
|
416
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/sC/sCHJ2HP3o3cxIJWeTGqTYDYOtgzS7Hlcpmz1hBftKTc.cache
|
417
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache
|
418
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/lX/lXQ4hYUaxBbrnZMkw-u9ScABwdSoG7c63G01rUy4FLg.cache
|
419
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/8A/8Aj0qbTT_8xMiQdT4ay1288JA7cIiscUWqD8v8AhrSo.cache
|
420
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/1G/1GDNz0WzrvjCbDFhKGTRB4SqMCVxSD35_Xf7FM-xGyA.cache
|
421
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache
|
422
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/0a/0akXyz-RvD7ECckO9hP1DJxTo5DmWnfdLxYT8v6iBB0.cache
|
423
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/A9/A90cbULL8Hfbsv-9YOrxkplqpjR3vMl94Ty3mNaytyg.cache
|
424
|
+
- test/rails602/tmp/cache/assets/sprockets/v4.0.0/Qw/QwqNC1B79H6PvmagB1AGJO9I9qeFBpiit-qXaOCDjp8.cache
|
303
425
|
- test/route_downcaser_test.rb
|
304
426
|
- test/test_helper.rb
|
@@ -1,83 +0,0 @@
|
|
1
|
-
module RouteDowncaser
|
2
|
-
class OriginalDowncaseRouteMiddleware
|
3
|
-
def initialize(app)
|
4
|
-
@app = app
|
5
|
-
end
|
6
|
-
|
7
|
-
def call(env)
|
8
|
-
dup._call(env)
|
9
|
-
end
|
10
|
-
|
11
|
-
def _call(env)
|
12
|
-
request_uri = env['REQUEST_URI']
|
13
|
-
path_info = env['PATH_INFO']
|
14
|
-
|
15
|
-
# Don't touch anything, if uri/path is part of exclude_patterns
|
16
|
-
return @app.call(env) if excluded?([request_uri, path_info])
|
17
|
-
|
18
|
-
# Downcase request_uri and/or path_info if applicable
|
19
|
-
request_uri = downcased_uri(request_uri)
|
20
|
-
path_info = downcased_uri(path_info)
|
21
|
-
|
22
|
-
# If redirect configured, then return redirect request,
|
23
|
-
# if either request_uri or path_info has changed
|
24
|
-
if RouteDowncaser.redirect && env['REQUEST_METHOD'] == 'GET'
|
25
|
-
if request_uri.present? && request_uri != env['REQUEST_URI']
|
26
|
-
return redirect_header(request_uri)
|
27
|
-
end
|
28
|
-
|
29
|
-
if path_info.present? && path_info != env['PATH_INFO']
|
30
|
-
return redirect_header(path_info)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
env['PATH_INFO'] = path_info.to_s if path_info
|
35
|
-
env['REQUEST_URI'] = request_uri.to_s if request_uri
|
36
|
-
|
37
|
-
# Default just move to next chain in Rack callstack
|
38
|
-
# calling with downcased uri if needed
|
39
|
-
@app.call(env)
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
def exclude_patterns_match?(uri)
|
45
|
-
uri.match(Regexp.union(RouteDowncaser.exclude_patterns)) if uri && RouteDowncaser.exclude_patterns
|
46
|
-
end
|
47
|
-
|
48
|
-
def excluded?(paths)
|
49
|
-
paths.any? do |path|
|
50
|
-
exclude_patterns_match?(path)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def downcased_uri(uri)
|
55
|
-
return nil unless uri.present?
|
56
|
-
if has_querystring?(uri)
|
57
|
-
"#{path(uri).mb_chars.downcase}?#{querystring(uri)}"
|
58
|
-
else
|
59
|
-
path(uri).mb_chars.downcase
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def path(uri)
|
64
|
-
uri_items(uri).first
|
65
|
-
end
|
66
|
-
|
67
|
-
def querystring(uri)
|
68
|
-
uri_items(uri).last
|
69
|
-
end
|
70
|
-
|
71
|
-
def has_querystring?(uri)
|
72
|
-
uri_items(uri).length > 1
|
73
|
-
end
|
74
|
-
|
75
|
-
def uri_items(uri)
|
76
|
-
uri.split('?')
|
77
|
-
end
|
78
|
-
|
79
|
-
def redirect_header(uri)
|
80
|
-
[301, { 'Location' => uri, 'Content-Type' => 'text/html' }, []]
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|