route_downcaser 1.2.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.rdoc +4 -4
- data/Rakefile +17 -19
- data/lib/route_downcaser/configuration.rb +19 -16
- data/lib/route_downcaser/downcase_route_middleware.rb +29 -29
- data/lib/route_downcaser/railtie.rb +2 -0
- data/lib/route_downcaser/version.rb +3 -1
- data/lib/route_downcaser.rb +6 -4
- data/lib/tasks/route_downcaser_tasks.rake +1 -0
- metadata +24 -245
- data/lib/route_downcaser/original_downcase_route_middleware.rb +0 -83
- data/test/integration/route_middleware_test.rb +0 -55
- data/test/rails421/Rakefile +0 -6
- data/test/rails421/app/assets/javascripts/application.js +0 -5
- data/test/rails421/app/assets/stylesheets/application.css +0 -15
- data/test/rails421/app/controllers/application_controller.rb +0 -5
- data/test/rails421/app/controllers/hello_controller.rb +0 -5
- data/test/rails421/app/helpers/application_helper.rb +0 -2
- data/test/rails421/app/views/layouts/application.html.erb +0 -14
- data/test/rails421/bin/bundle +0 -3
- data/test/rails421/bin/rails +0 -8
- data/test/rails421/bin/rake +0 -8
- data/test/rails421/bin/setup +0 -29
- data/test/rails421/bin/spring +0 -15
- data/test/rails421/config/application.rb +0 -29
- data/test/rails421/config/boot.rb +0 -3
- data/test/rails421/config/environment.rb +0 -5
- data/test/rails421/config/environments/development.rb +0 -41
- data/test/rails421/config/environments/production.rb +0 -79
- data/test/rails421/config/environments/test.rb +0 -42
- data/test/rails421/config/initializers/assets.rb +0 -11
- data/test/rails421/config/initializers/backtrace_silencers.rb +0 -7
- data/test/rails421/config/initializers/cookies_serializer.rb +0 -3
- data/test/rails421/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/rails421/config/initializers/inflections.rb +0 -16
- data/test/rails421/config/initializers/mime_types.rb +0 -4
- data/test/rails421/config/initializers/session_store.rb +0 -3
- data/test/rails421/config/initializers/wrap_parameters.rb +0 -14
- data/test/rails421/config/locales/en.yml +0 -23
- data/test/rails421/config/routes.rb +0 -59
- data/test/rails421/config/secrets.yml +0 -22
- data/test/rails421/config.ru +0 -4
- data/test/rails421/log/test.log +0 -1048
- data/test/rails421/public/404.html +0 -67
- data/test/rails421/public/422.html +0 -67
- data/test/rails421/public/500.html +0 -66
- data/test/rails421/public/favicon.ico +0 -0
- data/test/rails421/public/robots.txt +0 -5
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/-B/-Bgmyr63R89_vIyXN9mCNapfDXapBpDRck9XmKhL5CA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/-W/-WQ3FNnhW7tLBOxo4aGnRb2Fve0zgOnoMYj6wqTNkbM.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/0E/0EDP1-KVZYBKHTAmflqiPVViMAVEG0SC-kK_5oEVZn0.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/0g/0gWM2CTzhg2x8y4_UP-Py0W4B9A-zr06u8OBmue8X1k.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/3O/3OqO1F9b_ZzzrtlAoCMgvevQgZnwcUOgeLR8rv3IEic.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/4r/4rAedh6S2USq6-0-HuB_CCVHHLcpx52AIjXhD_2ZBGg.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/5C/5CT_8kIrhxIJ83JBc79GdAhqzTv5yYzmjQTu_6ALk50.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/5J/5Jhq8lUXayqrSHgYM1Q5MHGn-TiHuMjRmK_XV4M3UyI.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/5t/5tiqCRpLfxs-Y6ybOzuDwipvuUFossP-XvncvDt1beA.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/7a/7aucnxDrWU2Wq9Gv2-MzRJ-TODqCU9XYtPF9yUAxzrA.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/7j/7jspo8CcT9uFS4H8PqxscgE3AlgXB7pTQyQIhMJPVg0.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/8b/8bGxiI7b1E3sXm_6Main4IVaCaNunTCJECvMivc6vao.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/91/91xRePltaCv1RzwqjVg8J1eDPpMSQzAP2xE0NfHN790.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ag/AgHzzOWYl7FCzWVoy3hK75zrV0K8Fb-_06edGSVp2Ow.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cf/CflQs9dwKZXgCIWoyonGUgbz8uPXLgmyP_FlcJScD7o.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cg/CgOhJxWpn75PUgDhTSfe1qt0yvhVyPToVq13nv5zuZQ.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/FV/FV8nUPacNnUiza7kOCqckUSyEGBdphbSPSuZtJUy8tE.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/GP/GPlQQXNQ-w_dTZRfo4-FYNUzSGE1cEKrXjS7crmzVG0.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ig/Igg0gxUZFtM3hQ7W6dbvFXdZpIbV6tOiVPR2vEmQYXI.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jg/Jgz4YtR2FGBSwxB6thNOJDk7klfksp2yQy2XkBjht4g.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ki/KiL7BwSVbz_z5w4y93R2R4LCkyj0b19GujTz6XIiarY.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/LU/LUAozPg7QdzK21QBqXW25-a5gN_7zLRAqQSupvkblSg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ln/LnFnKRPLxutlTQ7fOvRsapfgXEw5btGpLwFPbpRzRlM.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ls/LsZJopR7cTyB7JsVfz5aSomahT3jHGL6Pa2CICmFoQg.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/PK/PKl6w1pmCXwfusuCnKunu1GYOTLNPwF7_K8p3ytcTgg.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pi/PitG24Ap6XHTl1N62RP6JfNqaWJFxaUoe59hR-YXKPE.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pm/PmYoMk9-uw3hPLN-bvhDGLKg6cTarLI8BYk3DhheO1k.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/V4/V440s0_NvNOTLoVbZrUe2eeHjF7uUg4OPlf9swcXXDA.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/WS/WSBIVButxIEVKNZe-7Nc4vJqenDzrMKArSNbIy7H8Cs.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/YY/YYg4F7MwALcoY2sRAE6hl0-2rtVq5V-9JixAGfbxLF0.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ZU/ZUn7d2k8KPMHyjjf6lnKTGwGfn2BO-IdyYXQ8wfkVIM.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/_n/_nYxMUNBMU9KjdTucuCyGutY4g7x8eJjbF9NwXdn1po.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/aW/aWW6yUInnVq44DuXVWtVU0Uu6MVqbDk_31S2NWl7K74.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ap/aprbFEg82SGajctPy-pfnM30hK8PtEZrmsgk9pgRHRk.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/cy/cy6FSlBMXEvsU2hDor-RFfO7au2LngZ3WqI2vqa1r8U.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/du/duFUmZ4ysy7RyIkeiWtvwe6BtTfBJhNMuO2oRfkfoVo.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ed/edkFBPusn0eAqYUpbC3hk4dVs45tYZg3w4p50PKPokk.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/fC/fCrT0zlSV767KPzO87GqdHMO_QsiEr19LLDZb0XFHfc.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/g3/g3DI9kbhIoXd-w_hDm4y5teEzaSmtyBGpP1zd-JWcek.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/g6/g6fovXx3tOX2i7BAnBDxcViTe4leaTm9Kkrfdl8wMQA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/go/gorAkyJ6oqUlHs8L907X6eA5ORKpX19iQIIz85e1Om4.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/hD/hDxUuofMAs4S7GXborJiutJawcnl4o2LNudaxNbN4ec.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/hQ/hQj6p2AFknE_MgYgHnwoPOe91PEUgpn6Z_FiuyaJ82k.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/hw/hwHQHMDHwgnbAp8O9R8o4Q5POdU6sxLG89slbhtkmEk.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/iH/iH1r3bm_cqwvpfoFfd5cI3E2iqgJtmIed8lCZKieHx8.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/is/isbz3mXXlcEL2HMerIcSsLWpTN3D4lHiK2HOygFzss8.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/iw/iwUWP-Z82gbzpNgNohj70sxyUtc3xNWla6RKzVYItxg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/j9/j9dS7uGziRYgnlks5CDCYPt1e_REM0RIz9UpIgMKgdg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/jY/jYVt_HA9ZEkn6SDsjj7OSswwgRzN39gj7oCIcNhw6G4.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/kU/kUhgMRj0dXypOCVx0_3_wrOtw53hBixKcGLLqSxuw6w.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ni/niGBqsssmceju94eXn6eko8N-B_Wd_TfuVca3esL0PA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/oB/oBw4u1I-YHiDLfqGBonN5VMbTkmFJCA2IZIWABuZCZY.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/oN/oNYh-Q08FfdNyVFqXISNg8_l67G5FeBHokHp5greQLo.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/pR/pRAbQ3DoSMCVan9vdc4o6gLmg2MfGWD_yjv6SwBjomc.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/pS/pSRyIy0fylBzoBIXuPbSt6NPfrO26fTTJ91cnBiYV5c.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/qy/qy5ffSUvVTPRKpXNBphBzko8sGj8Ce4dDXBu8rCvA_k.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/rj/rj9TDm5Ag9No-NQsnf_1jVYYLtMtHzwzJz0DBSS0JA0.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/sk/skD9Azvu31NegSi2oQtxsOd9ghnyKi7-4FHq4WwvWtE.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/SnvXlg8cBOz55_kauZGh-V4IC5Zauq8JVhOlzJ02iSU.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/snbk_vUdpRIi6RfNIaIjl1NOO3pWiCe6KFWZ30k1XL8.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/tn/tnnlCZmqi-M2TWOY6xMLnGBbKqxvkwkMHVJ8kHRBmik.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/u1/u1WQc8AMAiOmt_v_5_2yi3XbEaUf9yC4itiSk53jRGg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/uH/uH1B6_PPjBQ_4l8KBo3b9ewINago1_K8JKjG1w0YKH4.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/v5/v56pz21chnsTcHF9GlXTNEdYxkn5O1M9WyIVgb17pzo.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/vS/vSW7CsUHjw-gbleWbQODWkGxCP7xL776KWz12vIsn5U.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/vm/vm9hQSEhxR6wE0cFbLeqVjYZax2SwNkord1DCAzA2xg.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/wi/wiOYNLAxWSE-RcUp0e8yyvwlXcrlSD3c8Hf_9mLum00.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/xu/xuHg3Ok3I6Ioa8MvbTYwIrYE_ECmwnU6iG9oIqi9Kw0.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/y3/y397xgx0zBU7JiqxnZxg555Z1CcnrG1svhgwJvZA6Fs.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache +0 -0
- data/test/route_downcaser_test.rb +0 -195
- data/test/test_helper.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0e8631f4a49f8535fa5447c8f7cd6cf559f0815db563275206ff61545d794c7f
|
4
|
+
data.tar.gz: 39668ddbeb37b4531d737db52f45abffd90154caf7d1b20cd7cef6fbf6aa1c64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 362a09827152918e502adc28ff921f1e3943605d8e2dc2de7ebba7f0ef996999f393927bd3e52a65e355a3231c0ec4a5e25c72362a45633b1784a55de452833f
|
7
|
+
data.tar.gz: 62f7e618aa30b3d012b467c40f8624d7bf9d2dfe15ec52d567cd18da0f46e836b8569d2c2fbdbb31d8a9181e6a7695320a90fc6d9846852843e9d83bc18a49f4
|
data/README.rdoc
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
= RouteDowncaser
|
2
2
|
|
3
|
-
{<img src="https://travis-ci.org/substancelab/route_downcaser.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/substancelab/route_downcaser] {<img src="https://codeclimate.com/github/substancelab/route_downcaser/badges/gpa.svg" />}[https://codeclimate.com/github/substancelab/route_downcaser]
|
4
|
-
|
5
3
|
Makes routing in Rails case-insensitive (and other Rack-servers like Sinatra)
|
6
4
|
|
7
5
|
This gem hooks into the Rack middleware of Rails. This way all paths are downcased before dispatching to Rails' routing mechanism. Querystring parameters and asset paths are not changed in any way.
|
8
6
|
|
9
7
|
== Requirements
|
10
8
|
|
11
|
-
This gem
|
9
|
+
This gem is tested with 5.2.x, 6.x, 7.x. It reportedly also works with Sinatra, although I do not use Sinatra myself. Sinatra test-cases will be most welcome.
|
10
|
+
|
11
|
+
It has previously worked - and I presume still works - in Rails 5.0.x and 5.1.x.
|
12
12
|
|
13
|
-
If you want this functionality in a Rails 2.x-3.0 application, please refer to {this blog post}[http://gehling.dk/2010/02/how-to-make-rails-routing-case-insensitive].
|
13
|
+
If you want this functionality in a Rails 2.x-3.0 application, please refer to {this blog post}[http://gehling.dk/2010/02/how-to-make-rails-routing-case-insensitive]. If you need it for Rails 3.1.x or 4.x version 1.2.2 should serve you just fine.
|
14
14
|
|
15
15
|
<b>Note:</b> from version 1.2.0, route_downcaser depends on ActiveSupport 3.2 or later. This was necessary to enable support for multibyte characters.
|
16
16
|
|
data/Rakefile
CHANGED
@@ -1,38 +1,36 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
begin
|
3
|
-
require
|
5
|
+
require "bundler/setup"
|
4
6
|
rescue LoadError
|
5
|
-
puts
|
7
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
6
8
|
end
|
7
9
|
begin
|
8
|
-
require
|
10
|
+
require "rdoc/task"
|
9
11
|
rescue LoadError
|
10
|
-
require
|
11
|
-
require
|
12
|
+
require "rdoc/rdoc"
|
13
|
+
require "rake/rdoctask"
|
12
14
|
RDoc::Task = Rake::RDocTask
|
13
15
|
end
|
14
16
|
|
15
17
|
RDoc::Task.new(:rdoc) do |rdoc|
|
16
|
-
rdoc.rdoc_dir =
|
17
|
-
rdoc.title
|
18
|
-
rdoc.options <<
|
19
|
-
rdoc.rdoc_files.include(
|
20
|
-
rdoc.rdoc_files.include(
|
18
|
+
rdoc.rdoc_dir = "rdoc"
|
19
|
+
rdoc.title = "RouteDowncaser"
|
20
|
+
rdoc.options << "--line-numbers"
|
21
|
+
rdoc.rdoc_files.include("README.rdoc")
|
22
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
21
23
|
end
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
25
|
Bundler::GemHelper.install_tasks
|
27
26
|
|
28
|
-
require
|
27
|
+
require "rake/testtask"
|
29
28
|
|
30
29
|
Rake::TestTask.new(:test) do |t|
|
31
|
-
t.libs <<
|
32
|
-
t.libs <<
|
33
|
-
t.pattern =
|
30
|
+
t.libs << "lib"
|
31
|
+
t.libs << "test"
|
32
|
+
t.pattern = "test/**/*_test.rb"
|
34
33
|
t.verbose = false
|
35
34
|
end
|
36
35
|
|
37
|
-
|
38
|
-
task :default => :test
|
36
|
+
task default: :test
|
@@ -1,26 +1,29 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
module RouteDowncaser
|
4
|
+
module Configuration
|
5
|
+
def configuration
|
6
|
+
yield self
|
7
|
+
end
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
+
def define_setting(name, default = nil)
|
10
|
+
class_variable_set("@@#{name}", default)
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
define_class_method "#{name}=" do |value|
|
13
|
+
class_variable_set("@@#{name}", value)
|
14
|
+
end
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
+
define_class_method name do
|
17
|
+
class_variable_get("@@#{name}")
|
18
|
+
end
|
16
19
|
end
|
17
|
-
end
|
18
20
|
|
19
|
-
|
21
|
+
private
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
|
23
|
+
def define_class_method(name, &block)
|
24
|
+
(class << self; self; end).instance_eval do
|
25
|
+
define_method name, &block
|
26
|
+
end
|
24
27
|
end
|
25
28
|
end
|
26
29
|
end
|
@@ -1,5 +1,8 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_support/core_ext/object/blank"
|
2
4
|
|
5
|
+
module RouteDowncaser
|
3
6
|
class DowncaseRouteMiddleware
|
4
7
|
def initialize(app)
|
5
8
|
@app = app
|
@@ -10,32 +13,21 @@ module RouteDowncaser
|
|
10
13
|
end
|
11
14
|
|
12
15
|
def _call(env)
|
13
|
-
|
14
|
-
path_info = env['PATH_INFO']
|
16
|
+
path_info = env["PATH_INFO"]
|
15
17
|
|
16
|
-
# Don't touch anything, if
|
17
|
-
if excluded?([
|
18
|
-
return @app.call(env)
|
19
|
-
end
|
18
|
+
# Don't touch anything, if path is part of exclude_patterns
|
19
|
+
return @app.call(env) if excluded?([path_info])
|
20
20
|
|
21
|
-
# Downcase
|
22
|
-
request_uri = downcased_uri(request_uri)
|
21
|
+
# Downcase path_info if applicable
|
23
22
|
path_info = downcased_uri(path_info)
|
24
23
|
|
25
|
-
# If redirect configured, then return redirect request,
|
26
|
-
#
|
27
|
-
if RouteDowncaser.redirect && env[
|
28
|
-
if
|
29
|
-
return redirect_header(request_uri)
|
30
|
-
end
|
31
|
-
|
32
|
-
if path_info.present? && path_info != env['PATH_INFO']
|
33
|
-
return redirect_header(path_info)
|
34
|
-
end
|
24
|
+
# If redirect configured, then return redirect request, if either
|
25
|
+
# path_info has changed
|
26
|
+
if RouteDowncaser.redirect && env["REQUEST_METHOD"] == "GET"
|
27
|
+
return redirect_header(path_info) if path_info.present? && path_info != env["PATH_INFO"]
|
35
28
|
end
|
36
29
|
|
37
|
-
env[
|
38
|
-
env['REQUEST_URI'] = request_uri.to_s if request_uri
|
30
|
+
env["PATH_INFO"] = path_info.to_s if path_info
|
39
31
|
|
40
32
|
# Default just move to next chain in Rack callstack
|
41
33
|
# calling with downcased uri if needed
|
@@ -45,24 +37,33 @@ module RouteDowncaser
|
|
45
37
|
private
|
46
38
|
|
47
39
|
def exclude_patterns_match?(uri)
|
48
|
-
uri.match(Regexp.union(RouteDowncaser.exclude_patterns)) if uri
|
40
|
+
uri.match(Regexp.union(RouteDowncaser.exclude_patterns)) if uri && RouteDowncaser.exclude_patterns
|
49
41
|
end
|
50
42
|
|
51
43
|
def excluded?(paths)
|
52
|
-
paths.any?
|
44
|
+
paths.any? do |path|
|
53
45
|
exclude_patterns_match?(path)
|
54
|
-
|
46
|
+
end
|
55
47
|
end
|
56
48
|
|
57
49
|
def downcased_uri(uri)
|
58
50
|
return nil unless uri.present?
|
51
|
+
|
59
52
|
if has_querystring?(uri)
|
60
|
-
"#{
|
53
|
+
"#{downcased_path(uri)}?#{querystring(uri)}"
|
61
54
|
else
|
62
|
-
|
55
|
+
downcased_path(uri)
|
63
56
|
end
|
64
57
|
end
|
65
58
|
|
59
|
+
def downcased_path(uri)
|
60
|
+
path(uri).split("/").map(&method(:downcase_path_segment)).join("/")
|
61
|
+
end
|
62
|
+
|
63
|
+
def downcase_path_segment(segment)
|
64
|
+
URI.encode_www_form_component(URI.decode_www_form_component(segment).downcase)
|
65
|
+
end
|
66
|
+
|
66
67
|
def path(uri)
|
67
68
|
uri_items(uri).first
|
68
69
|
end
|
@@ -76,12 +77,11 @@ module RouteDowncaser
|
|
76
77
|
end
|
77
78
|
|
78
79
|
def uri_items(uri)
|
79
|
-
uri.split(
|
80
|
+
uri.split("?", 2)
|
80
81
|
end
|
81
82
|
|
82
83
|
def redirect_header(uri)
|
83
|
-
[301, {
|
84
|
+
[301, {"Location" => uri.to_s, "Content-Type" => "text/html"}, []]
|
84
85
|
end
|
85
86
|
end
|
86
|
-
|
87
87
|
end
|
data/lib/route_downcaser.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "route_downcaser/downcase_route_middleware"
|
4
|
+
require "route_downcaser/railtie" if defined? Rails
|
5
|
+
require "route_downcaser/configuration"
|
4
6
|
|
5
7
|
module RouteDowncaser
|
6
8
|
extend RouteDowncaser::Configuration
|
7
9
|
|
8
10
|
define_setting :redirect, false
|
9
|
-
define_setting :exclude_patterns, [/
|
11
|
+
define_setting :exclude_patterns, [%r{assets/}i]
|
10
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: route_downcaser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Gehling
|
8
|
-
|
8
|
+
- Jakob Skjerning
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2023-12-01 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activesupport
|
@@ -24,11 +25,25 @@ dependencies:
|
|
24
25
|
- - ">="
|
25
26
|
- !ruby/object:Gem::Version
|
26
27
|
version: '3.2'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: standard
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
27
42
|
description: This gem hooks into the Rack middleware of Rails. This way all paths
|
28
43
|
are downcased before dispatching to Rails' routing mechanism. Querystring parameters
|
29
44
|
are not changed in any way.
|
30
45
|
email:
|
31
|
-
-
|
46
|
+
- jakob@substancelab.com
|
32
47
|
executables: []
|
33
48
|
extensions: []
|
34
49
|
extra_rdoc_files: []
|
@@ -39,132 +54,14 @@ files:
|
|
39
54
|
- lib/route_downcaser.rb
|
40
55
|
- lib/route_downcaser/configuration.rb
|
41
56
|
- lib/route_downcaser/downcase_route_middleware.rb
|
42
|
-
- lib/route_downcaser/original_downcase_route_middleware.rb
|
43
57
|
- lib/route_downcaser/railtie.rb
|
44
58
|
- lib/route_downcaser/version.rb
|
45
59
|
- lib/tasks/route_downcaser_tasks.rake
|
46
|
-
|
47
|
-
- test/rails421/Rakefile
|
48
|
-
- test/rails421/app/assets/javascripts/application.js
|
49
|
-
- test/rails421/app/assets/stylesheets/application.css
|
50
|
-
- test/rails421/app/controllers/application_controller.rb
|
51
|
-
- test/rails421/app/controllers/hello_controller.rb
|
52
|
-
- test/rails421/app/helpers/application_helper.rb
|
53
|
-
- test/rails421/app/views/layouts/application.html.erb
|
54
|
-
- test/rails421/bin/bundle
|
55
|
-
- test/rails421/bin/rails
|
56
|
-
- test/rails421/bin/rake
|
57
|
-
- test/rails421/bin/setup
|
58
|
-
- test/rails421/bin/spring
|
59
|
-
- test/rails421/config.ru
|
60
|
-
- test/rails421/config/application.rb
|
61
|
-
- test/rails421/config/boot.rb
|
62
|
-
- test/rails421/config/environment.rb
|
63
|
-
- test/rails421/config/environments/development.rb
|
64
|
-
- test/rails421/config/environments/production.rb
|
65
|
-
- test/rails421/config/environments/test.rb
|
66
|
-
- test/rails421/config/initializers/assets.rb
|
67
|
-
- test/rails421/config/initializers/backtrace_silencers.rb
|
68
|
-
- test/rails421/config/initializers/cookies_serializer.rb
|
69
|
-
- test/rails421/config/initializers/filter_parameter_logging.rb
|
70
|
-
- test/rails421/config/initializers/inflections.rb
|
71
|
-
- test/rails421/config/initializers/mime_types.rb
|
72
|
-
- test/rails421/config/initializers/session_store.rb
|
73
|
-
- test/rails421/config/initializers/wrap_parameters.rb
|
74
|
-
- test/rails421/config/locales/en.yml
|
75
|
-
- test/rails421/config/routes.rb
|
76
|
-
- test/rails421/config/secrets.yml
|
77
|
-
- test/rails421/log/test.log
|
78
|
-
- test/rails421/public/404.html
|
79
|
-
- test/rails421/public/422.html
|
80
|
-
- test/rails421/public/500.html
|
81
|
-
- test/rails421/public/favicon.ico
|
82
|
-
- test/rails421/public/robots.txt
|
83
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/-B/-Bgmyr63R89_vIyXN9mCNapfDXapBpDRck9XmKhL5CA.cache
|
84
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/-W/-WQ3FNnhW7tLBOxo4aGnRb2Fve0zgOnoMYj6wqTNkbM.cache
|
85
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/0E/0EDP1-KVZYBKHTAmflqiPVViMAVEG0SC-kK_5oEVZn0.cache
|
86
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/0g/0gWM2CTzhg2x8y4_UP-Py0W4B9A-zr06u8OBmue8X1k.cache
|
87
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache
|
88
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/3O/3OqO1F9b_ZzzrtlAoCMgvevQgZnwcUOgeLR8rv3IEic.cache
|
89
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/4r/4rAedh6S2USq6-0-HuB_CCVHHLcpx52AIjXhD_2ZBGg.cache
|
90
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/5C/5CT_8kIrhxIJ83JBc79GdAhqzTv5yYzmjQTu_6ALk50.cache
|
91
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/5J/5Jhq8lUXayqrSHgYM1Q5MHGn-TiHuMjRmK_XV4M3UyI.cache
|
92
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/5t/5tiqCRpLfxs-Y6ybOzuDwipvuUFossP-XvncvDt1beA.cache
|
93
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache
|
94
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/7a/7aucnxDrWU2Wq9Gv2-MzRJ-TODqCU9XYtPF9yUAxzrA.cache
|
95
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/7j/7jspo8CcT9uFS4H8PqxscgE3AlgXB7pTQyQIhMJPVg0.cache
|
96
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/8b/8bGxiI7b1E3sXm_6Main4IVaCaNunTCJECvMivc6vao.cache
|
97
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/91/91xRePltaCv1RzwqjVg8J1eDPpMSQzAP2xE0NfHN790.cache
|
98
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ag/AgHzzOWYl7FCzWVoy3hK75zrV0K8Fb-_06edGSVp2Ow.cache
|
99
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Cf/CflQs9dwKZXgCIWoyonGUgbz8uPXLgmyP_FlcJScD7o.cache
|
100
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Cg/CgOhJxWpn75PUgDhTSfe1qt0yvhVyPToVq13nv5zuZQ.cache
|
101
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache
|
102
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/FV/FV8nUPacNnUiza7kOCqckUSyEGBdphbSPSuZtJUy8tE.cache
|
103
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/GP/GPlQQXNQ-w_dTZRfo4-FYNUzSGE1cEKrXjS7crmzVG0.cache
|
104
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ig/Igg0gxUZFtM3hQ7W6dbvFXdZpIbV6tOiVPR2vEmQYXI.cache
|
105
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache
|
106
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Jg/Jgz4YtR2FGBSwxB6thNOJDk7klfksp2yQy2XkBjht4g.cache
|
107
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ki/KiL7BwSVbz_z5w4y93R2R4LCkyj0b19GujTz6XIiarY.cache
|
108
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/LU/LUAozPg7QdzK21QBqXW25-a5gN_7zLRAqQSupvkblSg.cache
|
109
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ln/LnFnKRPLxutlTQ7fOvRsapfgXEw5btGpLwFPbpRzRlM.cache
|
110
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ls/LsZJopR7cTyB7JsVfz5aSomahT3jHGL6Pa2CICmFoQg.cache
|
111
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/PK/PKl6w1pmCXwfusuCnKunu1GYOTLNPwF7_K8p3ytcTgg.cache
|
112
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Pi/PitG24Ap6XHTl1N62RP6JfNqaWJFxaUoe59hR-YXKPE.cache
|
113
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Pm/PmYoMk9-uw3hPLN-bvhDGLKg6cTarLI8BYk3DhheO1k.cache
|
114
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache
|
115
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/V4/V440s0_NvNOTLoVbZrUe2eeHjF7uUg4OPlf9swcXXDA.cache
|
116
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/WS/WSBIVButxIEVKNZe-7Nc4vJqenDzrMKArSNbIy7H8Cs.cache
|
117
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache
|
118
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/YY/YYg4F7MwALcoY2sRAE6hl0-2rtVq5V-9JixAGfbxLF0.cache
|
119
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ZU/ZUn7d2k8KPMHyjjf6lnKTGwGfn2BO-IdyYXQ8wfkVIM.cache
|
120
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/_n/_nYxMUNBMU9KjdTucuCyGutY4g7x8eJjbF9NwXdn1po.cache
|
121
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/aW/aWW6yUInnVq44DuXVWtVU0Uu6MVqbDk_31S2NWl7K74.cache
|
122
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ap/aprbFEg82SGajctPy-pfnM30hK8PtEZrmsgk9pgRHRk.cache
|
123
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/cy/cy6FSlBMXEvsU2hDor-RFfO7au2LngZ3WqI2vqa1r8U.cache
|
124
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/du/duFUmZ4ysy7RyIkeiWtvwe6BtTfBJhNMuO2oRfkfoVo.cache
|
125
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ed/edkFBPusn0eAqYUpbC3hk4dVs45tYZg3w4p50PKPokk.cache
|
126
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/fC/fCrT0zlSV767KPzO87GqdHMO_QsiEr19LLDZb0XFHfc.cache
|
127
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/g3/g3DI9kbhIoXd-w_hDm4y5teEzaSmtyBGpP1zd-JWcek.cache
|
128
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/g6/g6fovXx3tOX2i7BAnBDxcViTe4leaTm9Kkrfdl8wMQA.cache
|
129
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/go/gorAkyJ6oqUlHs8L907X6eA5ORKpX19iQIIz85e1Om4.cache
|
130
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/hD/hDxUuofMAs4S7GXborJiutJawcnl4o2LNudaxNbN4ec.cache
|
131
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/hQ/hQj6p2AFknE_MgYgHnwoPOe91PEUgpn6Z_FiuyaJ82k.cache
|
132
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/hw/hwHQHMDHwgnbAp8O9R8o4Q5POdU6sxLG89slbhtkmEk.cache
|
133
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/iH/iH1r3bm_cqwvpfoFfd5cI3E2iqgJtmIed8lCZKieHx8.cache
|
134
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/is/isbz3mXXlcEL2HMerIcSsLWpTN3D4lHiK2HOygFzss8.cache
|
135
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/iw/iwUWP-Z82gbzpNgNohj70sxyUtc3xNWla6RKzVYItxg.cache
|
136
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/j9/j9dS7uGziRYgnlks5CDCYPt1e_REM0RIz9UpIgMKgdg.cache
|
137
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/jY/jYVt_HA9ZEkn6SDsjj7OSswwgRzN39gj7oCIcNhw6G4.cache
|
138
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache
|
139
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/kU/kUhgMRj0dXypOCVx0_3_wrOtw53hBixKcGLLqSxuw6w.cache
|
140
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ni/niGBqsssmceju94eXn6eko8N-B_Wd_TfuVca3esL0PA.cache
|
141
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/oB/oBw4u1I-YHiDLfqGBonN5VMbTkmFJCA2IZIWABuZCZY.cache
|
142
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/oN/oNYh-Q08FfdNyVFqXISNg8_l67G5FeBHokHp5greQLo.cache
|
143
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache
|
144
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/pR/pRAbQ3DoSMCVan9vdc4o6gLmg2MfGWD_yjv6SwBjomc.cache
|
145
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/pS/pSRyIy0fylBzoBIXuPbSt6NPfrO26fTTJ91cnBiYV5c.cache
|
146
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/qy/qy5ffSUvVTPRKpXNBphBzko8sGj8Ce4dDXBu8rCvA_k.cache
|
147
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/rj/rj9TDm5Ag9No-NQsnf_1jVYYLtMtHzwzJz0DBSS0JA0.cache
|
148
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/sk/skD9Azvu31NegSi2oQtxsOd9ghnyKi7-4FHq4WwvWtE.cache
|
149
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/sn/SnvXlg8cBOz55_kauZGh-V4IC5Zauq8JVhOlzJ02iSU.cache
|
150
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/sn/snbk_vUdpRIi6RfNIaIjl1NOO3pWiCe6KFWZ30k1XL8.cache
|
151
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/tn/tnnlCZmqi-M2TWOY6xMLnGBbKqxvkwkMHVJ8kHRBmik.cache
|
152
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/u1/u1WQc8AMAiOmt_v_5_2yi3XbEaUf9yC4itiSk53jRGg.cache
|
153
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/uH/uH1B6_PPjBQ_4l8KBo3b9ewINago1_K8JKjG1w0YKH4.cache
|
154
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/v5/v56pz21chnsTcHF9GlXTNEdYxkn5O1M9WyIVgb17pzo.cache
|
155
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/vS/vSW7CsUHjw-gbleWbQODWkGxCP7xL776KWz12vIsn5U.cache
|
156
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/vm/vm9hQSEhxR6wE0cFbLeqVjYZax2SwNkord1DCAzA2xg.cache
|
157
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/wi/wiOYNLAxWSE-RcUp0e8yyvwlXcrlSD3c8Hf_9mLum00.cache
|
158
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/xu/xuHg3Ok3I6Ioa8MvbTYwIrYE_ECmwnU6iG9oIqi9Kw0.cache
|
159
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/y3/y397xgx0zBU7JiqxnZxg555Z1CcnrG1svhgwJvZA6Fs.cache
|
160
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache
|
161
|
-
- test/route_downcaser_test.rb
|
162
|
-
- test/test_helper.rb
|
163
|
-
homepage: https://github.com/carstengehling/route_downcaser
|
60
|
+
homepage: https://github.com/substancelab/route_downcaser
|
164
61
|
licenses:
|
165
62
|
- MIT
|
166
63
|
metadata: {}
|
167
|
-
post_install_message:
|
64
|
+
post_install_message:
|
168
65
|
rdoc_options: []
|
169
66
|
require_paths:
|
170
67
|
- lib
|
@@ -179,126 +76,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
76
|
- !ruby/object:Gem::Version
|
180
77
|
version: '0'
|
181
78
|
requirements: []
|
182
|
-
|
183
|
-
|
184
|
-
signing_key:
|
79
|
+
rubygems_version: 3.2.22
|
80
|
+
signing_key:
|
185
81
|
specification_version: 4
|
186
82
|
summary: Makes routing in Rails case-insensitive
|
187
|
-
test_files:
|
188
|
-
- test/integration/route_middleware_test.rb
|
189
|
-
- test/rails421/app/controllers/application_controller.rb
|
190
|
-
- test/rails421/app/controllers/hello_controller.rb
|
191
|
-
- test/rails421/app/views/layouts/application.html.erb
|
192
|
-
- test/rails421/app/assets/javascripts/application.js
|
193
|
-
- test/rails421/app/assets/stylesheets/application.css
|
194
|
-
- test/rails421/app/helpers/application_helper.rb
|
195
|
-
- test/rails421/bin/rake
|
196
|
-
- test/rails421/bin/setup
|
197
|
-
- test/rails421/bin/bundle
|
198
|
-
- test/rails421/bin/spring
|
199
|
-
- test/rails421/bin/rails
|
200
|
-
- test/rails421/config/secrets.yml
|
201
|
-
- test/rails421/config/routes.rb
|
202
|
-
- test/rails421/config/locales/en.yml
|
203
|
-
- test/rails421/config/environments/production.rb
|
204
|
-
- test/rails421/config/environments/development.rb
|
205
|
-
- test/rails421/config/environments/test.rb
|
206
|
-
- test/rails421/config/environment.rb
|
207
|
-
- test/rails421/config/application.rb
|
208
|
-
- test/rails421/config/boot.rb
|
209
|
-
- test/rails421/config/initializers/backtrace_silencers.rb
|
210
|
-
- test/rails421/config/initializers/mime_types.rb
|
211
|
-
- test/rails421/config/initializers/filter_parameter_logging.rb
|
212
|
-
- test/rails421/config/initializers/session_store.rb
|
213
|
-
- test/rails421/config/initializers/wrap_parameters.rb
|
214
|
-
- test/rails421/config/initializers/assets.rb
|
215
|
-
- test/rails421/config/initializers/cookies_serializer.rb
|
216
|
-
- test/rails421/config/initializers/inflections.rb
|
217
|
-
- test/rails421/config.ru
|
218
|
-
- test/rails421/Rakefile
|
219
|
-
- test/rails421/public/favicon.ico
|
220
|
-
- test/rails421/public/422.html
|
221
|
-
- test/rails421/public/500.html
|
222
|
-
- test/rails421/public/404.html
|
223
|
-
- test/rails421/public/robots.txt
|
224
|
-
- test/rails421/log/test.log
|
225
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache
|
226
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/YY/YYg4F7MwALcoY2sRAE6hl0-2rtVq5V-9JixAGfbxLF0.cache
|
227
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache
|
228
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/sk/skD9Azvu31NegSi2oQtxsOd9ghnyKi7-4FHq4WwvWtE.cache
|
229
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Pm/PmYoMk9-uw3hPLN-bvhDGLKg6cTarLI8BYk3DhheO1k.cache
|
230
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/_n/_nYxMUNBMU9KjdTucuCyGutY4g7x8eJjbF9NwXdn1po.cache
|
231
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/vS/vSW7CsUHjw-gbleWbQODWkGxCP7xL776KWz12vIsn5U.cache
|
232
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache
|
233
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache
|
234
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/u1/u1WQc8AMAiOmt_v_5_2yi3XbEaUf9yC4itiSk53jRGg.cache
|
235
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/PK/PKl6w1pmCXwfusuCnKunu1GYOTLNPwF7_K8p3ytcTgg.cache
|
236
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/5t/5tiqCRpLfxs-Y6ybOzuDwipvuUFossP-XvncvDt1beA.cache
|
237
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/y3/y397xgx0zBU7JiqxnZxg555Z1CcnrG1svhgwJvZA6Fs.cache
|
238
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/0E/0EDP1-KVZYBKHTAmflqiPVViMAVEG0SC-kK_5oEVZn0.cache
|
239
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/uH/uH1B6_PPjBQ_4l8KBo3b9ewINago1_K8JKjG1w0YKH4.cache
|
240
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/go/gorAkyJ6oqUlHs8L907X6eA5ORKpX19iQIIz85e1Om4.cache
|
241
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/du/duFUmZ4ysy7RyIkeiWtvwe6BtTfBJhNMuO2oRfkfoVo.cache
|
242
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/g6/g6fovXx3tOX2i7BAnBDxcViTe4leaTm9Kkrfdl8wMQA.cache
|
243
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ni/niGBqsssmceju94eXn6eko8N-B_Wd_TfuVca3esL0PA.cache
|
244
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/hw/hwHQHMDHwgnbAp8O9R8o4Q5POdU6sxLG89slbhtkmEk.cache
|
245
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ap/aprbFEg82SGajctPy-pfnM30hK8PtEZrmsgk9pgRHRk.cache
|
246
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/aW/aWW6yUInnVq44DuXVWtVU0Uu6MVqbDk_31S2NWl7K74.cache
|
247
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/hD/hDxUuofMAs4S7GXborJiutJawcnl4o2LNudaxNbN4ec.cache
|
248
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/hQ/hQj6p2AFknE_MgYgHnwoPOe91PEUgpn6Z_FiuyaJ82k.cache
|
249
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/FV/FV8nUPacNnUiza7kOCqckUSyEGBdphbSPSuZtJUy8tE.cache
|
250
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Cg/CgOhJxWpn75PUgDhTSfe1qt0yvhVyPToVq13nv5zuZQ.cache
|
251
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/oB/oBw4u1I-YHiDLfqGBonN5VMbTkmFJCA2IZIWABuZCZY.cache
|
252
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache
|
253
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache
|
254
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache
|
255
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/fC/fCrT0zlSV767KPzO87GqdHMO_QsiEr19LLDZb0XFHfc.cache
|
256
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ig/Igg0gxUZFtM3hQ7W6dbvFXdZpIbV6tOiVPR2vEmQYXI.cache
|
257
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/j9/j9dS7uGziRYgnlks5CDCYPt1e_REM0RIz9UpIgMKgdg.cache
|
258
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Cf/CflQs9dwKZXgCIWoyonGUgbz8uPXLgmyP_FlcJScD7o.cache
|
259
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/is/isbz3mXXlcEL2HMerIcSsLWpTN3D4lHiK2HOygFzss8.cache
|
260
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ed/edkFBPusn0eAqYUpbC3hk4dVs45tYZg3w4p50PKPokk.cache
|
261
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/iH/iH1r3bm_cqwvpfoFfd5cI3E2iqgJtmIed8lCZKieHx8.cache
|
262
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Jg/Jgz4YtR2FGBSwxB6thNOJDk7klfksp2yQy2XkBjht4g.cache
|
263
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/7j/7jspo8CcT9uFS4H8PqxscgE3AlgXB7pTQyQIhMJPVg0.cache
|
264
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache
|
265
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/xu/xuHg3Ok3I6Ioa8MvbTYwIrYE_ECmwnU6iG9oIqi9Kw0.cache
|
266
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache
|
267
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/5J/5Jhq8lUXayqrSHgYM1Q5MHGn-TiHuMjRmK_XV4M3UyI.cache
|
268
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/5C/5CT_8kIrhxIJ83JBc79GdAhqzTv5yYzmjQTu_6ALk50.cache
|
269
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/pR/pRAbQ3DoSMCVan9vdc4o6gLmg2MfGWD_yjv6SwBjomc.cache
|
270
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/3O/3OqO1F9b_ZzzrtlAoCMgvevQgZnwcUOgeLR8rv3IEic.cache
|
271
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/91/91xRePltaCv1RzwqjVg8J1eDPpMSQzAP2xE0NfHN790.cache
|
272
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/ZU/ZUn7d2k8KPMHyjjf6lnKTGwGfn2BO-IdyYXQ8wfkVIM.cache
|
273
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/v5/v56pz21chnsTcHF9GlXTNEdYxkn5O1M9WyIVgb17pzo.cache
|
274
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/0g/0gWM2CTzhg2x8y4_UP-Py0W4B9A-zr06u8OBmue8X1k.cache
|
275
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Pi/PitG24Ap6XHTl1N62RP6JfNqaWJFxaUoe59hR-YXKPE.cache
|
276
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/vm/vm9hQSEhxR6wE0cFbLeqVjYZax2SwNkord1DCAzA2xg.cache
|
277
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/pS/pSRyIy0fylBzoBIXuPbSt6NPfrO26fTTJ91cnBiYV5c.cache
|
278
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/V4/V440s0_NvNOTLoVbZrUe2eeHjF7uUg4OPlf9swcXXDA.cache
|
279
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/sn/SnvXlg8cBOz55_kauZGh-V4IC5Zauq8JVhOlzJ02iSU.cache
|
280
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/sn/snbk_vUdpRIi6RfNIaIjl1NOO3pWiCe6KFWZ30k1XL8.cache
|
281
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/kU/kUhgMRj0dXypOCVx0_3_wrOtw53hBixKcGLLqSxuw6w.cache
|
282
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ag/AgHzzOWYl7FCzWVoy3hK75zrV0K8Fb-_06edGSVp2Ow.cache
|
283
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/GP/GPlQQXNQ-w_dTZRfo4-FYNUzSGE1cEKrXjS7crmzVG0.cache
|
284
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/-B/-Bgmyr63R89_vIyXN9mCNapfDXapBpDRck9XmKhL5CA.cache
|
285
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/-W/-WQ3FNnhW7tLBOxo4aGnRb2Fve0zgOnoMYj6wqTNkbM.cache
|
286
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ki/KiL7BwSVbz_z5w4y93R2R4LCkyj0b19GujTz6XIiarY.cache
|
287
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/g3/g3DI9kbhIoXd-w_hDm4y5teEzaSmtyBGpP1zd-JWcek.cache
|
288
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/LU/LUAozPg7QdzK21QBqXW25-a5gN_7zLRAqQSupvkblSg.cache
|
289
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/jY/jYVt_HA9ZEkn6SDsjj7OSswwgRzN39gj7oCIcNhw6G4.cache
|
290
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ln/LnFnKRPLxutlTQ7fOvRsapfgXEw5btGpLwFPbpRzRlM.cache
|
291
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/Ls/LsZJopR7cTyB7JsVfz5aSomahT3jHGL6Pa2CICmFoQg.cache
|
292
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/cy/cy6FSlBMXEvsU2hDor-RFfO7au2LngZ3WqI2vqa1r8U.cache
|
293
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/iw/iwUWP-Z82gbzpNgNohj70sxyUtc3xNWla6RKzVYItxg.cache
|
294
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/oN/oNYh-Q08FfdNyVFqXISNg8_l67G5FeBHokHp5greQLo.cache
|
295
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/rj/rj9TDm5Ag9No-NQsnf_1jVYYLtMtHzwzJz0DBSS0JA0.cache
|
296
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/wi/wiOYNLAxWSE-RcUp0e8yyvwlXcrlSD3c8Hf_9mLum00.cache
|
297
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/qy/qy5ffSUvVTPRKpXNBphBzko8sGj8Ce4dDXBu8rCvA_k.cache
|
298
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/4r/4rAedh6S2USq6-0-HuB_CCVHHLcpx52AIjXhD_2ZBGg.cache
|
299
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/WS/WSBIVButxIEVKNZe-7Nc4vJqenDzrMKArSNbIy7H8Cs.cache
|
300
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/8b/8bGxiI7b1E3sXm_6Main4IVaCaNunTCJECvMivc6vao.cache
|
301
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/tn/tnnlCZmqi-M2TWOY6xMLnGBbKqxvkwkMHVJ8kHRBmik.cache
|
302
|
-
- test/rails421/tmp/cache/assets/sprockets/v3.0/7a/7aucnxDrWU2Wq9Gv2-MzRJ-TODqCU9XYtPF9yUAxzrA.cache
|
303
|
-
- test/route_downcaser_test.rb
|
304
|
-
- test/test_helper.rb
|
83
|
+
test_files: []
|