mutton 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (534) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +302 -0
  4. data/Rakefile +37 -0
  5. data/lib/mutton/config.rb +69 -0
  6. data/lib/mutton/engine.rb +37 -0
  7. data/lib/mutton/handlebars_compiler.rb +25 -0
  8. data/lib/mutton/handlebars_template_converter.rb +61 -0
  9. data/lib/mutton/handlebars_template_handler.rb +55 -0
  10. data/lib/mutton/notification_subscriber.rb +18 -0
  11. data/lib/mutton/version.rb +3 -0
  12. data/lib/mutton.rb +19 -0
  13. data/test/dummy/README.rdoc +28 -0
  14. data/test/dummy/Rakefile +6 -0
  15. data/test/dummy/app/assets/javascripts/application.js +20 -0
  16. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  17. data/test/dummy/app/controllers/application_controller.rb +20 -0
  18. data/test/dummy/app/controllers/codeless_controller.rb +2 -0
  19. data/test/dummy/app/controllers/examples_controller.rb +7 -0
  20. data/test/dummy/app/controllers/libraries_controller.rb +7 -0
  21. data/test/dummy/app/controllers/samples_controller.rb +19 -0
  22. data/test/dummy/app/custom_template_directory/codeless_samples/custom.hbs +6 -0
  23. data/test/dummy/app/handlebars/templates/codeless/plain.hbs +1 -0
  24. data/test/dummy/app/handlebars/templates/codeless/with_html.hbs +6 -0
  25. data/test/dummy/app/handlebars/templates/examples/_the_play.hbs +1 -0
  26. data/test/dummy/app/handlebars/templates/examples/codeless_panel.hbs +1 -0
  27. data/test/dummy/app/handlebars/templates/examples/no_partials.hbs +6 -0
  28. data/test/dummy/app/handlebars/templates/examples/partials_included.hbs +7 -0
  29. data/test/dummy/app/handlebars/templates/examples/partials_within_directory.hbs +4 -0
  30. data/test/dummy/app/handlebars/templates/examples/partials_without_underscore.hbs +3 -0
  31. data/test/dummy/app/handlebars/templates/examples/the_speech.hbs +1 -0
  32. data/test/dummy/app/handlebars/templates/examples/underscore_partials.hbs +4 -0
  33. data/test/dummy/app/handlebars/templates/examples/uses_helpers.hbs +2 -0
  34. data/test/dummy/app/handlebars/templates/helpers/another_helper.js +3 -0
  35. data/test/dummy/app/handlebars/templates/helpers/sample_helpers.js +7 -0
  36. data/test/dummy/app/handlebars/templates/index.js +1 -0
  37. data/test/dummy/app/handlebars/templates/libraries/complex_helper.hbs +1 -0
  38. data/test/dummy/app/handlebars/templates/libraries/many_helpers.hbs +2 -0
  39. data/test/dummy/app/handlebars/templates/libraries/simple_helper.hbs +1 -0
  40. data/test/dummy/app/handlebars/templates/samples/_partial_1.hbs +1 -0
  41. data/test/dummy/app/handlebars/templates/samples/depth_1.hbs +2 -0
  42. data/test/dummy/app/handlebars/templates/samples/depth_1_name_anything.hbs +2 -0
  43. data/test/dummy/app/handlebars/templates/samples/depth_1_shared.hbs +2 -0
  44. data/test/dummy/app/handlebars/templates/samples/depth_2.hbs +3 -0
  45. data/test/dummy/app/handlebars/templates/samples/name_me_anything.hbs +1 -0
  46. data/test/dummy/app/handlebars/templates/samples/plain.hbs +1 -0
  47. data/test/dummy/app/handlebars/templates/samples/with_attributes.hbs +7 -0
  48. data/test/dummy/app/handlebars/templates/samples/with_html.hbs +7 -0
  49. data/test/dummy/app/handlebars/templates/shared/_coriolanus.hbs +1 -0
  50. data/test/dummy/app/handlebars/templates/shared/_partial_2.hbs +1 -0
  51. data/test/dummy/app/handlebars/templates/shared/_partial_3.hbs +2 -0
  52. data/test/dummy/app/handlebars/templates/shared/_partial_4.hbs +1 -0
  53. data/test/dummy/app/handlebars/templates/shared/menu_list.hbs +3 -0
  54. data/test/dummy/app/helpers/application_helper.rb +2 -0
  55. data/test/dummy/app/views/examples/index.html.erb +15 -0
  56. data/test/dummy/app/views/examples/no_partials.js.erb +5 -0
  57. data/test/dummy/app/views/examples/partials_included.js.erb +5 -0
  58. data/test/dummy/app/views/examples/partials_within_directory.js.erb +5 -0
  59. data/test/dummy/app/views/examples/partials_without_underscore.js.erb +5 -0
  60. data/test/dummy/app/views/examples/underscore_partials.js.erb +5 -0
  61. data/test/dummy/app/views/examples/uses_helpers.js.erb +5 -0
  62. data/test/dummy/app/views/examples/without_code.js.erb +5 -0
  63. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  64. data/test/dummy/bin/bundle +3 -0
  65. data/test/dummy/bin/rails +4 -0
  66. data/test/dummy/bin/rake +4 -0
  67. data/test/dummy/bin/setup +29 -0
  68. data/test/dummy/config/application.rb +34 -0
  69. data/test/dummy/config/boot.rb +7 -0
  70. data/test/dummy/config/environment.rb +5 -0
  71. data/test/dummy/config/environments/development.rb +41 -0
  72. data/test/dummy/config/environments/production.rb +79 -0
  73. data/test/dummy/config/environments/test.rb +44 -0
  74. data/test/dummy/config/initializers/assets.rb +11 -0
  75. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  76. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  77. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  78. data/test/dummy/config/initializers/inflections.rb +16 -0
  79. data/test/dummy/config/initializers/mime_types.rb +4 -0
  80. data/test/dummy/config/initializers/mutton.rb +3 -0
  81. data/test/dummy/config/initializers/session_store.rb +3 -0
  82. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  83. data/test/dummy/config/locales/en.yml +23 -0
  84. data/test/dummy/config/routes.rb +6 -0
  85. data/test/dummy/config/secrets.yml +22 -0
  86. data/test/dummy/config.ru +4 -0
  87. data/test/dummy/log/development.log +10233 -0
  88. data/test/dummy/log/test.log +63954 -0
  89. data/test/dummy/public/404.html +67 -0
  90. data/test/dummy/public/422.html +67 -0
  91. data/test/dummy/public/500.html +66 -0
  92. data/test/dummy/public/assets/application-28dd61ca42cca674724affd9fac099baee64d4502feef14fc20f98e844a75bd6.js +12259 -0
  93. data/test/dummy/public/assets/application-e80e8f2318043e8af94dddc2adad5a4f09739a8ebb323b3ab31cd71d45fd9113.css +16 -0
  94. data/test/dummy/public/favicon.ico +0 -0
  95. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-4Gb4l2J8UZRMjLSYQZXraqYGajNvJoSownetLrgGoE.cache +1 -0
  96. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-6aXXSMJ2d3ZUJ_SNIbIJLSYipo6v6ChkFFxdWAP5EY.cache +1 -0
  97. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-6itKhG5FCrsei5Q7g_3TPDqQY5oefNWXVU6H_-VfYY.cache +0 -0
  98. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-A9EXgCMqnQUQjg0YZkaGyHdwVJqxxMTv0CCDZItDyw.cache +0 -0
  99. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-W0uU28NaoEsyUKHmrfp8ysGx4JKlakIKqeHHW0qEUw.cache +0 -0
  100. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-hyuA_pfaXlNxR0DfK8GkTfLQWGMgYF5rC4h8t16Ra4.cache +1 -0
  101. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-nns5q2a5E0gp6dHAuP62ekponV7KBnPXU_MGdG-CNw.cache +1 -0
  102. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-yrKqNcW_szQr-BZMoJIsWoXG_ODKMfaWqcvBMZHYZc.cache +0 -0
  103. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0YJHMYm__BEglcitfyVHtp0g1z02mtQshsIo1G_Yvvo.cache +1 -0
  104. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0ogCXYi5cPKxZUTepylQ3l_8rPYbAcC-TruhfJzsrjw.cache +1 -0
  105. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0xlD6YEaid-B3Hoykpx_1E6h3eXCmkbESbvOggl7k78.cache +0 -0
  106. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1-AlbZNUDxGsd4wPSVZIkpysbM3d6c94p32oqNTKeGU.cache +0 -0
  107. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/13YgWrqqbLlZyc4QUED9w_OUl6qOH_3Q9ZdwfDRgUWU.cache +0 -0
  108. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/13mU6IIs2CannHaUkGbH586k0noLA0wzPf4eF6WEXKI.cache +1 -0
  109. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/181EJNB7T-CKEf5Gtn_VnoX57TJGvB6oo7QDVEZx9UU.cache +1 -0
  110. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1MP6vb-o_jUZzuLRPSVp2uUvwdQHUFvc9LHv1EntuSw.cache +0 -0
  111. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1N4WOk9UkleGu6qwrzmqbPqt6ylcFSSG1hl7UlsY_QU.cache +1 -0
  112. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1Rqg1EwHMyxtUGWGY2XzjbvmKbIDvXTOq7dr03McTjk.cache +0 -0
  113. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1Sht7Imx2FKNgc0-E5F9cYT_vcIazxP-dZWYqqUxtxw.cache +1 -0
  114. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1ZX4OwkixtKdayerG6HBvi1zobKjvE409O0RuM05Y7A.cache +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1c5oqdfb1nVUVOkqSujOs7JTlooBcNr5Q_v-HYKkxfk.cache +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1gqHKm09rQhabOFU65VhLYCs_KDye7SXA-h7I0qK5ks.cache +0 -0
  117. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1vblHJeMvwpFJRSNiODnexjBT1FyachvfdxQg0Y8i7U.cache +1 -0
  118. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1vuwpFG2moiWfMdfAWN8tKv5oIhW2RCEhdzJLffRHIo.cache +1 -0
  119. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1xnJFwu36Px9oJBWLAkq3Xi1INKix_R71nCrRt7IxJU.cache +0 -0
  120. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1z9y3dSF82kWi5OWm_ZmsJ35j5QaPxsEIc_lRzUEZNU.cache +1 -0
  121. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/218b0V4AtStu-Lj-WMkxNPXJ4VGhVfeQCetuoTQDTR4.cache +1 -0
  122. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/23MGMCpHvx40EVOoT3unFeGanMbt41xUVBIaT0vkVus.cache +0 -0
  123. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2R8ByHnGrgcDQ_jJ2o7It590FM9iPgir3doBeMPe0ZM.cache +1 -0
  124. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2mIzArRC3T-YnV0PqfYVs9oUE8h_dLcmI7PSPU2pHms.cache +1 -0
  125. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2wd33EhySdCwjnra04OLy-493_IGshlF1ssCesYsyNM.cache +1 -0
  126. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3GKfF4Hr3MZ6RvdJziGnQLYRI3waee6Y7nVFc3vEbfo.cache +1 -0
  127. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3GTIZ_VIdhFFIHuYBVSNsNzznQmhoW7TQE9tHqRT9jM.cache +0 -0
  128. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3JEPv0gBTPC_MZy8Abk7toD34RT8Td2u-gcYWYvlGww.cache +1 -0
  129. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3YT2-TU0geZ498HhtSwtlt0DCcK3GeNzbexlXvsO_AY.cache +1 -0
  130. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3pp87M7NDhlmCKWw8LV8CAD9dgMIZvfZO_5khvtfF1s.cache +1 -0
  131. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3qvZcEv5p3qVFlabcVSKyjoeaFtsTAUz7zoOVJ99Pdc.cache +2 -0
  132. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3zAo6R9b7wnMmArktz4hB2x5QeNxSJrfPQwt-yV98Qg.cache +0 -0
  133. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4-Qi-cKueYTGyZs2aAvNhnLI8nm1HFHS25BNsjULzP4.cache +0 -0
  134. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/41-fCgwScQAqOaemxQtbWdjzNuNrZGQcEPDMLRWunrc.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4dHXPo39XdcXkBDCWLHbfc7slHEkLqQlozHDiYtmlJs.cache +0 -0
  136. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4mD6cC9GGPVHX20DsfOBo8KCPW7s_ZqsVRlLMFVxAbs.cache +1 -0
  137. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4nT3Jw8S2_YbvZxstI_jiHig_OJvtr8VZs5K5Pq9ak0.cache +0 -0
  138. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5B5mqaaROFuwiuiqV_Pvv6z6cnEst3OC7p9JrgFbJ5s.cache +1 -0
  139. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5NnQSLBtw5ZmZel_ordS3M2v-SlZBmQqIkB2K1zcUhI.cache +1 -0
  140. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5XVpQWnl-oGSVi6qjE7puJRGrtUtf_AAYvPOu_oMs0A.cache +0 -0
  141. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5aximAA8S0cnxP9o_XGIzOceRcVERCgJHUX-AtIKgQg.cache +1 -0
  142. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/65zYAmSEXVnVL1vZA3hdOK91ZXSL-FMf7xw8FdBzMOc.cache +1 -0
  143. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/683WGp7_9zGVtpHL7xt_u4qZUeDWsWDs54RuPwwEA6s.cache +0 -0
  144. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6Qk9R54e31lB4bV84C4ZMSBGsnHcUvbg6vAh5h9KWAU.cache +0 -0
  145. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6Z8cxoPptFmKDOUpHILb5exxojOm2kwp61wt7L7gWV0.cache +1 -0
  146. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6Znxp4Z0OWpuHwWtTVpYzdf-bn12nPZ04y3TDzgjgkA.cache +0 -0
  147. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6n2yOXTI1uYynV13Hvj8Ity6Q6whYylImlfD_7F8T_0.cache +1 -0
  148. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7-65qC6jyF3Bqi9oV4I3BnTRaQpzZDqHwJiHvpnmUZo.cache +0 -0
  149. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/79DoKzjo8qapdt1g-eUKvTudaaIwVFv0koqWlfwK9l0.cache +1 -0
  150. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7Z753zAmDPmvxHXolaJMfUOV7xWrobqtagYLt5qBQiU.cache +0 -0
  151. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7h3h1uQ_7Y3f-0Ox-yeE6Nhor4-Qr0qyzXYu-Jmu53U.cache +1 -0
  152. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7kSpUk3Wnh4fdTQcIoaG_OVKloIXrGL4DwLXQvcbJS0.cache +0 -0
  153. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7st8Q_YS7njXp27ABYRu6Lot4mw2ZatF6BS8MHwUZc0.cache +0 -0
  154. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8IGyLsUqQUL7L4JCjewjPiyo0KiSUiyGol9SynMu2jA.cache +1 -0
  155. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8TrU-gy1sQETBlGA2B_u_yRI2NAolPtuJIkz0P__E7Y.cache +0 -0
  156. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8XVJZpVn32SWNynhVeU4exopygLfhVIiaqQNTbldrL4.cache +1 -0
  157. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8ffJ59ux2A0pzkskGpazSciq5Qx_OL2suIu5vMo31r8.cache +2 -0
  158. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8k9v0086PmB-VM32qRcHLKbVRKEXYUQpFjtY5Dh8qOs.cache +1 -0
  159. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8o5zz9-GvXfBHjmMBmAYbUDo8ayD5Lf3To1_w667c6Y.cache +1 -0
  160. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8xWiRbefmMdWv5qDIWAL_GdYn-WG5sNXHqDPzZx1hpQ.cache +0 -0
  161. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9I7FX5TmRAeenIZwLX83FNftt9cT1_G2HaPoHSB4leo.cache +1 -0
  162. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9_yWVv6dsi75zzhwn_6artTint2ppsMytcRGoYQR0CQ.cache +1 -0
  163. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9dVAAsM8OxsLX0ORZDEdyIKFydgp-6-UBYnv5iH-Xc8.cache +0 -0
  164. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9lxyAh5rZLGNa22VBUm3AHFhvbHAseKGJRJiF3iSJBg.cache +1 -0
  165. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9zJ9uyGYdtLRBxsmMlnvSSdWr-2GTEM9H_74g4S4wdA.cache +0 -0
  166. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AFmsXSzkZSedTegzlToA8bJkLx-orIUKpZOGDo3Mgb8.cache +1 -0
  167. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AOgdARLDBoERf00QlIJEc1a5MbRec05_DDrLUTmKCmA.cache +0 -0
  168. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ATwjpu5Ede_zEC2Sby806EaeBoBRvY_y-rngWHzhhIE.cache +1 -0
  169. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AUlW-UnhZrU7G8ojUGFJb9kJF-6TkpoF_EpEPk_ANU8.cache +0 -0
  170. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AWbdreCOtkZkTG5nb7KwFMCmkjI60Wx2SepNBxhePmE.cache +1 -0
  171. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AbfdyxyFnPD1p0usbyisvdwcRiLo0dzrqrAC2ZLIkOQ.cache +1 -0
  172. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AeArAvPiItoJ6LNmqixbiTMClh4XceRMv0Z1Nn-s9_k.cache +0 -0
  173. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Ajws5M54AFV7OP-naSmNHUDlshRGQoqBXNvQ62x7Y54.cache +1 -0
  174. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AwJm2tHvxlSBPGdLbyVlxQc4IKF2dateMNo_cg2fNI4.cache +1 -0
  175. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AwjcxJwtlKFRA7OKqMYuKLYH_qXqv4--8gqAeQpnbNA.cache +1 -0
  176. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/B38XJe1Ck69c6H3phXKyTpElU38bWzNrN0pDUhi8mqA.cache +1 -0
  177. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BL_fxM57MilxWu_-DjQvNl72FQQcrwCDq-SQ3a-DZno.cache +0 -0
  178. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BMXuoEaIExVaDagD7nI23wZzO1KKDil_hSUvivRZxtg.cache +1 -0
  179. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BRShljvJtVc_xxBS9qj8lmV3WlC6OLUefBIPaGooYV4.cache +0 -0
  180. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Bb9vGJacK0add-xdPmeALyVMMpKCkVQJSDjSphQ5YOE.cache +1 -0
  181. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/C84u7NGlQzzMyz-7t1LNAhMmRH-uqYvSqigXMvR6yL0.cache +1 -0
  182. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CIGeQ2IuK49eFppefeHP9WhwtBPbldOFh4hhFfQjfLY.cache +0 -0
  183. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CJ0ko4mby2hTQ4zCTGWdKrqvpujS91l7vdMnQzGrL18.cache +0 -0
  184. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CcsvWQWArbyWEbvKMkJlAt3o_BFnWS2Ut_jJ5hWyQB8.cache +1 -0
  185. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CfSzQntm6166_Zt9eGQutnbjnoN2jHBeoGKBMHpzNBw.cache +0 -0
  186. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CmLIOS1vlDMkSsjwtFFievjKf9i1fTnDRazyUp-fT1M.cache +1 -0
  187. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CmwzJvfPUI2JQlMSE29Ht1uqssBzEu0i6l_lX3kjxyI.cache +1 -0
  188. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CnpkW4EcQAb-FGWKU9PvRWSP7PKMRAxBd0yiYgFZ1jk.cache +0 -0
  189. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/D7VJKfuY1c6CVJtmLiDFTMtZJRXFxDpI2BUo3W_q15A.cache +0 -0
  190. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DITm2eSnYh9Or59v0kVBLalf2W5N1zyQcBgW8qIxvT4.cache +0 -0
  191. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DPkBBLhZUlmSe3yL5mSCeY8hn7WGKc3b8FZzz9jzYr8.cache +1 -0
  192. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Df2eMdV6Hx7ZghHSlAIamuE2od6paf0hyJQU9PhVD7Q.cache +1 -0
  193. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DisBlN43aJ5Y1A5KPJZzDecUZ3yYA34T8lqL3XuQflk.cache +0 -0
  194. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DqoRFg3pzAG9kLWLzHT7q3rUxzm_R0pYU7Kww2Cusls.cache +1 -0
  195. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Drti9_d3tYp1OWnzT4JhID3i-V3oVUj55_Xezqm9vTU.cache +1 -0
  196. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/E0Me9t2TOKP5hPAX_Q1HMy-OXsdiazgL9wbmR55hTEo.cache +1 -0
  197. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/E3plakT2DZVjogL3eJPV4zz9_PeAEtgBqeMLv0_D3zk.cache +0 -0
  198. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ERmCCgVeRo-dVZybFqNaMeraSbU67OXGuIwPuwDaJEo.cache +0 -0
  199. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/E_BuSvmKruLxkkxrpDY9tkZPk4rnQ78KV-wVorjyAJk.cache +1 -0
  200. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Eaw067ia3okh4rFstIoxdGoZL6aXrze2Sslq8QdQTLk.cache +1 -0
  201. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/EkAoAkMTH5d_jpArWAWhY2bao9_rgYll9qm0E80UmMw.cache +1 -0
  202. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Ev8d_ZpHHJYaeXO-Dp4ROpOaNBdoHj35XcynBOmtq6o.cache +1 -0
  203. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/F5-BsQc116ssrFnA4npnEJq9dP23fIPOMxUpsQxF82w.cache +0 -0
  204. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FA8PHPkoJaOhyVO1wC-pbzEInAajxTgvAFTZR4fmwOI.cache +0 -0
  205. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FIJhn3JCNk7p1oacJ873h14WTbJ3au7J3z8sMJuFsj0.cache +0 -0
  206. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FLVdfuY0UPwZMOxX0iuZJjpwImJ0SsnlPtvkUkxdwZ0.cache +0 -0
  207. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FQX00kjS8yrxuj8FynjMOTUCmaKOJNKhQH0YPymtdQk.cache +1 -0
  208. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FTuZUOrgkqI-u0jBmwPhGD65gCVpxsIee6ZPt_1YwUM.cache +1 -0
  209. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FdNbUtkSLBUM0Jr3D7Ozv8ISJRFiDnDf5wlBRxC5z_o.cache +0 -0
  210. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FgO6zr0d_xzCfpPgMA7GiMiVvwcQbvHT4jM6bTymCIA.cache +1 -0
  211. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FkTSQ-sgNdRs4lR8fWhaNTqXX3t7XVfoR65PanxEqOI.cache +0 -0
  212. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FmlmnACSrxVjqVo_dE3wDkvRtDhY0OVvItmTf4mnNWk.cache +0 -0
  213. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Fr3rHktafbbou3FspfnJCf5Xh9CGb5unIaht-iRun14.cache +1 -0
  214. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Fv5LNyIOWA9-gp1MIqWpQjPFdBEIk-FKxgKv_pSxvcs.cache +0 -0
  215. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/G1H_JNtcCP_ySZVwqb997dxkJGrFskfEVZKyCT86Yn8.cache +1 -0
  216. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/G4CtVx5WwUvQZ7kgNdT6mhhae9A7Vh5dPuwv9ggF53o.cache +0 -0
  217. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/G4bYtIkaHmLl_yr2AWa0rbdFavl004ITLYgUv3cVFaI.cache +1 -0
  218. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GCVMppZNYuGd7QdaSfsMBX9Fpd34lg38zljpUnvcz-4.cache +1 -0
  219. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GaGok1Ld_aWr9j_-KURAXodef-zi_HwDNk2aRj6fRyo.cache +1 -0
  220. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GnnfhBGXLc0b9LmsMF2h0VTaXaEJMT0lfLsoMpcnd58.cache +1 -0
  221. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/H0yX0U_EHjVl9b-xjof0yN0SCFA5al7a-QdwmNpgnMc.cache +1 -0
  222. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/H4bhWRvjFwP2ywC-Y2ibB-z3XI6bv6yrM5KoTOOM2uQ.cache +0 -0
  223. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HGrhh1J0eb8iLVBztnzGlJntGYuvrhaVEteY9-w-URY.cache +0 -0
  224. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HPRAOQ-vKD5nraSnnXZGNwYEpchxDpzhIsmtSAV2G90.cache +0 -0
  225. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HbuaqjwMCZqJ6H5KvkC_qAiIwOvpYPzbcwLxJNb0uuo.cache +1 -0
  226. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/I6yVCeakVKqUsaliyUltWbPDyBSBMhUv9zkFp2yw2qo.cache +0 -0
  227. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IJMmbI7acGvH89sGSYCk8MG64DgxAlPkMnVzO3qcsPU.cache +0 -0
  228. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Ie0bbRfNoWn3z0I3n_jaET3GWnM4ORD0qVWhAY6UT6g.cache +0 -0
  229. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/If3QnMZ14zGPmgoAv1CC8407MM8HCX_Mbt8JgNy5kIk.cache +0 -0
  230. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IgGUqhkzHXI8396jm5e6AA3jgUFM-jWSlHh4Yq4UGFc.cache +1 -0
  231. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IsFTN5irVSJ7UmtclvH4t2XK62KJTGN1i-GiyBNapOE.cache +0 -0
  232. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IvZK1wes113P-P_nDqvnp0fpJSThqTPHxpgfGxDw-sY.cache +1 -0
  233. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Iz8BsJFlTbw_Px6lMiKFvr1E_q4ASTGRftJVuzKry7Q.cache +0 -0
  234. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IzIhvn_1HGm9SoenHi_zLuLj1XLnotRpskuNplEJuTE.cache +1 -0
  235. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/J2T1uARvu7zW5vVwM9vZ9SbJqYgbJV4sKtv4Ce4DONA.cache +0 -0
  236. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/J2nV3Vaj3MBkmgwflEu6aFIB_LKttn6Nqe2utezEwrs.cache +0 -0
  237. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/J6rBhZcPqpEIELW_V9jAbv1W0_zqvsHFP8y7WXhsAeo.cache +1 -0
  238. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/J9t1-yLGUWA529Z0c17i5znsjGa5sXnojAVAd7T75Io.cache +1 -0
  239. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JAULOq_7sZHQEA1IxE2vTelKzRwC2iV9Rhu0j4lEoCk.cache +1 -0
  240. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JCGrD-rrOKeIyZ7WdyZa7Zqhe31p7sfWIUkrM-rWbZs.cache +1 -0
  241. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JP_qx1WEU__d_86Xkpv5c7z255PS1c1inZLxjtpqNtk.cache +1 -0
  242. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JqrrNN5hqysG0E5olRwFhRpeupyENG4BUBQbwlBeyr0.cache +0 -0
  243. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JxopijdsjsbME-AZRoKtOzrlR0Bq-yAvX3zrNJZkmm0.cache +1 -0
  244. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JzQFshXooGdAP0tJWlWnatwCCjUawQ3S9-YiR3G9a1k.cache +0 -0
  245. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KamPqOdPn8aeGtBR2scJvAwAGS3-SPJGrQPejRxy2Q0.cache +0 -0
  246. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KkIu5rhtm00Di-mr9TMNrvHi-Sgdkq3X8jbIQHN_BqY.cache +1 -0
  247. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KkfiUl0bBuH-atgS0il_IBTO0ZdV2JIctizTVUib6gw.cache +0 -0
  248. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KnPLQsNfgqmhY-x5E1WTbG2H3kgoykRnl4tFK1tA_D8.cache +0 -0
  249. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KtEDnJ6n5IpnIw5Inc7TkvSGCkUc1LndvgTLSTFV5H8.cache +0 -0
  250. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/L7XRHPkC0b7xddmUMhB9nbrdZn_Z9EhmNKeDUxXeNnw.cache +1 -0
  251. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/LTg2UHcfCN7RTyzae-nugHswjbkxl3mqjnKtZfBQLLQ.cache +0 -0
  252. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Letplsx6YyGvKSnrW4a5HggOew1INSDhv5VIkLAf1SE.cache +0 -0
  253. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/LnnMQfnoT33AD6NJZbwGOXkyOWhGMerXlWEKhSHUl94.cache +1 -0
  254. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Lx28Zim1bUFhgjYQdvUmwk1xlJP0p7eYPJWCzAtzljc.cache +0 -0
  255. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/M3lqnO0iMhKkY_7Bk9jvdDSpnMj9vK8XsZlzSixBQt8.cache +1 -0
  256. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/M6l9EmEY15pm_zhbbIeSw7o3sc5hHOCWrkUISy1cRQ0.cache +1 -0
  257. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/M8ktiuDJHN5YmZ0EmF-b4QOAOk65LABTH1WwJUaFDoE.cache +0 -0
  258. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/M9XKT7wwd2LtD_c-O_--yjXDhj3J1R9-0q8GgfsyNQs.cache +1 -0
  259. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Mc_u2iCoWysUQHn8qRbQ9ffICia9IFYqmH-oqUSoQOY.cache +0 -0
  260. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/N-zFhFsd1r65a9wqHryhqH2yrHD2_iPyCvVHxurV_-Q.cache +1 -0
  261. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NDUMfHJqQEsG0CEQj4hW4g_lL0i8ccRcT4BYJWKalgE.cache +1 -0
  262. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NNVC0K2OM9-FOswvPDef7MaJUN2JC1Z-KRe42RDztvk.cache +0 -0
  263. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NWE_UTz7LDPa_ckVWBBP0wEmkV4w77fQL5q90KE-vH8.cache +1 -0
  264. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NZgzQPXhGuB1-BFt8234AtYqbTfZuLLPijsMt6GMzic.cache +1 -0
  265. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Naec_LN4F5v0MmTqqGk5wPzLWcETTlEvSN105nKoDew.cache +0 -0
  266. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Nm06Mdpq5aE0r0XvR-MJYuBqkiiVZ4vOYNTGSGm0omU.cache +1 -0
  267. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/P14UP7cHmWs1cFO-wmPqxPpO_pbO4c8xJA93IbkY1uU.cache +1 -0
  268. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/P3IxY2O4_T1Kl2cT-cswpgcuuugNmt484ZEkXZ3xbGc.cache +0 -0
  269. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/P4iMZ97jNlfawygFBaZKKV1bEA94VgQbrArW7L__ubA.cache +1 -0
  270. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/P5nr4bDF66A4zyatPIodbDQoKFcC8gfPEDwUweByi1c.cache +2 -0
  271. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PIWoIj7F4nXWhGmvC6vbJte0DnsBluBDxsL9AbSC178.cache +0 -0
  272. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PO0TJVSk-MFo9HvpoJiRbXilRtj8nIw3KAnwe3KGdfA.cache +0 -0
  273. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PuYjncKZXA8Ds7_M7NaoWgEXlCpAFtx9hro_tDb2_0k.cache +0 -0
  274. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Q49GYFaqR4B2yFqfnKq6FtQbIuhqG9TPQ3nIqomYI2s.cache +1 -0
  275. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QN1xEuydi3CpGkoytb1EGOOXdBhXopyI1nPU7M36M2Q.cache +0 -0
  276. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QeMAnfwyezaH6_IsO3kWPzt99vxX1y2yUIIFk2t3800.cache +0 -0
  277. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QgPZInLB0MR8MM6UdhqaN2gI2FDUyUcJ3DZ3JONPqqY.cache +1 -0
  278. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Qurk_ODzzktpg84c1KntPeyIiDilm1JyCwAUVSsoAcI.cache +0 -0
  279. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Qx0RpPHbUEnlxWtvSm4qMWTai-n5mBPDWwFJ-BUjh7A.cache +1 -0
  280. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RHaAjEvLEMxjTc6LGfnmZq4P21_KGMRZle83wPbU3IU.cache +0 -0
  281. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RPrgjRZCMFgwcUDgUSb64KcW77QTKI5au4wnkf-EjCc.cache +0 -0
  282. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Rlemvy5p_heJ9l3Dp85EkTQzJsCGcW_gW39BXWZvx3k.cache +0 -0
  283. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SA2DfzHONBhD3lcOasR06tAjIePuLmB27vb2Luo1gbU.cache +0 -0
  284. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SJeqsYJ1Aqeqbdx9SoVsektTNADcKZN_XAnCtjYFuo8.cache +0 -0
  285. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SRT0R0j7ddeCWAxWgJqiXEIYyKHIiypNfxmT-ly4rH8.cache +1 -0
  286. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SSLbLpSc-vrKOrYwWuEZj29nFBAnHlLj4nzCvZSwv3E.cache +0 -0
  287. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SeEr4lXePub6eQIA2eNn_G7y4AKO4oLWedp0LkY-D9U.cache +1 -0
  288. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SpGj5jI7ftSjmbAe67eGjGfqm-hcNLQhYT1gTq5x6fQ.cache +1 -0
  289. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SrmfuFUn0Ng1qtXh13LiTJV8ao2LXJ7PJdw3_6sKL1s.cache +0 -0
  290. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/T6rWVJwMzjfS7KjdYHVmYxVyU6DS8kMfifVZqk5KS0w.cache +0 -0
  291. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/T7R81HyIET6aqs_B0mPm4sXWW2Umbu248ZU8dTd-_C4.cache +0 -0
  292. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TEg-OSioKZ5T4NxW3gL7gkpI9uImx79qxdtmBmFaUJI.cache +1 -0
  293. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TU9Ty-XhYjPLpUO6I20JAesFytC1umab0MncYUpywyI.cache +0 -0
  294. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TZ_fGoUEaNeMoBTfu1C8QZc-VgDg42xuSAJcnAdnmHA.cache +1 -0
  295. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TeXCtcy8EyJ9oQJc5BBRqjG3pZh9XNPLD9xc_d-flss.cache +1 -0
  296. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Tnq3WMZF0BVb46JWMEULh_LYzmlai1gaL57blrw3eQ8.cache +1 -0
  297. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TqftZ18h5DEkSSyNa6_9_w6kGeG-8Imr3kSrayzx8mc.cache +1 -0
  298. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Tr1qgvCbfUyy9bi4M_F3e-0sAoTBIV-M34LBv2AlV3A.cache +0 -0
  299. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Tt3oar9uNIJxG6uCwXQctpu0Mx9xG9zw9AA_o4O3ACU.cache +1 -0
  300. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/U1rQvgJvBLYFxWc0eXYgEuvog5JDThlxr3Gaai7Qq8s.cache +0 -0
  301. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UJdj0dAd9eda9Hq9UtYyCgMgyGe8buf751hIC2htcqI.cache +0 -0
  302. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ULw8TLZq65Kpt3V2WVniSI2pY8G7RY1eyua_LZMqq0s.cache +1 -0
  303. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UgNGrWjRv_EVaTjdaVTlis6kmVjkKTW3WdbtnQYE640.cache +1 -0
  304. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UoSUDTWBfji5XjTjJDGjkRlufP4AwoLN2ciRfcdjzgg.cache +0 -0
  305. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Up9C35nldnYC451YZtr_gHZ9TJ6GFHNXyiD3j-yPEKU.cache +1 -0
  306. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/V36DIHkv-fyOwIs2KB1YtD3gVTNzxJSpZQIkBi-9Urs.cache +0 -0
  307. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/V8BD9-EbIOrBxzRlvlxrdwxZic-Hx5n-jEHutNk3M8A.cache +0 -0
  308. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VG44l6e3C2Q7_m6L61Cx3rfSwPUqje0KVqq6uYPUoBI.cache +0 -0
  309. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Vajh76UdEoSs_jqvP4ofYtd5hFFcLlgVtRiSXd4Txsc.cache +0 -0
  310. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VffmRiIMbi0vwJYKLmWVfmkK9mvKfhKmx3uN7O3ZWHY.cache +1 -0
  311. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VklEevgVpoOquNDTtyUODaArN6ExXZ7geiK20BTyGOA.cache +1 -0
  312. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VzG-nvu5kDwO6-am8wiZeEBe-CXevXonepvHpsAQikg.cache +0 -0
  313. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/W4TLr0zxru3fdu74vUPA7Q0NSo9rBQzpXsJDhhmgrOc.cache +0 -0
  314. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/W4g-AlVlisk-KmOfWK9YTK61IPZ41ieiH_PtbyKWVO8.cache +1 -0
  315. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/W9p6-ZAYQrn59pq45JzwYlrTgVFbMxDqCzUzdj7p0dE.cache +1 -0
  316. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WSZh6DkFiX8cE-wkcukg-owPR07a3PeCZKp5zwK5Wnk.cache +1 -0
  317. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WTkGyh8Pa1WKVOF1pZN2kn_g2O-yJJ1oUw1HUaotrCo.cache +0 -0
  318. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WYsi149ev-3lj8z7T_PRaMJZHP5jphtKnDhYXTYtrr8.cache +0 -0
  319. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WZaEr7Dx5qS8wxdTKpnQtFdbijo4w6fRxIfMIWkvp5E.cache +1 -0
  320. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Wi9t7422bhXpxzveNsqNrKw-Q8hF9mfetiGOEcUi128.cache +0 -0
  321. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WrvyHvyxskoUu2hESm8t70HuPwvKB9ckadVbGojCT6A.cache +1 -0
  322. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WsSOcOD7a6u9aiI_0WqNH9meDsTY-Y_REWWeUCJgUq0.cache +0 -0
  323. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WwGjbo0ZR0fGGxrltve-vCviFOqWaq-_iq_ZNQOcOmo.cache +0 -0
  324. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WysAUFlZwC0wPpISStBvBQWfxQbwLfExNndDnCkcMdM.cache +1 -0
  325. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/X14i7V-QpVmIIjiktvOsBrwmbifDWnVBBmsUVnNDbZ0.cache +0 -0
  326. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XJL_JEBHf4f2ALKEoNIkMFgihf8Nvs2BuNfQxL7kKpg.cache +0 -0
  327. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XJdQDZQmF8cdBbg9y52nN45yXZ3IRkpJNNWYKW0DquI.cache +1 -0
  328. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XLY1ghKs1JM9KeV3HX9SermeaHwJVESPfCnWCzZCySY.cache +1 -0
  329. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Xv9kezPubWLhClO7oq2q93nfkyM0ht9qMiDQeqM4s64.cache +1 -0
  330. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Xx4aHoa-QbX_gCk2RGZjmRZllakB87NXJcGbd1wyhzo.cache +0 -0
  331. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Xzhlz_YcG4J3lG6-bSCJBFq9cPNT7Ea0VrpUgWw8Cnk.cache +0 -0
  332. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Y6Pgf8o3Ig7IvIK0iFAVKUVzw0aFrl3aiYkKJYWwnTU.cache +1 -0
  333. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YInrFHztUTJfpY2m3LxZ41qxWjJ3g1d_9XgQCZ5PCBg.cache +1 -0
  334. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YW2vvXT9klQPlJvu8rimJjsEOyXk4wJObsKzd1xa9RY.cache +0 -0
  335. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YbbSNTj_g-METnCM_QI9UPQN6lZUdqOzmwgqcIqanyU.cache +0 -0
  336. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YdOLkLmiKsc0BH8SxI9eHQF9u2O_vjh4hSQNvIxnJZs.cache +1 -0
  337. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YmBbddZcTBLnT4lBjsjnKr47t1m1nKoMyhwiFvFUzWM.cache +0 -0
  338. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YpZ3OslLHFLCfazpN-QORaVYbsrpYTYDmZKve8QnRek.cache +1 -0
  339. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YuEdQWHaskrp8uBOS_AwSiWgcymqviUhuDP8TIxIiKw.cache +0 -0
  340. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YvnRG6_KIX5lxPDwTwM31eTKCaLy1KJ16evHCZkxSc4.cache +0 -0
  341. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Z0DHGSJwBcginuZMZGfuOwPCzsGOi2mDSLnDaINzsR4.cache +1 -0
  342. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Z91bGT-321OSXhf0Y6v6yzpebdh3ym988JglNem0MoI.cache +1 -0
  343. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZLyEvhQU8ymrGj6y1LqSgolOLO9mKo0ku0flcYjUmpQ.cache +0 -0
  344. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZM-OWmxAhX6yI83BVZhIF9P1bTjl-6FJixUE0Jt_c2U.cache +0 -0
  345. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZVNKqfQyyLCwaHvkmHDUjD3xKpNej13bguc0Vj6aYwE.cache +0 -0
  346. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZVVC8z-DgcZUshlZpch_GTHzkWzZ5_hrdLD9l2S2zJY.cache +1 -0
  347. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Za_2noNWA_ikRmci8vV9ir_Jvpq8kylMoMSMb76K5Vo.cache +0 -0
  348. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZhZdxDhpJtajFEDhudyoLs2Qviq00vWXVikB8mnBL7A.cache +0 -0
  349. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZjkGTFT5BCIqRWPnGgq7r_gOUDZkwhWjT46yu7YdqqY.cache +0 -0
  350. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZmKVytqbFysgZ2xCL8xaVtOMdtI2f_TkzFq572h_ibU.cache +1 -0
  351. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Zw31ykcc2Ae_kssoetkmA-BB_MulqnvYyohpy7Vhirc.cache +0 -0
  352. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_2BL6VE7Zw6LX0O2eKK4V2tPDQnPJt3gcwIP3CtPU7c.cache +1 -0
  353. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_ANBV6gkDJs2vDziW5z--SMwDQ7R-giJ23s0QIt-ISo.cache +0 -0
  354. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_OCrpqQCNxOlEY5zQMgmUHoxK3pHF-8xnsJa1YeJvEA.cache +1 -0
  355. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_x23cpb4jri77FyAaU-y5jab0ahkugGLlfmh50bmr2s.cache +0 -0
  356. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_xLvpguDHqNI4oiYuWAyTb_tiH9E0l130P3EpkYyeA8.cache +2 -0
  357. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/a-s2o0a3P1KP0oIW6jMOn9sWmp0YKePabq-oh3yQJ5s.cache +0 -0
  358. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/a0tC2X6jOQ6ME04dI-JWhlvDd6R3ysneUFXvuctbXB8.cache +1 -0
  359. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/a5rjNn48R1bw9WB9DVSPBZe4C_DFqdU3kTu-PzwtTM8.cache +0 -0
  360. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/aLihd3CscHu2Ii_imrqZseqmUyxJOtrKWCOo1Yjtr2U.cache +0 -0
  361. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/aPBQAgt54gqOghoaTwR1OokWkeO3YLLv6PtTrX3SQvI.cache +1 -0
  362. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/aVxgWmr5f8KCMuTkgUCk44kczk8TWrCT0Qy4LN9MlaA.cache +1 -0
  363. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/aadH2BwLiIFddcvfPIyi8w9nGMj_7rOpvLCbDXj4bVo.cache +1 -0
  364. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/agL6ZEj9DyOTQmSJd07cOJw4MbunmaHnjswpk64WOcs.cache +0 -0
  365. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/atLNe5fs7yApcWY_pxPNdBrMwg_Q3FRRyfyyjBprmdg.cache +1 -0
  366. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/audDR_30hbJcfcwBhcUY4TCJgABvD02D03-wMx9Cfg4.cache +0 -0
  367. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/axEHC-hZ7g1l2OY85I2XMqLdCkhhMVtP07re0hcUhHY.cache +0 -0
  368. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/b1yeGPaA4uZ8P8PwETPeBW0EvZek99TgDmCkYifdWDE.cache +1 -0
  369. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/bN7MQYpu6niVmMu4p3DJPgHg9ahEiqWIFaD86qNbsoA.cache +1 -0
  370. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/bjBt0XAoToV1RsklC9ioNsrSIlR1hW4iXtmcqELRHNU.cache +1 -0
  371. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cLAZOyTk7WaaY0_2Ose25urSN5JP51LbSUGDVgMKI-Q.cache +0 -0
  372. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cSb79BbaCqfrJvZ7nf0_aQ9eelK70PM50uj2eICdRqQ.cache +1 -0
  373. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ch8nkxjjrI1bJnHnvL0cO03vL8UfHAp4RNaONJJ9c2k.cache +1 -0
  374. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/clsYfSiVajd8WlrHTjNH6SCugVo5TV-U1OqonG1F42o.cache +1 -0
  375. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dEXXyY4oiV4HqZ9an_jwKPbSuyXfxkekCF87XOzfjQk.cache +0 -0
  376. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dOhuI9QyNJA3W1WcU02FN7dontSKT0BNvTmlaL6PQ4w.cache +0 -0
  377. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dRSZZPLWkQ7BVbSM7q3rNDwOKFb-XOseqyPvg1e_R7U.cache +1 -0
  378. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dWqvO-o0dt4rlCQJiA-Wz5H-F1GICBur_YJBM7mg4sY.cache +1 -0
  379. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dahKXhnnCtxcCVTu2s13jri4eKmMcaEiUkCbEWpaLdk.cache +1 -0
  380. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dbzvbXhxEa3xVCGh4RG4E8ai3SDpE4DGOaO0uS7Vzs8.cache +1 -0
  381. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/de2Rl0N5EzNgAhuqdn-po9Skjr5lzPUFUrrnuxl6aBk.cache +1 -0
  382. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dmypiOK6R35Jfy2dWmP5dyPXfRF3XRiIuBJdJUh2KCE.cache +1 -0
  383. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/e2F3vonpACMjwW3WHjl7bOVlG3d3ElmuKME70mIfiq4.cache +0 -0
  384. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/e4__-K6pPimomOl3RGP4r8EI7F3-8sCcv373Wm3tn4c.cache +0 -0
  385. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/e4lonkqigfeSpt1G9fuUY5ogLJDgWUHn-8HeeAVBGBw.cache +0 -0
  386. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/eAlrESFSQueMwcnHfF2XGjV3DHYf9EID7E9Pk0zWWdU.cache +1 -0
  387. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/eLZiI9rOpo7_WmssTx6ofeMjrgyv-xy0ERGf73oqsoc.cache +0 -0
  388. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/eR2k5Cn5etQoukDJUW9ftXAEnxM5iXVdHTyHyrQH6LQ.cache +1 -0
  389. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/eWBcgjn2RtkijDmR65uPeK0IBEMyp0fVdyFtJ-TL9QQ.cache +0 -0
  390. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ejs5WdXAdNQ-sK9SsORZ_Q139bfAMjuRENBjd4I3Cv0.cache +1 -0
  391. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/enKN_H4TnOIV1a9F1Hsa62z1jjFtYqCQoKuLNi5aJ0o.cache +0 -0
  392. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/f0OZYGUshiuvvTTKwxjQbknkewP4O1o0KYgB3GJAb5c.cache +1 -0
  393. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fIFeQLA52qqOymnJ0Zl0lRvNcSUStQEjDaUenqnPL_E.cache +1 -0
  394. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fJnzI-rA9M1HhzbF5hjlqoTqXM30cA9MwwkaR420PdU.cache +0 -0
  395. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/faf19GvNEP4Zw5Wna5DN3vzZ-HfcM8l4dv6jMCsLulQ.cache +1 -0
  396. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fhYco00UnLuFQdOjrMtOeXm0jfd0S65PUwqwFfCVmg0.cache +1 -0
  397. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fmmuPOxN6w_ryl-N4dSbFWclt7IH2xEoHF6xYNwDmmA.cache +1 -0
  398. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gC8Y4AUzHM9wlTKbJSFe9E0wN88iU8uKlQ2SvKCDP7Y.cache +1 -0
  399. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gamOOEv2ISPNbGZvMGBNvFOFfvOgyx4vuXNF5AGQXgI.cache +1 -0
  400. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ge_P-4hVS4V3BsDEzLb2uh-QhIuIF9QX2RGxeygKzSo.cache +1 -0
  401. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gjy68vSQgBSTCms9JftlGrYTBdvZCH4YWCMsccVUp5U.cache +1 -0
  402. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gtl0RlnoRm90Bng-_kQvEfmAvdGGQNeNnH2Tw1pJuqc.cache +0 -0
  403. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gz0Dbs5uFHR1Z7X24pHwiaiWshOvzM-UQ0Fu2MmP9R8.cache +0 -0
  404. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/h5jvfuwSGl_5VUSv-VgCDyZCxnQul4kI1WkNELE7gn0.cache +0 -0
  405. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/h8uXTvJgPAYyOLZVDi6Ghv2SsLh_5VB572_FpcyHvyc.cache +0 -0
  406. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hEsbcB6w__LVX87bqUy0cLTgpRkBx4T92MVIYFR6WlQ.cache +0 -0
  407. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hIs7vWkOuMusQsAf8Ok9cBWpZmDRiZwUd6iLQk2CMRI.cache +1 -0
  408. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hRGp8hmrP4NcYjEVpUcxnoMY0yyoYpMbukrIOlKbLHA.cache +1 -0
  409. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hSCj1WB3hGdUBOjpJbiqAMvbsTn-ee94M7iKbge0DIY.cache +1 -0
  410. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hXlUMLS-da2iaEZk75Mr9-Z-cl_jFZgJPFb5uNygbnc.cache +0 -0
  411. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hiW6ql2otP6BZaNtLKf28uhlYQFJzeIgZxMZtgyRBLs.cache +1 -0
  412. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hnLAVz7k4YRxXCZmrRiR7Qy6N4vIGhqKREXAMtATY58.cache +0 -0
  413. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hyYS0R9YJ_Vs3bCM6FQgtKe9qgyeoOltMpdLFV-oBo8.cache +1 -0
  414. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/i0KDer3cGMdifcDRJOoOmWeOshqa1XJAcaAf8tE-8JQ.cache +0 -0
  415. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iFxuUvbs8w4p7JNioTQYrlPzahCKwlREKmp705fCdwk.cache +0 -0
  416. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iKq-Xe5rBeE-3WsSl2s2gYd3fdIV4Zi1BfwXx-KJrrU.cache +0 -0
  417. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iSSVqJx39deUANM39f6xZ0o0yvfbHkZ73lJzm5IM60M.cache +1 -0
  418. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iYOj8s9vM3dDQa7TmslKWvdyg1_QDwVgbBG7OPGdpg0.cache +1 -0
  419. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/j1h4FA8Qbnb3LuWHOE2Jec915bhR-XM1rpfFnMKBE7c.cache +0 -0
  420. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jA0aZB4phypMAhCBo_UR45NkNC3uSeIJxD7h47y9zOk.cache +1 -0
  421. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jFWNfpgXMAK4p5K3wYuxgeri1f4bMoC_K-VplUI87ls.cache +0 -0
  422. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jGuhR3385VR01ycAPEUAxx0FB2Ds8hWvSUPUpLLJavc.cache +1 -0
  423. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jVAwxpszg7VyxgCeIg5kQkXbkYLCE606nw6vSKvo9LU.cache +0 -0
  424. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jZEkGtAvrFpmBrgfphjLILKag_-RNXbFs3RKeAuxbDs.cache +0 -0
  425. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/k8ca1eC1faS68JN5KKzOJXSMuocgmu71h3TZ0k-ZtlM.cache +1 -0
  426. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kFxOgPbI-zPaDyWH9k7Y-dN-y8pVEsiHKIerZCw25cE.cache +0 -0
  427. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kSlBp5V7ZlksqH5lCISm_EJ9EFMr3e2PHJp-nUYWMVo.cache +1 -0
  428. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kYbvszLEu6TLze21hrS4RGjf8WMravIorPtKfKSwFTM.cache +0 -0
  429. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/khSK2MS1QD06316njeJBgjKIccudqQv_KUpWu85ZMS4.cache +1 -0
  430. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/l4BWDnC_aJylkQfCPRZPIkXMr666sMR9ZVJntpppuyo.cache +2 -0
  431. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lLentkgp9WxVVwhS7gK1EhRjqXryhVY96d4YVUFq-eU.cache +1 -0
  432. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lWILzdvgIWRo9TJ8HxpCHzdAwfsuImWwdsWFHixM-Mo.cache +0 -0
  433. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/liZeujxoDIaJZdCt6QGE7a8pY4Mg8GKK2Eejnk5TClc.cache +1 -0
  434. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/m5zrpsTPAV-63C40vaDVVjXPoP4pS5BVf0fM7vCt8ss.cache +1 -0
  435. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mL8sSPkMXVOm4fhgDNtzC_IdCcmju3gBeCNqmHV3p10.cache +0 -0
  436. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mNueLBGN9CuHOOh6M9UzU96t-lhFBO9gTjzx30dYREY.cache +0 -0
  437. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mZ1DriD_rCKVIvBecfK8yS0zYWrU9ZQBH4GDvFxBzE0.cache +0 -0
  438. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/meLsPaTAMJTii5pnXcFHQVlquxkfiDAp_vQQBzua0tw.cache +0 -0
  439. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mgQPFgn-uxTeuwuPZROo1Ei0UTYTkUx5hc7GyEz34Uo.cache +1 -0
  440. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mnuCO7w3vKJlSUQl3yiskqeUslPaR8cNjTpm7B9hReM.cache +0 -0
  441. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mrQ0fhxMpjfQNvmhEcfzZI33KeH9AHkwEtHkzgc5Gts.cache +0 -0
  442. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mxd8kaBPkUqKtkqgiOzcaTESdwdD0ZhRSAsPP2BUb70.cache +1 -0
  443. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n3ukWEyFUIQnrPO3bWJneDzPJJwTLPfZ28HK7ovyLkU.cache +0 -0
  444. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n7Qsju2biP9PnOoU2rgpElwNN5_gg92va06ZoSRfjck.cache +0 -0
  445. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n8RKnjbY6W9X-qMLwV_o55qWV-S1LJEzPVXoimtd7dQ.cache +1 -0
  446. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n90LK6FFM2BLCMZJkc4BtRtFZFB8SQXvBaZfn88RAsU.cache +0 -0
  447. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n9y-X50q_N4z1tBDQ08M62HPro9WiZ35qSDwAPu7NwE.cache +0 -0
  448. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nJHTEwyBPfJGNb6cVAYN3ShYf7NRSPVY5W04GMb5BPw.cache +0 -0
  449. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nL0ab_SgKbdSy5SQje2OF31RkI4PKVUb3QhNSDRfL6Y.cache +0 -0
  450. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nPy3FBLfjEqdT1FPa2s2GunIH7BIxyC3bEt245Wdn3I.cache +0 -0
  451. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ncTmY7A0AlA7fLEruyrOnnVV4WGBY9-FtBhKSAc6agE.cache +1 -0
  452. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ni70OzAoGZhZW6IdTUoTP9oqfCdmACmK7RfJurgZx7s.cache +0 -0
  453. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nlPczNPbq6-fwW9pKKGtS48BZGinuPvOnWlin3N4f8Y.cache +1 -0
  454. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nurG6a-I6RSL7cDOxb8HqudOwqVDG3IG4iIZReHfEbI.cache +1 -0
  455. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nzHZiFM6F0kipwSBcpn7IsdMI0-40Ge6IyHZnYTn5ew.cache +1 -0
  456. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nzZHtIKL9r3BQ_KNsi56Ny1-vJy0ft-JPzrxjm5Y6og.cache +0 -0
  457. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oIRVOhroEdEiBR7Iqrzh3mgkHKC5VGSMQ9eV5nW7JpI.cache +0 -0
  458. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oZjHwGndavYHDs8OcpFulUtkzC6BwWZHYahZ6M9p4io.cache +0 -0
  459. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oZvGZ6sUmzLmDwlB-n7g_ELNojZM5Cw0MHPbwJsWLnE.cache +1 -0
  460. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ob4QIVBdspB18sK03P9oThce9bZJQ2o59GKDL4vCwEE.cache +0 -0
  461. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pHINkYNImIK6_QRvCh-Fpc7fzPTLnn2V54IvlB95GBw.cache +1 -0
  462. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pLMpRnL2FZM05NAcpzAtdKb0yKme1ix-cO85U-dXYzw.cache +1 -0
  463. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pfjjdYmxS8Bq7V6m6yPHqfZlLsgjgAbzbpVGIddNqI4.cache +1 -0
  464. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pt7dn7Wu2f4mgOrJUUH8N_fGbB3IVRxiskZjEWDX7Tk.cache +0 -0
  465. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/q9Fc-_f0kqgFncm894GVkiHPbKfCQ98TDWbhtO6zRRs.cache +1 -0
  466. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qJ2_a8XoFKnMskSS9ZK1X2KMau5shjRbC3ZzfwQjPwk.cache +1 -0
  467. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qW0YNqXCjmBKIt9b6d7r81p-EEOLC3ol1u9Zg68I9Vk.cache +1 -0
  468. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qnOnHfaPgYuOLGntSldAFGY-NvQBP2k9sVLy1jloNqY.cache +1 -0
  469. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qtjJIPeBvQfnh-uvRUYF3vKDscyxjeII7WG4GsIdmso.cache +2 -0
  470. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qxuaSrnLew_R3Ftrssy_ZxnVIXcAp5LoIN4vZoCi1-k.cache +1 -0
  471. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rDBqjdw9zCorfrYUU8pfFeX2IW-UCExcdkUaeoJcYfY.cache +1 -0
  472. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rPAm60Cavvhc-L39UpVhwl5Mu14y6NoVS2FKXUtPrVs.cache +0 -0
  473. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rZc_AH3DtSOiS0rVexhnFERG4PS1grPrqSY-kv7ibZg.cache +0 -0
  474. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rkw5svHJc8EWu4_utAV-lKU5GRB6b9tHeMklj7DqEbI.cache +1 -0
  475. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/s2feIkX_5kK2K_St4luFV2APWLA6f7d8bWXYkb2Boe8.cache +1 -0
  476. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sDPTFDmrB_-QQRgUjM_0JI49JAyym-FShkBOVtKtA_0.cache +0 -0
  477. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sPNaDlNdq6sFwNVjdaG5UAEAm1OvqgfUxJ2nRlKlr0Q.cache +0 -0
  478. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sRvWhgtVmEIdBdTjf-X9rpZyFAsFyPDDlHM3toMI0Ac.cache +1 -0
  479. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/snlJupB9x7Ss81XX8UDTYETQ_kGJ3L1L3C6GVkMZ5dk.cache +1 -0
  480. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/svogeOtO9ck88ovH154hiEFuQDsLaSy6Sxn9K8RX7Dk.cache +1 -0
  481. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/t5RRDhSOMQOZ-1T8kv22gIoAoH0fqH543oKPxICGd94.cache +0 -0
  482. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/t6mAPQbV9gqXKz8UQrFK3rRwdlCxtWCdDBt8czHr-QI.cache +1 -0
  483. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/t9T25E3aNK9lZGIxM8qQaSUMfvHVfZph1qF5Ueto3PI.cache +0 -0
  484. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tEus3Bxry_kLMlVpGfxdIRtyDCZaQa96SA-ci4R4o6E.cache +1 -0
  485. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/taQwk1QGKaT-Jnj-Hqe59mgbigWBZqMVlDtKvnJ0R8A.cache +1 -0
  486. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/trBwIE_LrmGNqvA48z13GV5ytMukuDVtbGp93a_XrM4.cache +0 -0
  487. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/u0W81KcCtqrn-rac6_8XEjLQgMYerVeDOWtGfjm-2HI.cache +0 -0
  488. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/uGcJNV5-i5MaQcCW1kti17zLkzh2xQ2mV3pM8ZRmDss.cache +1 -0
  489. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/uLqFWRpD7E0cYMOIKG2k3yTYwOJUVgOMWAKEp-uTBYE.cache +1 -0
  490. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/uNdFZA26aEjuKidKFAvfTwvStkC4NYLvEoG4ChvYSvM.cache +1 -0
  491. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ueKYZ12Pq-upeXLltFwrkWYwufEAxQDEzFjJF6QlNXw.cache +1 -0
  492. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ugZumAx7waiVwuL8sOE97aCYMvW7sq6ai1mAClnlumM.cache +0 -0
  493. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vA8LqBQnWOqY5cOqR68WYNsmYBSyaB37CKJtmo8ESFY.cache +0 -0
  494. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vJJekCvvQ-CUHPnSKBhAh1JFwRJ4Bw_NNJB-hqzsdN4.cache +0 -0
  495. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vLWfHpUyU5_Y6TycsfO6TVRH3TghrRx1m8DZsZVtCe8.cache +1 -0
  496. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vcSVYW75SWkPIyUIwd7nqhG6f70XCFsNDeY2w2A66i0.cache +0 -0
  497. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vhlnAIAIJWoFkHMVm7FDm7aUeUJRT3Suei82zV7qeZY.cache +0 -0
  498. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vo8IeqG7P0QswDGvgQ6zc-4mo3sAZjxEnZd_pO7gXIQ.cache +0 -0
  499. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/w-svUv3ErPwdHdZdyPvKHmpNQK22_lnzLeVsOLSyJiY.cache +1 -0
  500. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/w5nUk2hB55tB93COnpJBxWgXJKtzcK-v82jHOnvMHrQ.cache +1 -0
  501. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/wc2TVsJGaeJUvfZnVTdsIZ1y6vRUt9cYftLY4fPbbdM.cache +0 -0
  502. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/wf5SyjdCEWJbiEyfS3ASNrOvDIu9RPDrnkAOUwYmNAw.cache +0 -0
  503. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/wu0DiUcorpfefrbzrkv5Gycln02Vr1bmMmy5sbRTE2M.cache +1 -0
  504. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/x-QSaO5thCqq6BdeThyfcl7VBhEfy6W6fLV70gHB454.cache +0 -0
  505. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/x5ECuzE1jiJp4LihQdDgdEBdZpWVsjU56tWVAK0fIHs.cache +1 -0
  506. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/x70LLKfQWUBsw0TJcHBCI4J-15QnwrBDL07zWbEh20w.cache +0 -0
  507. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xNJoBHsfBHPMN1sHc0wmcxABdPiTJZWWIBcpiLhKh-U.cache +1 -0
  508. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xVZbS3o2IZCL8sCd8CVkNEa3dvoyLcpoJ6X_Z2C-bD0.cache +1 -0
  509. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xgVOFvnEAbAB60iPh7swXCr-BX-Hg1HZJFKrDrziN78.cache +0 -0
  510. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xkHALKAFi3gJvj-wYFn7cVXcTODcYBtTwQoT3zCq-4c.cache +1 -0
  511. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xqa2LvqkWQCIFee6n8Henri_DrVhHaWLZbKsvPcMN54.cache +1 -0
  512. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/y1w6x3_LXyjCJpHgmvpCPeuzu_KyEsNBBrG2k69Vt8U.cache +0 -0
  513. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/y62vfBmmbxrxTyH1FAasapBPVuLg_4XUFSJtTkgrIHM.cache +1 -0
  514. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/y6OKhqAc2EqNSlEoQTfQ1SGAe0lDWog3hKecimLuJB0.cache +1 -0
  515. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yCdoXtEDrXpr0Jxs9O3McFRIPv6fZPIa--2KjFnHOS0.cache +0 -0
  516. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yDI_vOGLMtlVyz0YW9CyIy81yb7hEo6uZBok0_EARyQ.cache +0 -0
  517. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yE4wvt8U93RkeT_N9jmlNpecViLBKXYzK9_G58ANAlQ.cache +1 -0
  518. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yKSSkV5UNYnaQKN3FTjWYfG0Rzhp2aqMHDccPfuUAuo.cache +1 -0
  519. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yTpOFZnNfZdYx3QdyGkcSwWOym5qezyheM9A2FGziJU.cache +0 -0
  520. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/y_wwMOO91_I78FUv5c4svWkuWLNTEjcsvWYi8xA__Gw.cache +0 -0
  521. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ytGhFKCKV99DuzApuggfqcfHQNEubBCQk2hAbyOHI7w.cache +0 -0
  522. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yywaz02pegQC1_jqbl85dRLFnLKzHzlzJnj-FP8bX9c.cache +1 -0
  523. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/z0mpQR1_gWSHw5Qr0l9Q-ga7-fxKeyxnjhoXv_5v1rw.cache +0 -0
  524. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/z3DpznW0ht9FWkGVOew037-ySk2hJ_vC9e99ynvMo1U.cache +0 -0
  525. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zAxm0Ib1Puy34tK0O9DynYtZidntTL_rvv9B_LXiW44.cache +1 -0
  526. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zha0Z97ShQRyb9Wml2bB28Rbtizf4LmB5Esbm2YrXlA.cache +1 -0
  527. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zzeIScn75jDzWLQ6GVHcM7OR1zmjA7UsRQdIrCh692M.cache +1 -0
  528. data/test/integration/handlebars_converter_test.rb +66 -0
  529. data/test/integration/sprockets_handlebars_converter_test.rb +47 -0
  530. data/test/integration/template_handler_test.rb +107 -0
  531. data/test/mutton/handlebars_template_handler_test.rb +46 -0
  532. data/test/support/wait_for_ajax.rb +12 -0
  533. data/test/test_helper.rb +30 -0
  534. metadata +1182 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 01382ce7a19a6f72ff3e289d1586b0421d1ba093
