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.
Files changed (128) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +4 -4
  3. data/Rakefile +17 -19
  4. data/lib/route_downcaser/configuration.rb +19 -16
  5. data/lib/route_downcaser/downcase_route_middleware.rb +29 -29
  6. data/lib/route_downcaser/railtie.rb +2 -0
  7. data/lib/route_downcaser/version.rb +3 -1
  8. data/lib/route_downcaser.rb +6 -4
  9. data/lib/tasks/route_downcaser_tasks.rake +1 -0
  10. metadata +24 -245
  11. data/lib/route_downcaser/original_downcase_route_middleware.rb +0 -83
  12. data/test/integration/route_middleware_test.rb +0 -55
  13. data/test/rails421/Rakefile +0 -6
  14. data/test/rails421/app/assets/javascripts/application.js +0 -5
  15. data/test/rails421/app/assets/stylesheets/application.css +0 -15
  16. data/test/rails421/app/controllers/application_controller.rb +0 -5
  17. data/test/rails421/app/controllers/hello_controller.rb +0 -5
  18. data/test/rails421/app/helpers/application_helper.rb +0 -2
  19. data/test/rails421/app/views/layouts/application.html.erb +0 -14
  20. data/test/rails421/bin/bundle +0 -3
  21. data/test/rails421/bin/rails +0 -8
  22. data/test/rails421/bin/rake +0 -8
  23. data/test/rails421/bin/setup +0 -29
  24. data/test/rails421/bin/spring +0 -15
  25. data/test/rails421/config/application.rb +0 -29
  26. data/test/rails421/config/boot.rb +0 -3
  27. data/test/rails421/config/environment.rb +0 -5
  28. data/test/rails421/config/environments/development.rb +0 -41
  29. data/test/rails421/config/environments/production.rb +0 -79
  30. data/test/rails421/config/environments/test.rb +0 -42
  31. data/test/rails421/config/initializers/assets.rb +0 -11
  32. data/test/rails421/config/initializers/backtrace_silencers.rb +0 -7
  33. data/test/rails421/config/initializers/cookies_serializer.rb +0 -3
  34. data/test/rails421/config/initializers/filter_parameter_logging.rb +0 -4
  35. data/test/rails421/config/initializers/inflections.rb +0 -16
  36. data/test/rails421/config/initializers/mime_types.rb +0 -4
  37. data/test/rails421/config/initializers/session_store.rb +0 -3
  38. data/test/rails421/config/initializers/wrap_parameters.rb +0 -14
  39. data/test/rails421/config/locales/en.yml +0 -23
  40. data/test/rails421/config/routes.rb +0 -59
  41. data/test/rails421/config/secrets.yml +0 -22
  42. data/test/rails421/config.ru +0 -4
  43. data/test/rails421/log/test.log +0 -1048
  44. data/test/rails421/public/404.html +0 -67
  45. data/test/rails421/public/422.html +0 -67
  46. data/test/rails421/public/500.html +0 -66
  47. data/test/rails421/public/favicon.ico +0 -0
  48. data/test/rails421/public/robots.txt +0 -5
  49. data/test/rails421/tmp/cache/assets/sprockets/v3.0/-B/-Bgmyr63R89_vIyXN9mCNapfDXapBpDRck9XmKhL5CA.cache +0 -0
  50. data/test/rails421/tmp/cache/assets/sprockets/v3.0/-W/-WQ3FNnhW7tLBOxo4aGnRb2Fve0zgOnoMYj6wqTNkbM.cache +0 -1
  51. data/test/rails421/tmp/cache/assets/sprockets/v3.0/0E/0EDP1-KVZYBKHTAmflqiPVViMAVEG0SC-kK_5oEVZn0.cache +0 -0
  52. data/test/rails421/tmp/cache/assets/sprockets/v3.0/0g/0gWM2CTzhg2x8y4_UP-Py0W4B9A-zr06u8OBmue8X1k.cache +0 -1
  53. data/test/rails421/tmp/cache/assets/sprockets/v3.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache +0 -1
  54. data/test/rails421/tmp/cache/assets/sprockets/v3.0/3O/3OqO1F9b_ZzzrtlAoCMgvevQgZnwcUOgeLR8rv3IEic.cache +0 -0
  55. data/test/rails421/tmp/cache/assets/sprockets/v3.0/4r/4rAedh6S2USq6-0-HuB_CCVHHLcpx52AIjXhD_2ZBGg.cache +0 -1
  56. data/test/rails421/tmp/cache/assets/sprockets/v3.0/5C/5CT_8kIrhxIJ83JBc79GdAhqzTv5yYzmjQTu_6ALk50.cache +0 -0
  57. data/test/rails421/tmp/cache/assets/sprockets/v3.0/5J/5Jhq8lUXayqrSHgYM1Q5MHGn-TiHuMjRmK_XV4M3UyI.cache +0 -1
  58. data/test/rails421/tmp/cache/assets/sprockets/v3.0/5t/5tiqCRpLfxs-Y6ybOzuDwipvuUFossP-XvncvDt1beA.cache +0 -1
  59. data/test/rails421/tmp/cache/assets/sprockets/v3.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache +0 -0
  60. data/test/rails421/tmp/cache/assets/sprockets/v3.0/7a/7aucnxDrWU2Wq9Gv2-MzRJ-TODqCU9XYtPF9yUAxzrA.cache +0 -3
  61. data/test/rails421/tmp/cache/assets/sprockets/v3.0/7j/7jspo8CcT9uFS4H8PqxscgE3AlgXB7pTQyQIhMJPVg0.cache +0 -1
  62. data/test/rails421/tmp/cache/assets/sprockets/v3.0/8b/8bGxiI7b1E3sXm_6Main4IVaCaNunTCJECvMivc6vao.cache +0 -0
  63. data/test/rails421/tmp/cache/assets/sprockets/v3.0/91/91xRePltaCv1RzwqjVg8J1eDPpMSQzAP2xE0NfHN790.cache +0 -0
  64. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ag/AgHzzOWYl7FCzWVoy3hK75zrV0K8Fb-_06edGSVp2Ow.cache +0 -0
  65. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cf/CflQs9dwKZXgCIWoyonGUgbz8uPXLgmyP_FlcJScD7o.cache +0 -1
  66. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cg/CgOhJxWpn75PUgDhTSfe1qt0yvhVyPToVq13nv5zuZQ.cache +0 -1
  67. data/test/rails421/tmp/cache/assets/sprockets/v3.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache +0 -1
  68. data/test/rails421/tmp/cache/assets/sprockets/v3.0/FV/FV8nUPacNnUiza7kOCqckUSyEGBdphbSPSuZtJUy8tE.cache +0 -1
  69. data/test/rails421/tmp/cache/assets/sprockets/v3.0/GP/GPlQQXNQ-w_dTZRfo4-FYNUzSGE1cEKrXjS7crmzVG0.cache +0 -1
  70. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ig/Igg0gxUZFtM3hQ7W6dbvFXdZpIbV6tOiVPR2vEmQYXI.cache +0 -1
  71. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache +0 -0
  72. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jg/Jgz4YtR2FGBSwxB6thNOJDk7klfksp2yQy2XkBjht4g.cache +0 -1
  73. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ki/KiL7BwSVbz_z5w4y93R2R4LCkyj0b19GujTz6XIiarY.cache +0 -0
  74. data/test/rails421/tmp/cache/assets/sprockets/v3.0/LU/LUAozPg7QdzK21QBqXW25-a5gN_7zLRAqQSupvkblSg.cache +0 -0
  75. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ln/LnFnKRPLxutlTQ7fOvRsapfgXEw5btGpLwFPbpRzRlM.cache +0 -0
  76. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ls/LsZJopR7cTyB7JsVfz5aSomahT3jHGL6Pa2CICmFoQg.cache +0 -3
  77. data/test/rails421/tmp/cache/assets/sprockets/v3.0/PK/PKl6w1pmCXwfusuCnKunu1GYOTLNPwF7_K8p3ytcTgg.cache +0 -3
  78. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pi/PitG24Ap6XHTl1N62RP6JfNqaWJFxaUoe59hR-YXKPE.cache +0 -3
  79. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pm/PmYoMk9-uw3hPLN-bvhDGLKg6cTarLI8BYk3DhheO1k.cache +0 -3
  80. data/test/rails421/tmp/cache/assets/sprockets/v3.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache +0 -0
  81. data/test/rails421/tmp/cache/assets/sprockets/v3.0/V4/V440s0_NvNOTLoVbZrUe2eeHjF7uUg4OPlf9swcXXDA.cache +0 -1
  82. data/test/rails421/tmp/cache/assets/sprockets/v3.0/WS/WSBIVButxIEVKNZe-7Nc4vJqenDzrMKArSNbIy7H8Cs.cache +0 -1
  83. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache +0 -1
  84. data/test/rails421/tmp/cache/assets/sprockets/v3.0/YY/YYg4F7MwALcoY2sRAE6hl0-2rtVq5V-9JixAGfbxLF0.cache +0 -2
  85. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ZU/ZUn7d2k8KPMHyjjf6lnKTGwGfn2BO-IdyYXQ8wfkVIM.cache +0 -0
  86. data/test/rails421/tmp/cache/assets/sprockets/v3.0/_n/_nYxMUNBMU9KjdTucuCyGutY4g7x8eJjbF9NwXdn1po.cache +0 -0
  87. data/test/rails421/tmp/cache/assets/sprockets/v3.0/aW/aWW6yUInnVq44DuXVWtVU0Uu6MVqbDk_31S2NWl7K74.cache +0 -1
  88. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ap/aprbFEg82SGajctPy-pfnM30hK8PtEZrmsgk9pgRHRk.cache +0 -1
  89. data/test/rails421/tmp/cache/assets/sprockets/v3.0/cy/cy6FSlBMXEvsU2hDor-RFfO7au2LngZ3WqI2vqa1r8U.cache +0 -0
  90. data/test/rails421/tmp/cache/assets/sprockets/v3.0/du/duFUmZ4ysy7RyIkeiWtvwe6BtTfBJhNMuO2oRfkfoVo.cache +0 -1
  91. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ed/edkFBPusn0eAqYUpbC3hk4dVs45tYZg3w4p50PKPokk.cache +0 -0
  92. data/test/rails421/tmp/cache/assets/sprockets/v3.0/fC/fCrT0zlSV767KPzO87GqdHMO_QsiEr19LLDZb0XFHfc.cache +0 -1
  93. data/test/rails421/tmp/cache/assets/sprockets/v3.0/g3/g3DI9kbhIoXd-w_hDm4y5teEzaSmtyBGpP1zd-JWcek.cache +0 -0
  94. data/test/rails421/tmp/cache/assets/sprockets/v3.0/g6/g6fovXx3tOX2i7BAnBDxcViTe4leaTm9Kkrfdl8wMQA.cache +0 -0
  95. data/test/rails421/tmp/cache/assets/sprockets/v3.0/go/gorAkyJ6oqUlHs8L907X6eA5ORKpX19iQIIz85e1Om4.cache +0 -1
  96. data/test/rails421/tmp/cache/assets/sprockets/v3.0/hD/hDxUuofMAs4S7GXborJiutJawcnl4o2LNudaxNbN4ec.cache +0 -1
  97. data/test/rails421/tmp/cache/assets/sprockets/v3.0/hQ/hQj6p2AFknE_MgYgHnwoPOe91PEUgpn6Z_FiuyaJ82k.cache +0 -1
  98. data/test/rails421/tmp/cache/assets/sprockets/v3.0/hw/hwHQHMDHwgnbAp8O9R8o4Q5POdU6sxLG89slbhtkmEk.cache +0 -1
  99. data/test/rails421/tmp/cache/assets/sprockets/v3.0/iH/iH1r3bm_cqwvpfoFfd5cI3E2iqgJtmIed8lCZKieHx8.cache +0 -2
  100. data/test/rails421/tmp/cache/assets/sprockets/v3.0/is/isbz3mXXlcEL2HMerIcSsLWpTN3D4lHiK2HOygFzss8.cache +0 -1
  101. data/test/rails421/tmp/cache/assets/sprockets/v3.0/iw/iwUWP-Z82gbzpNgNohj70sxyUtc3xNWla6RKzVYItxg.cache +0 -0
  102. data/test/rails421/tmp/cache/assets/sprockets/v3.0/j9/j9dS7uGziRYgnlks5CDCYPt1e_REM0RIz9UpIgMKgdg.cache +0 -0
  103. data/test/rails421/tmp/cache/assets/sprockets/v3.0/jY/jYVt_HA9ZEkn6SDsjj7OSswwgRzN39gj7oCIcNhw6G4.cache +0 -1
  104. data/test/rails421/tmp/cache/assets/sprockets/v3.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache +0 -1
  105. data/test/rails421/tmp/cache/assets/sprockets/v3.0/kU/kUhgMRj0dXypOCVx0_3_wrOtw53hBixKcGLLqSxuw6w.cache +0 -3
  106. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ni/niGBqsssmceju94eXn6eko8N-B_Wd_TfuVca3esL0PA.cache +0 -0
  107. data/test/rails421/tmp/cache/assets/sprockets/v3.0/oB/oBw4u1I-YHiDLfqGBonN5VMbTkmFJCA2IZIWABuZCZY.cache +0 -0
  108. data/test/rails421/tmp/cache/assets/sprockets/v3.0/oN/oNYh-Q08FfdNyVFqXISNg8_l67G5FeBHokHp5greQLo.cache +0 -1
  109. data/test/rails421/tmp/cache/assets/sprockets/v3.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache +0 -1
  110. data/test/rails421/tmp/cache/assets/sprockets/v3.0/pR/pRAbQ3DoSMCVan9vdc4o6gLmg2MfGWD_yjv6SwBjomc.cache +0 -1
  111. data/test/rails421/tmp/cache/assets/sprockets/v3.0/pS/pSRyIy0fylBzoBIXuPbSt6NPfrO26fTTJ91cnBiYV5c.cache +0 -1
  112. data/test/rails421/tmp/cache/assets/sprockets/v3.0/qy/qy5ffSUvVTPRKpXNBphBzko8sGj8Ce4dDXBu8rCvA_k.cache +0 -1
  113. data/test/rails421/tmp/cache/assets/sprockets/v3.0/rj/rj9TDm5Ag9No-NQsnf_1jVYYLtMtHzwzJz0DBSS0JA0.cache +0 -0
  114. data/test/rails421/tmp/cache/assets/sprockets/v3.0/sk/skD9Azvu31NegSi2oQtxsOd9ghnyKi7-4FHq4WwvWtE.cache +0 -0
  115. data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/SnvXlg8cBOz55_kauZGh-V4IC5Zauq8JVhOlzJ02iSU.cache +0 -1
  116. data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/snbk_vUdpRIi6RfNIaIjl1NOO3pWiCe6KFWZ30k1XL8.cache +0 -1
  117. data/test/rails421/tmp/cache/assets/sprockets/v3.0/tn/tnnlCZmqi-M2TWOY6xMLnGBbKqxvkwkMHVJ8kHRBmik.cache +0 -1
  118. data/test/rails421/tmp/cache/assets/sprockets/v3.0/u1/u1WQc8AMAiOmt_v_5_2yi3XbEaUf9yC4itiSk53jRGg.cache +0 -0
  119. data/test/rails421/tmp/cache/assets/sprockets/v3.0/uH/uH1B6_PPjBQ_4l8KBo3b9ewINago1_K8JKjG1w0YKH4.cache +0 -1
  120. data/test/rails421/tmp/cache/assets/sprockets/v3.0/v5/v56pz21chnsTcHF9GlXTNEdYxkn5O1M9WyIVgb17pzo.cache +0 -2
  121. data/test/rails421/tmp/cache/assets/sprockets/v3.0/vS/vSW7CsUHjw-gbleWbQODWkGxCP7xL776KWz12vIsn5U.cache +0 -2
  122. data/test/rails421/tmp/cache/assets/sprockets/v3.0/vm/vm9hQSEhxR6wE0cFbLeqVjYZax2SwNkord1DCAzA2xg.cache +0 -1
  123. data/test/rails421/tmp/cache/assets/sprockets/v3.0/wi/wiOYNLAxWSE-RcUp0e8yyvwlXcrlSD3c8Hf_9mLum00.cache +0 -1
  124. data/test/rails421/tmp/cache/assets/sprockets/v3.0/xu/xuHg3Ok3I6Ioa8MvbTYwIrYE_ECmwnU6iG9oIqi9Kw0.cache +0 -1
  125. data/test/rails421/tmp/cache/assets/sprockets/v3.0/y3/y397xgx0zBU7JiqxnZxg555Z1CcnrG1svhgwJvZA6Fs.cache +0 -1
  126. data/test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache +0 -0
  127. data/test/route_downcaser_test.rb +0 -195
  128. data/test/test_helper.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4b855f75d2262ba922dbb65614ac8ee7f4d2937f
