mutton 0.0.10

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 (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
+