4
+ data.tar.gz: 90fbca2f9f886b9cda9cb9a16db89cd32bd6f315
5
+ SHA512:
6
+ metadata.gz: 80d4697164df2592f8b18f6b49d3664f3c2672c7925c9d6d88e0323c8d6b4c523ba44f72b134af7093805d29b56bdb22de6da22acea7eff4aec1d5606a298347
7
+ data.tar.gz: b86c4fe6c3a5ba8aa9612b35102366bb9b15b8ebfa53229383db2582c41543fee60e0c45babfd483f4d18e9176a3eda768f2e1c10c4a7a87f4133d425c00f2dd
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2015 SbbSoftware
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,302 @@
1
+ #Share Handlebar Templates Between Server and Client With Mutton
2
+
3
+ Externalize your handlebar templates and render them from your server as a replacement to ERB,
4
+ and use them unchanged through Javascript on the client. Supports the entire handlebars specification.
5
+ Stop writing script tags and duplicating your work in ERB, every .hbs file can be served up
6
+ directly from a controller, or through Javascript on the client.
7
+
8
+ ##What is Handlebars
9
+ Cut down on view pollution by using logic-less templates. Handlebars is a beautiful progression from Mustache.
10
+ The template engine adds in logical processing, helpers and context changing, while maintaining the beauty of
11
+ front end templating.
12
+
13
+ [Check out handlebars.js.com](http://handlebarsjs.com) for all the details
14
+
15
+ ##Why is Handlebars great?
16
+ Handlebars turns the View back to a design and layout tier.
17
+ By eliminating <% %> you are forced to code your application cleanly, with beautiful templating.
18
+
19
+ #Quick Start
20
+ Create a new Rails application.
21
+
22
+ ####Add the following to your gemfile
23
+
24
+ ```
25
+ gem 'mutton'
26
+ ```
27
+
28
+ ####Create a directory to store your templates.
29
+
30
+ The default is `app/assets/javascript/templates`, but you can store them anywhere,
31
+ including your views directory.
32
+ Be warned, sprockets needs to append a path 1 directory up from your template folder. DISCUSS
33
+
34
+
35
+ ####Create your controllers and templates
36
+
37
+ * create a SamplesController and add the following
38
+ ```
39
+ app/controllers/samples_controller.rb
40
+ class SamplesController < ApplicationController
41
+ before_action :create_sample_data
42
+
43
+ private
44
+
45
+ def create_sample_data
46
+ @greetings = [{ timing: 'morning', phrase: 'Good morning'},
47
+ { timing: 'afternoon', phrase: 'Good afternoon'},
48
+ { timing: 'evening', phrase: 'Good evening'}]
49
+ end
50
+ end
51
+ ```
52
+
53
+ * add the following to routes.rb
54
+
55
+ ```
56
+ config/routes.rb
57
+ root 'samples#index'
58
+ resources :samples
59
+ ```
60
+
61
+ * create a file named index.hbs in app/assets/javascripts/templates/samples
62
+
63
+ Inside the file, code the following
64
+ ```
65
+ app/assets/javascripts/templates/samples/index.hbs
66
+ <h3>Greeting List</h3>
67
+ <div id="greetingPanel">
68
+ {{#greetings}}
69
+ When it's {{timing}} I will say {{phrase}}<br/>
70
+ {{/greetings}}
71
+ </div>
72
+ ```
73
+
74
+ * open your browser and navigate to http://localhost:3000/samples
75
+
76
+ That's it!
77
+
78
+ ####But how did that work?
79
+ If you had created index.html.erb in app/views/samples, Rails would have found
80
+ that file instead. Mutton adds a new path to the LookupContext for Handlebars templates and registers a handler
81
+ for files with .hbs and .handlebars extensions. The template handler loads up all known handlebar
82
+ files registered in sprockets, adds in javascript files stored in your helper directory and sends
83
+ it all off to ExecJS to run as javascript. That's it.
84
+
85
+ ####Now try and render the template client side
86
+
87
+ * create app/views/samples/index.js.erb and copy the code below
88
+
89
+ ```
90
+ app/views/samples/index.js.erb
91
+ var context = <%= assigns.to_json.html_safe %>;
92
+ $('#greetingPanel').html(JHT['samples/update'](context));
93
+ ```
94
+
95
+ * create app/assets/javascripts/templates/update.hbs and copy below
96
+
97
+ ```
98
+ app/assets/javascripts/templates/samples/update.hbs
99
+ <p> I am the latest information on this topic
100
+ {{#greetings}}
101
+ {{>samples/_greeting}}
102
+ {{/greetings}}
103
+
104
+ ```
105
+
106
+ * create app/assets/javascripts/templates/_greeting.hbs and copy below
107
+
108
+ ```
109
+ app/assets/javascripts/templates/samples/_greeting.hbs
110
+ When it's {{timing}} I will say {{phrase}}<br/>
111
+ ```
112
+
113
+ * almost there, edit app/assets/javascripts/templates/samples/index.hbs and change it to below
114
+
115
+ ```
116
+ app/assets/javascripts/templates/samples/index.hbs
117
+ <h3>Greeting List</h3>
118
+ <a data-remote="true" href="/samples">Update greetings</a>
119
+ <div id="greetingPanel">
120
+ {{#greetings}}
121
+ When it's {{timing}} I will say {{phrase}}<br/>
122
+ {{/greetings}}
123
+ </div>
124
+
125
+ ```
126
+
127
+ * finally, add an entry in app/assets/javascripts/application.js
128
+ Add handlebars before require_tree so it looks like below
129
+
130
+ ```
131
+ app/assets/javascripts/application.js
132
+ //= require jquery
133
+ //= require jquery_ujs
134
+ //= require mutton/handlebars.runtime
135
+ //= require templates
136
+ ```
137
+
138
+ Thats it. You should now see an update link, click on it and watch the code render on your browser.
139
+
140
+ That was also a stealth introduction of a partial. When you use the helper {{>}} you're going to pass
141
+ the current context to a partial and see it render. There are a great many ways to change context, or pass
142
+ data on the fly to a partial, check out the [Handlebars documents](http://handlebarsjs.com/partials.html) for more
143
+ information.
144
+
145
+ While you're at it, check your rails log. You should see a 5x improvement in rendering
146
+ time between index.hbs and index.js.erb. This is why everyone wants those single page applications!
147
+ With Mutton, you can write on the server or the client with the same template and hear unicorns sing.
148
+
149
+ ####Ok, well how did that work?
150
+ Registering a template engine with sprockets allows you to process files as part of the sprockets pipeline.
151
+ We hook into all .hbs and .handlebar files and convert them to javascript, calling the Handlebars pre-compiler
152
+ so that we can cut down on client processing. Once they are processed, sprockets caches them and adds them to the
153
+ chain of javascript output from ```javascript_include_tag``` in your application layout.
154
+
155
+ ####So its all the same then?
156
+ Hopefully. Node/your local javascript runtime and browsers are very different. However, Handlebars is elegantly
157
+ namespaced and should not be affected by any other packages on the browser. On the server side, I have
158
+ restricted files under compilation to the templates, helpers you put in a helper directory and handlebars.
159
+ This should restrict different outcomes, but it's always possible there may be some.
160
+
161
+ ##Partials
162
+ I had to make 1 compromise on partials, you have to namespace them, even if
163
+ they are in the same directory.
164
+ For example
165
+ ```
166
+ <h3>Greeting List</h3>
167
+ {{#greetings}}
168
+ {{>samples/greeter}}
169
+ {{/greetings}}
170
+ ```
171
+
172
+ As every template is namespaced with a directory and file name, partials are accessible
173
+ only when namespaced. In addition, everything is a partial. Partials don't need any special naming,
174
+ and you may include any template as a partial providing you access it through
175
+ the correct namespace. Technically, instead of calling the
176
+ register partial function, I copy the entire namespace over to the partial
177
+ space so that everything is available.
178
+
179
+ ##Javascript Helpers and Partials
180
+ If you prefer to write helpers and partials in javascript, you can do this too.
181
+ Whatever you write, put it in your template/helpers directory and it will be included when rendering.
182
+
183
+ ##Local assigns are transferred automatically
184
+
185
+ All local assigns are automatically added to the handlebar context. Be careful, every instance
186
+ variable you create in a controller context will be sent to the browser as data if you're using
187
+ the client side.
188
+
189
+ ##Custom Configuration
190
+ In order to customize settings, create an initializer eg config/initializers/mutton.rb
191
+
192
+ Entries with notes and default values below
193
+ ```
194
+ Mutton.configure do |config|
195
+ # path to templates directory
196
+ config.template_path = Rails.root.join('app', 'assets', 'javascripts', 'templates')
197
+
198
+ # path to javascript helpers
199
+ # every javascript file in this directory will be concatenated with
200
+ # handlebars during compilation
201
+ config.helper_path = File.join(Mutton.template_path, 'helpers')
202
+
203
+ # javascript namespace for compiled templates
204
+ # templates will be accessed by this value
205
+ # JHT['directory/file_without_extension']
206
+ config.template_namespace = 'JHT'
207
+
208
+ # handlebars file for compilation
209
+ # change this if you want to use a beta or other version
210
+ # you dont need to wait for a gem update if handlebars
211
+ # releases a new version
212
+ config.handlebars_file = File.expand_path('../../../vendor/assets/javascripts/mutton/handlebars.js', __FILE__)
213
+
214
+ # when true, instrumentation will be logged at debug level
215
+ config.subscribe_notifications = true
216
+ end
217
+ ```
218
+
219
+ ##Logging
220
+ By default, template rendering on the server and hbs conversion triggered by sprockets will log to the Rails log with log level debug.
221
+ You can turn this off in your configuration file
222
+
223
+
224
+ ##Dependencies
225
+ Sprockets. Yes, you need sprockets. If you've moved to another pipeline solution you're going
226
+ to be unhappy.
227
+
228
+ ExecJs. You can leave it pick the best javascript environment or set the environment in your boot.rb file
229
+
230
+ ```ENV['EXECJS_RUNTIME'] = 'Node'```
231
+
232
+ I recommend Node because, well, Node.
233
+
234
+ ##So what sucks?
235
+ All right everyone, step forward if you use form helpers. Not so fast Handlebars! In order
236
+ to move into a world without cluttered views the tradeoff is; **you have to give up Rails form helpers**. I extracted this from a project which was almost exclusively using
237
+ javascript on the front end, so it wasn't really a hardship, but during testing I have been converting
238
+ a more traditional application and my goodness, is it 2004 already?
239
+ I've been thinking of how to overcome this, either adding compilation of ember and and using those helpers,
240
+ or working on wiring Rails helpers into the mechanism. Neither solution yet appeals but probably sometime before end of year.
241
+
242
+ **The template path**. This caused more problems than the rest of the gem combined. The issue: Rails provides
243
+ a number of hooks for an Engine or Railtie to configure settings, all but one happen after your Controllers
244
+ have been initialized with a LookupContext. That one which is available happens before initialization files
245
+ are processed, so there is no safe way to allow custom configured paths to be added to LookupContext. I add the
246
+ default during pre-initialization, and if there is a custom one I use ```ApplicationController.send(:append_view_path, path)```
247
+ to alter Controller behavior. This is great until you dynamically reload a Controller by editing during development,
248
+ if you're doing this you will have to restart your development server. I recommend using the default setting for now.
249
+
250
+ ##What are the alternatives?
251
+ You could go completely Mustache with https://github.com/agoragames/stache . I found the gem to be excellent, but
252
+ didn't love the template engine enough to go with it.
253
+
254
+ If you don't need server side Handlebars, the very great https://github.com/leshill/handlebars_assets has a
255
+ similar sprockets based pipeline translation system.
256
+
257
+ If you don't need client side templating and want an elegant Ruby based solution with the ability to use helpers, you might
258
+ want to check out https://github.com/zendesk/curly . I love the template engine, but not the
259
+ View Presenter mechanism, not enough re-use for what I need, but it is an impressive design and beautifully
260
+ coded.
261
+
262
+ ##What's Next?
263
+ Sprockets is great, except when it isn't. I'm not thrilled with some of the design decisions I had to make
264
+ but the payoff in simplicity and having the gem work on any new Rails app won me over. Sprockets is used consistently
265
+ on both server and client side rendering. I think Gulp makes, or will make sprockets redundant, sort of, maybe. The problem is that there are so many different ways of using Gulp
266
+ that designing a workable gem becomes exponentially more complex. I hope to make some headway here and see if a new Gulp-based
267
+ version of Mutton is feasible.
268
+
269
+ Possibly adding support for Ember, but there is such a trend toward Angular that it may not be adding any value.
270
+
271
+ ##Credits
272
+ There are some really remarkable engineers whose work influenced this gem. From learning how to use ExecJS
273
+ to finding the best way to annotate view paths during configuration. There are a few projects which demonstrated
274
+ the concepts and techniques I have put to use here, and I would like to thank their authors:
275
+
276
+ * Les Hill (@leshill) and the contributors to handlebar_assets
277
+ * All the folks at @railsware, their shared handlebar assets gem was the best introduction to creating a template handler
278
+ * @sstephensen for Sprockets, ExecJS on which this gem relies
279
+
280
+ Finally, huge thanks to @wycats and the Handlebars team for the work of art that is Handlebars.
281
+
282
+ ###Other tricks
283
+ Works great with https://github.com/gazay/gon, you can ditch your .js.erb files for the client and just do everything in a javascript file.
284
+ With Gon, Handlebars and an onLoad event you should be able to get rid server side template processing altogether,
285
+ provided you're down with your data being readable in the browser.
286
+
287
+ I use a view presenter (to be released soon and pimped here as much as humanely possible) which works for erb,
288
+ handlebars or plain old json. You can use Decorator, maybe even Cells, or just a PORO presenter. Models sent into
289
+ Views and accessed with Ruby are the plastic shopping bags of Rails apps, you will be shocked at how much
290
+ cleaner your application becomes when you can't branch 17 times or do lambda calculus in your views. Give it a try
291
+ even if you don't use Handlebars, find another way to sever logic and code from your view template.
292
+
293
+ Just remember, whatever you send in as assigns end up being used in the server parser and client, namespaced
294
+ by variable name.
295
+
296
+ ###Contributing
297
+ Yes please!
298
+
299
+ 1. Fork It
300
+ 2. Create a topic branch
301
+ 3. Push
302
+ 4. Submit a pull request
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Mutton'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+ load 'rails/tasks/statistics.rake'
22
+
23
+
24
+
25
+ Bundler::GemHelper.install_tasks
26
+
27
+ require 'rake/testtask'
28
+
29
+ Rake::TestTask.new(:test) do |t|
30
+ t.libs << 'lib'
31
+ t.libs << 'test'
32
+ t.pattern = 'test/**/*_test.rb'
33
+ t.verbose = false
34
+ end
35
+
36
+
37
+ task default: :test
@@ -0,0 +1,69 @@
1
+ module Mutton
2
+ module Config
3
+ attr_writer :template_path, :template_namespace,
4
+ :javascript_asset_path, :handlebars_file
5
+
6
+ # provide a custom logger if you are magically using this from outside
7
+ # rails. logger is set during engine configuration ti Rails.logger
8
+ attr_accessor :logger
9
+
10
+ def configure
11
+ yield self
12
+ end
13
+
14
+ # path to templates directory
15
+ def template_path
16
+ @template_path ||= Rails.root.join('app', 'assets', 'javascripts', 'templates')
17
+ # @template_path ||= Rails.root.join('app', 'handlebars', 'templates')
18
+ end
19
+
20
+ # path to javascript helpers
21
+ # every javascript file in this directory will be concatenated with
22
+ # handlebars during compilation
23
+ def helper_path
24
+ @helper_path ||= File.join(Mutton.template_path, 'helpers')
25
+ end
26
+
27
+ # javascript namespace for compiled templates
28
+ # templates will be accessed by this value
29
+ # JHT['directory/file_without_extension']
30
+ def template_namespace
31
+ @template_namespace ||= 'JHT'
32
+ end
33
+
34
+ # handlebars file for compilation
35
+ # change this if you want to use a beta or other version
36
+ # you dont need to wait for a gem update if handlebars
37
+ # releases a new version
38
+ def handlebars_file
39
+ # don't want to force the user to serve my handlebars.js from sprockets so...
40
+ @handlebars_file ||= File.expand_path('../../../vendor/assets/javascripts/mutton/handlebars.js', __FILE__)
41
+ end
42
+
43
+ # when true, instrumentation will be logged at debug level
44
+ def subscribe_notifications
45
+ @subscribe_notifications ||= true
46
+ end
47
+
48
+ alias_method :subscribe_notifications?, :subscribe_notifications
49
+
50
+ # read only properties
51
+
52
+ # sprockets needs to know where hbs files are stored
53
+ # its 1 up from the template path in sprockets-speak
54
+ def sprockets_path
55
+ File.expand_path('../', Mutton.template_path)
56
+ end
57
+
58
+ # shipped default path
59
+ def default_template_path
60
+ # Rails.root.join('app', 'handlebars', 'templates')
61
+ Rails.root.join('app', 'assets', 'javascripts', 'templates')
62
+ end
63
+
64
+ # shipped version of handlebars
65
+ def vendor_version
66
+ 'v3.0.3'
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,37 @@
1
+ module Mutton
2
+ # TODO: are we really using an engine?
3
+ # class Engine < ::Rails::Railtie
4
+ class Engine < ::Rails::Engine
5
+
6
+ isolate_namespace Mutton
7
+
8
+ config.before_configuration do |app|
9
+ # add the default template to rails view paths
10
+ # rails ignores any changes after this event, bastard.
11
+ app.paths['app/views'] << Mutton.default_template_path.to_s
12
+ end
13
+
14
+ config.after_initialize do
15
+ # FIXME: maximum suckage
16
+ # rails will ignore paths set during this event so we need to
17
+ # carry out this workaround
18
+ # if a controller is reloaded dynamically, it will lose this setting and really suck
19
+ ApplicationController.send(:append_view_path, Mutton.template_path.to_s) unless Mutton.template_path == Mutton.default_template_path
20
+ end
21
+
22
+ initializer 'mutton.initialize', group: :all do |app|
23
+ # must have sprockets or you're in trouble
24
+ fail('Sprockets Not Found. This version does not work without sprockets') unless app.assets
25
+ # set logger to rails logger
26
+ Mutton.logger = Rails.logger
27
+ # register with sprockets for hbs and handlebar files
28
+ app.assets.register_engine('.hbs', HandlebarsTemplateConverter, mime_type: 'application/javascript')
29
+ app.assets.register_engine('.handlebars', HandlebarsTemplateConverter, mime_type: 'application/javascript')
30
+ # register template handler with Rails
31
+ ActionView::Template.register_template_handler(:hbs, :handlebars, Mutton::HandlebarsTemplateHandler)
32
+ # TODO: dont register a diretory if it is already part of the sprockets path?
33
+ # add assets to sprockets path
34
+ app.config.assets.paths << Mutton.sprockets_path
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,25 @@
1
+ module Mutton
2
+ module HandlebarsCompiler
3
+ module_function
4
+
5
+ def pre_compile(source)
6
+ source = source.read if source.respond_to?(:read)
7
+ handlebar_context = ExecJS.compile(handlebars_source)
8
+ handlebar_context.call('Handlebars.precompile', source)
9
+ end
10
+
11
+ def compile_handlebars(template_content, template_namespace, mutton_namespace, javascript_helpers = nil)
12
+ ExecJS.compile("#{handlebars_source}; #{javascript_helpers}; #{template_content}; var template = this.#{mutton_namespace}['#{template_namespace}'];")
13
+ end
14
+
15
+ def process_handlebars(template_content, template_namespace, mutton_namespace, assigns, javascript_helpers = nil)
16
+ compiled = compile_handlebars(template_content, template_namespace, mutton_namespace, javascript_helpers)
17
+ compiled.call('template', assigns.as_json)
18
+ end
19
+
20
+ # TODO: get from asset pipeline
21
+ def handlebars_source
22
+ Pathname(Mutton.handlebars_file).read
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,61 @@
1
+ require_relative 'handlebars_compiler'
2
+
3
+ module Mutton
4
+ # convert hbs files into javascript for the asset pipeline
5
+ class HandlebarsTemplateConverter < Tilt::Template
6
+
7
+ def self.default_mime_type
8
+ 'application/javascript'
9
+ end
10
+
11
+ # no changes implemented
12
+ def initialize_engine
13
+ end
14
+
15
+ # no changes implemented
16
+ def prepare
17
+ end
18
+
19
+ # called by sprockets when compiling
20
+ def evaluate(scope, _locals, &_block)
21
+ timing = {}
22
+ ActiveSupport::Notifications.instrument 'evaluate_asset.Mutton', timing do
23
+ start_time = Time.zone.now
24
+ # clients require precompiled templates for optimization
25
+ precompiled_template = HandlebarsCompiler.pre_compile(data)
26
+ end_precompile_time = Time.zone.now
27
+ start_write_source = Time.zone.now
28
+ source = write_source(precompiled_template, scope.logical_path, Mutton.template_namespace)
29
+ end_time = Time.zone.now
30
+ precompile_time = ((end_precompile_time - start_time) * 1000).round(0)
31
+ source_time = ((end_time - start_write_source) * 1000).round(0)
32
+ timing[:precompile_time] = precompile_time
33
+ timing[:source_time] = source_time
34
+ source
35
+ end
36
+ end
37
+
38
+ def write_source(code, path, namespace)
39
+ # drop the first bit of path to get rid of root directory
40
+ paths = path.split('/')
41
+ paths.delete_at(0)
42
+ virtual_path = paths.join('/')
43
+ write_template(namespace, virtual_path, code)
44
+ end
45
+
46
+ def write_template(namespace, virtual_path, source)
47
+ javascript_code = <<CODE
48
+ (function() {
49
+ var template = Handlebars.template,
50
+ templates = this.#{namespace} = this.#{namespace} || {};
51
+ templates['#{virtual_path}'] = template(
52
+ #{source}
53
+ );
54
+ Handlebars.partials = this.#{namespace};
55
+ })(this);
56
+ //best with a large serving of mutton
57
+ CODE
58
+ javascript_code
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,55 @@
1
+ require_relative 'handlebars_compiler'
2
+ module Mutton
3
+ class HandlebarsTemplateHandler
4
+
5
+ # template handler contract this is called from rendering stack
6
+ def self.call(template)
7
+ "Mutton::HandlebarsTemplateHandler.new(self).render_handlebars(#{template.virtual_path.inspect}, Rails.application.assets, assigns)"
8
+ end
9
+
10
+ def initialize(view)
11
+ # not used in this version
12
+ @view = view
13
+ end
14
+
15
+ def render_handlebars(virtual_path, asset_environment, assigns = {})
16
+ timing = {}
17
+ ActiveSupport::Notifications.instrument 'render_template.Mutton', timing do
18
+ start_time = Time.zone.now
19
+ # get every hbs file name and pull from sprockets
20
+ handlebar_content = template_content(asset_environment)
21
+ end_content_time= Time.zone.now
22
+ # get custom javascript from the helper directory
23
+ javascript_helpers = custom_javascript(Rails.application.assets, Mutton.helper_path)
24
+ start_compile_time = Time.zone.now
25
+ # compile it
26
+ result = HandlebarsCompiler.process_handlebars(handlebar_content, virtual_path, Mutton.template_namespace, assigns.as_json, javascript_helpers)
27
+ end_compile_time = Time.zone.now
28
+ content_retrieval_time = ((end_content_time - start_time) * 1000).round(0)
29
+ compile_time = ((end_compile_time - start_compile_time) * 1000).round(0)
30
+ timing[:compile_time] = compile_time
31
+ timing[:content_retrieval_time] = content_retrieval_time
32
+ result.html_safe
33
+ end
34
+ end
35
+
36
+ def template_content(asset_environment)
37
+ handlebar_content = ''
38
+ asset_environment.each_file.select { |x| x.ends_with?('.hbs') || x.ends_with?('.handlebars') }.each do |asset|
39
+ content = Rails.application.assets[asset]
40
+ handlebar_content << content.source
41
+ end
42
+ handlebar_content
43
+ end
44
+
45
+ def custom_javascript(asset_environment, helper_path, _options = {})
46
+ # get everything from the helper directory
47
+ javascript_content = ''
48
+ javascript_helpers = asset_environment.each_file.select { |x| x.starts_with?(helper_path) }
49
+ javascript_helpers.each do |helper|
50
+ javascript_content << File.new(helper, 'r').read
51
+ end
52
+ javascript_content
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,18 @@
1
+ module Mutton
2
+ class NotificationSubscriber
3
+
4
+ if Mutton.subscribe_notifications?
5
+ ActiveSupport::Notifications.subscribe 'render_template.Mutton' do |_name, started, finished, _unique_id, data|
6
+ total_time = ((finished - started) * 1000).round(0)
7
+ Mutton.logger.debug " Mutton::Handler::Render Total Time #{total_time} ms [ Content Retrieval: #{data[:content_retrieval_time]} ms Compile: #{data[:compile_time]} ms ]" if Mutton.logger
8
+ # puts data.inspect # {:this=>:data}
9
+ end
10
+
11
+ ActiveSupport::Notifications.subscribe 'evaluate_asset.Mutton' do |_name, started, finished, _unique_id, data|
12
+ total_time = ((finished - started) * 1000).round(0)
13
+ Mutton.logger.info " Mutton::Evaluation(Asset Pipeline) Total Time #{total_time} ms [ Source Lookup: #{data[:source_time]} ms Pre-Compile: #{data[:precompile_time]} ms ]" if Mutton.logger
14
+ # puts data.inspect # {:this=>:data}
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,3 @@
1
+ module Mutton
2
+ VERSION = '0.0.10'
3
+ end
data/lib/mutton.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'mutton/config'
2
+ module Mutton
3
+ extend Config
4
+ PARTIAL_CONVENTION = { everything: 'rudolph', hunt: 'dasher', underscore: 'prancer', dash: 'blitzen' }
5
+ end
6
+ require 'tilt'
7
+ require 'execjs'
8
+ require 'mutton/engine'
9
+ require 'mutton/notification_subscriber'
10
+ # for server pages
11
+ require 'mutton/handlebars_template_handler'
12
+ # asset pipeline engine
13
+ require 'mutton/handlebars_template_converter'
14
+ # partial handling in server pages
15
+ # require 'mutton/partial_finder'
16
+ # execjs compilation for JS
17
+ require 'mutton/handlebars_compiler'
18
+ require 'mutton/version'
19
+