4
- data.tar.gz: 65bc40f3240225100440c32cc52321a7a6dd8dd2
2
+ SHA256:
3
+ metadata.gz: 0e8631f4a49f8535fa5447c8f7cd6cf559f0815db563275206ff61545d794c7f
4
+ data.tar.gz: 39668ddbeb37b4531d737db52f45abffd90154caf7d1b20cd7cef6fbf6aa1c64
5
5
  SHA512:
6
- metadata.gz: 36c9a801e5cca3b45014a39303af64d5bb057efff7acab3e757fa8f9a8316ab8b8287e90ce596b59d3bb8d20d41fc8e917b4690fd863123735c355fbc93ee4a2
7
- data.tar.gz: e798586fe249683b8427b37f9c810af54a3660b3d93e2cde6ddfa1608a3cb84fba0d3a9546343cf46ac5bda4a846a0c1ca5bb7c139fc1a9df6ba8c346ff2ddc3
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 has been tested with Rails 3.1.x, 4.0.x, 4.1.x, 4.2.x, 5.0.x. It reportedly also works with Sinata, although I do not use Sinatra myself. Sinatra test-cases will be most welcome.
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 'bundler/setup'
5
+ require "bundler/setup"
4
6
  rescue LoadError
5
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
6
8
  end
7
9
  begin
