route_downcaser 1.2.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +3 -3
  3. data/Rakefile +16 -14
  4. data/lib/route_downcaser/configuration.rb +20 -16
  5. data/lib/route_downcaser/downcase_route_middleware.rb +33 -23
  6. data/lib/route_downcaser/railtie.rb +3 -1
  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 +2 -0
  10. metadata +21 -367
  11. data/test/integration/route_middleware_test.rb +0 -57
  12. data/test/rails421/Rakefile +0 -6
  13. data/test/rails421/app/assets/config/manifest.js +0 -3
  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 -44
  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 -1014
  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/rails421/tmp/cache/assets/sprockets/v4.0.0/0p/0pLW5uAkYcVMn-L1f008s8QG400BA-CGnjEUCaGLgwA.cache +0 -0
  128. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/1E/1Eq7urfYMOFFaH2_2qtEtAzItryBST0NWI8LjG7_8AY.cache +0 -3
  129. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/1t/1tj8wAl_ygkeV4rjgm17Yabg53-rR_pkntyJe1pnStk.cache +0 -1
  130. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/21/21O83OBXXXSWrKD2yP5QfOt5GdsGKcUvdkHuxGVDCq0.cache +0 -0
  131. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/2V/2VVsM_aqLieq8REU3CAcwO12z7nTUOMDaOG8mfPTlDc.cache +0 -1
  132. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache +0 -1
  133. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache +0 -0
  134. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/7A/7AfJBOCTRna7lhBueluC9znK0PVnN3Z0wUaxOqGL_A4.cache +0 -3
  135. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/9B/9BuTfVVX9s_SyGNUVwTAliEfEbBaBhN4h3UUAvmaO5w.cache +0 -0
  136. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/9G/9GSHOjw505wesb6iaMzEVqLjrV7bDI8N8MnO892fjkY.cache +0 -1
  137. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/9I/9IPM2vWQgQR4xfKHMKObDvNQpOackOP1Hhf3-GMlZnA.cache +0 -1
  138. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/AD/ADMJimKJauAcBJIneLV5egsXBPBoCjbSP9kY6njR36I.cache +0 -0
  139. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/AH/AHbfhhP0cTEOs-1EBUNUXXyeEHxgK0boxQfplICtNiA.cache +0 -0
  140. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/B5/B5enM7rLQGpvU7rBc2Zu3cO-5FhDDj0_nCVJWZvjX7s.cache +0 -1
  141. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/C5/C5PnkMgUphtk9ABTF6z2KS4sHgpENn8GBLoy-i3E3wo.cache +0 -1
  142. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/CQ/CQ_GqCyDnwt2tUBwsxP1dZHI65ufI-hB9MQ3y1--m9Q.cache +0 -1
  143. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache +0 -1
  144. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Fy/FyhhzuND_ItWUB5CEJ3iyuY40AgIG84NRv4zu9Timps.cache +0 -1
  145. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/H-/H-Xq75Ky6CJKbSHsls6b1RlUhAZsCvAsQBp1hEo4SQE.cache +0 -0
  146. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/JD/JDzlonPoUacVM5xof3d6jVjmE61rJg-Om9N6lYAo7ZI.cache +0 -3
  147. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache +0 -0
  148. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/KD/KDZ5JOyifGKCzqVzvh51rBn4-z2waWNs3-ied97ntvk.cache +0 -0
  149. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/KL/KLfhFc73IoPAgk4UqkkweYC0d9WoWDsdFt6tvPk-sH4.cache +0 -1
  150. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Lr/Lr-IyGH4TR4pHCYggxyAjgjEdL2fA8HQm_WdYfSqivs.cache +0 -3
  151. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/MP/MPkUdTQ18IIRCAqCDpPHC_aLe9EvuxF2rCs0Zi7ormg.cache +0 -3
  152. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Mk/MkHnY3zJtJQlrbU7VsPIbKzhVht8Kh-jfEbTilENQgA.cache +0 -0
  153. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/NS/NSoASzvu62nmDpGMHQrHaDmhnAtsI4vc8886q8304tk.cache +0 -1
  154. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Od/Odde9BXdsuh0jKZhRr4e_mzWgRviGF2hraOo-CBT2Uc.cache +0 -1
  155. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache +0 -0
  156. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/UJ/UJ9oV8YAQYl3QXld841M9Q8GDChRm4hq-p_-ub-8Mnw.cache +0 -1
  157. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Vi/ViNv05i6eMoI4yhVXbPOdOe8uxRNvkjNSYoK5OS99Dw.cache +0 -0
  158. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache +0 -1
  159. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/Ys/Ys273n5EbMBrlmQ8NS6qFULe7v3P3HsMJ-7AKvcpUVQ.cache +0 -1
  160. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/bB/bBjLJM-5v5XvzSjbmk6765v1o0j-26cy2yuTD1KXkl0.cache +0 -1
  161. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/iG/iGXSyXK76m1vZahJipVHsBeSuq9a02pimNfRGul6UyE.cache +0 -1
  162. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/jZ/jZck37TJYp10fX7dzwjF6k7-gPhmNdzB5PWayl2lSRQ.cache +0 -0
  163. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache +0 -1
  164. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/kh/khKGwmTZNJ3bMZIUHcaMzBFC8ORvLIMmSF735G5h5JA.cache +0 -1
  165. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache +0 -1
  166. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/p0/p0AgQcqeMod0Q93wM6Lm_wksgSixervifjXcfre3UNg.cache +0 -0
  167. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/tN/tNMYFw0s6bpMU4Rph9cmm8M-3G0ZCkojT-JjMxvXY5c.cache +0 -1
  168. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/uc/ucpiLQJan6bNoAklPDQXEwdgbK9N_iHcEdcUK3sXfi8.cache +0 -1
  169. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/uw/uw7uS6ON94iLO0V-uIz9HG08EtTXbCsegAx2rsW8ZZw.cache +0 -1
  170. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/v7/v79_HLVOJ_bTUgdWPb3KnIe1Ob_60Lytir4WusrWpQg.cache +0 -3
  171. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/wr/wrx3kO_wdP5NwpV8WnIPmG6582mk1yXcAYXwZECzF1c.cache +0 -0
  172. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/xs/xsXpTMvclkmE9PUtRWGU4l13KsXsf143bqyVpBHalvE.cache +0 -1
  173. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/z5/z5kOnAPBYWOw-zvMXDeGE_yVaZZoO9assTdxLAezanE.cache +0 -1
  174. data/test/rails421/tmp/cache/assets/sprockets/v4.0.0/zi/zi3iTvVQF4pcw9u3GU9UJ6mttFr7TO49bUhRb-pA7sc.cache +0 -1
  175. data/test/rails602/Gemfile.lock +0 -183
  176. data/test/rails602/log/development.log +0 -2
  177. data/test/rails602/log/test.log +0 -642
  178. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/0a/0akXyz-RvD7ECckO9hP1DJxTo5DmWnfdLxYT8v6iBB0.cache +0 -1
  179. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/1G/1GDNz0WzrvjCbDFhKGTRB4SqMCVxSD35_Xf7FM-xGyA.cache +0 -2
  180. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/8A/8Aj0qbTT_8xMiQdT4ay1288JA7cIiscUWqD8v8AhrSo.cache +0 -1
  181. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +0 -2
  182. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/A9/A90cbULL8Hfbsv-9YOrxkplqpjR3vMl94Ty3mNaytyg.cache +0 -1
  183. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +0 -2
  184. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/Qw/QwqNC1B79H6PvmagB1AGJO9I9qeFBpiit-qXaOCDjp8.cache +0 -1
  185. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/lX/lXQ4hYUaxBbrnZMkw-u9ScABwdSoG7c63G01rUy4FLg.cache +0 -0
  186. data/test/rails602/tmp/cache/assets/sprockets/v4.0.0/sC/sCHJ2HP3o3cxIJWeTGqTYDYOtgzS7Hlcpmz1hBftKTc.cache +0 -0
  187. data/test/rails602/tmp/development_secret.txt +0 -1
  188. data/test/route_downcaser_test.rb +0 -189
  189. data/test/test_helper.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a5efc21342424589e2db66e54ef1b758ce9747805c98d2ccadaa86f163b8111