8
- require 'rdoc/task'
10
+ require "rdoc/task"
9
11
  rescue LoadError
10
- require 'rdoc/rdoc'
11
- require 'rake/rdoctask'
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 = 'rdoc'
17
- rdoc.title = 'RouteDowncaser'
18
- rdoc.options << '--line-numbers'
19
- rdoc.rdoc_files.include('README.rdoc')
20
- rdoc.rdoc_files.include('lib/**/*.rb')
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 'rake/testtask'
27
+ require "rake/testtask"
29
28
 
30
29
  Rake::TestTask.new(:test) do |t|
31
- t.libs << 'lib'
32
- t.libs << 'test'
33
- t.pattern = 'test/**/*_test.rb'
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
- module RouteDowncaser::Configuration
1
+ # frozen_string_literal: true
2
2
 
3
- def configuration
4
- yield self
5
- end
3
+ module RouteDowncaser
4
+ module Configuration
5
+ def configuration
6
+ yield self
7
+ end
6
8
 
7
- def define_setting(name, default = nil)
8
- class_variable_set("@@#{name}", default)
9
+ def define_setting(name, default = nil)
10
+ class_variable_set("@@#{name}", default)
9
11
 
10
- define_class_method "#{name}=" do |value|
11
- class_variable_set("@@#{name}", value)
12
- end
12
+ define_class_method "#{name}=" do |value|
13
+ class_variable_set("@@#{name}", value)
14
+ end
13
15
 
14
- define_class_method name do
15
- class_variable_get("@@#{name}")
16
+ define_class_method name do
17
+ class_variable_get("@@#{name}")
18
+ end
16
19
  end
17
- end
18
20
 
19
- private
21
+ private
20
22
 
21
- def define_class_method(name, &block)
22
- (class << self; self; end).instance_eval do
23
- define_method name, &block
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
- module RouteDowncaser
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
- request_uri = env['REQUEST_URI']
14
- path_info = env['PATH_INFO']
16
+ path_info = env["PATH_INFO"]
15
17
 
16
- # Don't touch anything, if uri/path is part of exclude_patterns
17
- if excluded?([request_uri, path_info])
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 request_uri and/or path_info if applicable
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
- # if either request_uri or path_info has changed
27
- if RouteDowncaser.redirect && env['REQUEST_METHOD'] == "GET"
28
- if request_uri.present? && request_uri != env['REQUEST_URI']
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['PATH_INFO'] = path_info.to_s if path_info
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 and RouteDowncaser.exclude_patterns
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? { |path|
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
- "#{path(uri).mb_chars.downcase}?#{querystring(uri)}"
53
+ "#{downcased_path(uri)}?#{querystring(uri)}"
61
54
  else
62
- path(uri).mb_chars.downcase
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('?', 2)
80
+ uri.split("?", 2)
80
81
  end
81
82
 
82
83
  def redirect_header(uri)
83
- [301, {'Location' => uri.to_s, 'Content-Type' => 'text/html'}, []]
84
+ [301, {"Location" => uri.to_s, "Content-Type" => "text/html"}, []]
84
85
  end
85
86
  end
86
-
87
87
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RouteDowncaser
2
4
  class Railtie < Rails::Railtie
3
5
  initializer "add_downcase_route_middleware" do |app|
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RouteDowncaser
2
- VERSION = "1.2.2"
4
+ VERSION = "2.0.0"
3
5
  end
@@ -1,10 +1,12 @@
1
- require 'route_downcaser/downcase_route_middleware'
2
- require 'route_downcaser/railtie' if defined? Rails
3
- require 'route_downcaser/configuration'
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, [/assets\//i]
11
+ define_setting :exclude_patterns, [%r{assets/}i]
10
12
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # desc "Explaining what the task does"
2
3
  # task :route_downcaser do
3
4
  # # Task goes here
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: 1.2.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Gehling
8
- autorequire:
8
+ - Jakob Skjerning
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2018-05-10 00:00:00.000000000 Z
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
- - carsten@sarum.dk
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
- - test/integration/route_middleware_test.rb
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
- rubyforge_project:
183
- rubygems_version: 2.6.14
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: []