4
- data.tar.gz: b56e8a49da5fcb869b2609683e97d4ee7bd647d7cc4b4d8498c8659a6dd622e8
3
+ metadata.gz: 7726460c1e166c885efb556d78a0f91bee3dee42fd38adce7b5be19115cda0dd
4
+ data.tar.gz: af90e28fb8775a805b436173748c75698c515583dc8a5a1a0ac50757c7b2f08f
5
5
  SHA512:
6
- metadata.gz: e3286854a140421f292623de5b4cf6bd954b1ade7fd552a45f67e7c990111a44d2537bca9562932ebaa744f8b95f3021de6d7398e81fe4933b3ebe5212c7bc78
7
- data.tar.gz: 1108ddc8f75a27577154a63b93dc8f32e80c8895a20d9df79df5cfaf929d9259563360f427786238d024f01c9300c9524454761d5b35ba60e04d4c4297613fb7
6
+ metadata.gz: c703a3c12c20eeaa948284c6969b7f0b48a60074cd893e9000df26668b2a6576d028aecfba92490bf6c3d7a89610ae6eb0c70123d925eac8e0a76ffef5bd21e6
7
+ data.tar.gz: 90446388282474f65f74fdf27257518ea672806810f58a257830910827dab46cab7df2e51ab348a55e7179a0cbdf07ea78c44ff75a08f860d272581cc754063e
data/README.rdoc CHANGED
@@ -1,14 +1,14 @@
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 is tested with 5.0.x, 5.1.x, 5.2.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
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
 
data/Rakefile CHANGED
@@ -1,33 +1,35 @@
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
25
  Bundler::GemHelper.install_tasks
24
26
 
25
- require 'rake/testtask'
27
+ require "rake/testtask"
26
28
 
27
29
  Rake::TestTask.new(:test) do |t|
28
- t.libs << 'lib'
29
- t.libs << 'test'
30
- t.pattern = 'test/**/*_test.rb'
30
+ t.libs << "lib"
31
+ t.libs << "test"
32
+ t.pattern = "test/**/*_test.rb"
31
33
  t.verbose = false
32
34
  end
33
35
 
@@ -1,25 +1,29 @@
1
- module RouteDowncaser::Configuration
2
- def configuration
3
- yield self
4
- end
5
-
6
- def define_setting(name, default = nil)
7
- class_variable_set("@@#{name}", default)
1
+ # frozen_string_literal: true
8
2
 
9
- define_class_method "#{name}=" do |value|
10
- class_variable_set("@@#{name}", value)
3
+ module RouteDowncaser
4
+ module Configuration
5
+ def configuration
6
+ yield self
11
7
  end
12
8
 
13
- define_class_method name do
14
- class_variable_get("@@#{name}")
9
+ def define_setting(name, default = nil)
10
+ class_variable_set(:"@@#{name}", default)
11
+
12
+ define_class_method "#{name}=" do |value|
13
+ class_variable_set(:"@@#{name}", value)
14
+ end
15
+
16
+ define_class_method name do
17
+ class_variable_get(:"@@#{name}")
18
+ end
15
19
  end
16
- end
17
20
 
18
- private
21
+ private
19
22
 
20
- def define_class_method(name, &block)
21
- (class << self; self; end).instance_eval do
22
- 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
23
27
  end
24
28
  end
25
29
  end
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "active_support/core_ext/object/blank"
2
- require "active_support/core_ext/string/multibyte"
3
4
 
4
5
  module RouteDowncaser
5
6
  class DowncaseRouteMiddleware
@@ -12,30 +13,22 @@ module RouteDowncaser
12
13
  end
13
14
 
14
15
  def _call(env)
15
- request_uri = env['REQUEST_URI']
16
- path_info = env['PATH_INFO']
16
+ path_info = env["PATH_INFO"]
17
17
 
18
- # Don't touch anything, if uri/path is part of exclude_patterns
19
- return @app.call(env) if excluded?([request_uri, path_info])
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)
23
+ path_info = path_info.gsub("%7E", "~") if path_info
24
24
 
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
25
+ # If redirect configured, then return redirect request, if either
26
+ # path_info has changed
27
+ if RouteDowncaser.redirect && env["REQUEST_METHOD"] == "GET"
28
+ return redirect_header(path_info) if path_info.present? && path_info != env["PATH_INFO"]
35
29
  end
36
30
 
37
- env['PATH_INFO'] = path_info.to_s if path_info
38
- env['REQUEST_URI'] = request_uri.to_s if request_uri
31
+ env["PATH_INFO"] = path_info.to_s if path_info
39
32
 
40
33
  # Default just move to next chain in Rack callstack
41
34
  # calling with downcased uri if needed
@@ -56,13 +49,22 @@ module RouteDowncaser
56
49
 
57
50
  def downcased_uri(uri)
58
51
  return nil unless uri.present?
52
+
59
53
  if has_querystring?(uri)
60
- "#{path(uri).mb_chars.downcase}?#{querystring(uri)}"
54
+ "#{downcased_path(uri)}?#{querystring(uri)}"
61
55
  else
62
- path(uri).mb_chars.downcase
56
+ downcased_path(uri)
63
57
  end
64
58
  end
65
59
 
60
+ def downcased_path(uri)
61
+ path(uri).split("/").map(&method(:downcase_path_segment)).join("/")
62
+ end
63
+
64
+ def downcase_path_segment(segment)
65
+ uri_encode(uri_decode(segment).downcase)
66
+ end
67
+
66
68
  def path(uri)
67
69
  uri_items(uri).first
68
70
  end
@@ -75,12 +77,20 @@ module RouteDowncaser
75
77
  uri_items(uri).length > 1
76
78
  end
77
79
 
80
+ def uri_decode(uri_segment)
81
+ URI.decode_www_form_component(uri_segment)
82
+ end
83
+
84
+ def uri_encode(uri_segment)
85
+ URI.encode_www_form_component(uri_segment)
86
+ end
87
+
78
88
  def uri_items(uri)
79
- uri.split('?', 2)
89
+ uri.split("?", 2)
80
90
  end
81
91
 
82
92
  def redirect_header(uri)
83
- [301, { 'Location' => uri.to_s, 'Content-Type' => 'text/html' }, []]
93
+ [301, {"Location" => uri.to_s, "Content-Type" => "text/html"}, []]
84
94
  end
85
95
  end
86
96
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RouteDowncaser
2
4
  class Railtie < Rails::Railtie
3
- initializer 'add_downcase_route_middleware' do |app|
5
+ initializer "add_downcase_route_middleware" do |app|
4
6
  app.config.middleware.use RouteDowncaser::DowncaseRouteMiddleware
5
7
  end
6
8
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RouteDowncaser
2
- VERSION = '1.2.3'.freeze
4
+ VERSION = "2.1.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,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # desc "Explaining what the task does"
2
4
  # task :route_downcaser do
3
5
  # # Task goes here