how_to 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (398) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +56 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/how_to/application.js +21 -0
  5. data/app/assets/javascripts/how_to/chosen.jquery.min.js +10 -0
  6. data/app/assets/javascripts/how_to/jquery.localScroll.min.js +7 -0
  7. data/app/assets/javascripts/how_to/jquery.scrollTo.min.js +7 -0
  8. data/app/assets/javascripts/how_to/jquery.treeview.js +256 -0
  9. data/app/assets/stylesheets/how_to/application.css.scss +28 -0
  10. data/app/assets/stylesheets/how_to/bootstrap_and_overrides.css.scss +3 -0
  11. data/app/assets/stylesheets/how_to/chosen-sprite.png +0 -0
  12. data/app/assets/stylesheets/how_to/chosen-sprite@2x.png +0 -0
  13. data/app/assets/stylesheets/how_to/chosen.css +440 -0
  14. data/app/assets/stylesheets/how_to/images/ajax-loader.gif +0 -0
  15. data/app/assets/stylesheets/how_to/images/file.gif +0 -0
  16. data/app/assets/stylesheets/how_to/images/folder-closed.gif +0 -0
  17. data/app/assets/stylesheets/how_to/images/folder.gif +0 -0
  18. data/app/assets/stylesheets/how_to/images/minus.gif +0 -0
  19. data/app/assets/stylesheets/how_to/images/plus.gif +0 -0
  20. data/app/assets/stylesheets/how_to/images/treeview-black-line.gif +0 -0
  21. data/app/assets/stylesheets/how_to/images/treeview-black.gif +0 -0
  22. data/app/assets/stylesheets/how_to/images/treeview-default-line.gif +0 -0
  23. data/app/assets/stylesheets/how_to/images/treeview-default.gif +0 -0
  24. data/app/assets/stylesheets/how_to/images/treeview-famfamfam-line.gif +0 -0
  25. data/app/assets/stylesheets/how_to/images/treeview-famfamfam.gif +0 -0
  26. data/app/assets/stylesheets/how_to/images/treeview-gray-line.gif +0 -0
  27. data/app/assets/stylesheets/how_to/images/treeview-gray.gif +0 -0
  28. data/app/assets/stylesheets/how_to/images/treeview-red-line.gif +0 -0
  29. data/app/assets/stylesheets/how_to/images/treeview-red.gif +0 -0
  30. data/app/assets/stylesheets/how_to/jquery.treeview.css +74 -0
  31. data/app/controllers/how_to/application_controller.rb +18 -0
  32. data/app/controllers/how_to/contents_controller.rb +67 -0
  33. data/app/controllers/how_to/faq_controller.rb +12 -0
  34. data/app/controllers/how_to/sections_controller.rb +69 -0
  35. data/app/helpers/how_to/application_helper.rb +4 -0
  36. data/app/helpers/how_to/faq_helper.rb +73 -0
  37. data/app/models/how_to/admin_user.rb +13 -0
  38. data/app/models/how_to/content.rb +32 -0
  39. data/app/models/how_to/section.rb +29 -0
  40. data/app/models/how_to/translation_util.rb +70 -0
  41. data/app/views/how_to/contents/_form.html.erb +84 -0
  42. data/app/views/how_to/contents/edit.html.erb +1 -0
  43. data/app/views/how_to/contents/index.html.erb +24 -0
  44. data/app/views/how_to/contents/new.html.erb +1 -0
  45. data/app/views/how_to/contents/show.html.erb +22 -0
  46. data/app/views/how_to/faq/show.html.erb +294 -0
  47. data/app/views/how_to/sections/_form.html.erb +33 -0
  48. data/app/views/how_to/sections/edit.html.erb +1 -0
  49. data/app/views/how_to/sections/index.html.erb +24 -0
  50. data/app/views/how_to/sections/new.html.erb +1 -0
  51. data/app/views/how_to/sections/show.html.erb +18 -0
  52. data/app/views/layouts/how_to/_messages.html.erb +8 -0
  53. data/app/views/layouts/how_to/_navigation.html.erb +13 -0
  54. data/app/views/layouts/how_to/application.html.erb +37 -0
  55. data/config/routes.rb +6 -0
  56. data/db/migrate/20130602053453_create_how_to_sections.rb +24 -0
  57. data/db/migrate/20130602054608_create_how_to_contents.rb +19 -0
  58. data/lib/generators/how_to/config_generator.rb +16 -0
  59. data/lib/generators/how_to/layout_generator.rb +18 -0
  60. data/lib/generators/how_to/templates/how_to_config.rb +22 -0
  61. data/lib/generators/how_to/view_generator.rb +18 -0
  62. data/lib/how_to/config.rb +28 -0
  63. data/lib/how_to/engine.rb +6 -0
  64. data/lib/how_to/version.rb +3 -0
  65. data/lib/how_to.rb +5 -0
  66. data/lib/tasks/how_to_tasks.rake +4 -0
  67. data/test/dummy/Gemfile +10 -0
  68. data/test/dummy/Gemfile.lock +99 -0
  69. data/test/dummy/README.rdoc +261 -0
  70. data/test/dummy/Rakefile +7 -0
  71. data/test/dummy/app/assets/javascripts/application.js +15 -0
  72. data/test/dummy/app/assets/javascripts/mercury.js +452 -0
  73. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  74. data/test/dummy/app/controllers/application_controller.rb +11 -0
  75. data/test/dummy/app/controllers/mercury/images_controller.rb +19 -0
  76. data/test/dummy/app/helpers/application_helper.rb +2 -0
  77. data/test/dummy/app/models/mercury/image.rb +20 -0
  78. data/test/dummy/app/views/layouts/application.html.erb +24 -0
  79. data/test/dummy/config/application.rb +59 -0
  80. data/test/dummy/config/boot.rb +10 -0
  81. data/test/dummy/config/database.yml +25 -0
  82. data/test/dummy/config/environment.rb +5 -0
  83. data/test/dummy/config/environments/development.rb +37 -0
  84. data/test/dummy/config/environments/production.rb +67 -0
  85. data/test/dummy/config/environments/test.rb +37 -0
  86. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  87. data/test/dummy/config/initializers/how_to_config.rb +24 -0
  88. data/test/dummy/config/initializers/inflections.rb +15 -0
  89. data/test/dummy/config/initializers/mime_types.rb +5 -0
  90. data/test/dummy/config/initializers/secret_token.rb +7 -0
  91. data/test/dummy/config/initializers/session_store.rb +8 -0
  92. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  93. data/test/dummy/config/locales/en.yml +5 -0
  94. data/test/dummy/config/routes.rb +10 -0
  95. data/test/dummy/config.ru +4 -0
  96. data/test/dummy/db/development.sqlite3 +0 -0
  97. data/test/dummy/db/migrate/20130603072752_create_mercury_images.rb +11 -0
  98. data/test/dummy/db/schema.rb +72 -0
  99. data/test/dummy/log/development.log +106646 -0
  100. data/test/dummy/public/404.html +26 -0
  101. data/test/dummy/public/422.html +26 -0
  102. data/test/dummy/public/500.html +25 -0
  103. data/test/dummy/public/favicon.ico +0 -0
  104. data/test/dummy/public/system/images/1/medium/Screen_Shot_2013-05-06_at_6.29.38_PM.png +0 -0
  105. data/test/dummy/public/system/images/1/original/Screen_Shot_2013-05-06_at_6.29.38_PM.png +0 -0
  106. data/test/dummy/public/system/images/1/thumb/Screen_Shot_2013-05-06_at_6.29.38_PM.png +0 -0
  107. data/test/dummy/script/rails +6 -0
  108. data/test/dummy/tmp/cache/assets/C19/4E0/sprockets%2F219d43b8396c33bb4240973157007f24 +0 -0
  109. data/test/dummy/tmp/cache/assets/C19/D70/sprockets%2F95f2176b2b35403940711067337fbc45 +0 -0
  110. data/test/dummy/tmp/cache/assets/C1C/A50/sprockets%2Fb27680619545e2251675251c81add803 +0 -0
  111. data/test/dummy/tmp/cache/assets/C1C/DC0/sprockets%2F31508f01060b491632f88871b8e623b5 +0 -0
  112. data/test/dummy/tmp/cache/assets/C26/080/sprockets%2F1f84666985c2e58230720b6a0816690c +0 -0
  113. data/test/dummy/tmp/cache/assets/C40/E80/sprockets%2F2af83092b21ef2934135b7a236125337 +0 -0
  114. data/test/dummy/tmp/cache/assets/C5E/2B0/sprockets%2Fd9466820c7fe7b5560267047c99d3043 +0 -0
  115. data/test/dummy/tmp/cache/assets/C5F/100/sprockets%2F3d006c41992dfd6b18734767a3996373 +0 -0
  116. data/test/dummy/tmp/cache/assets/C65/E00/sprockets%2F59263637894c92e6b5984a836a070a7d +0 -0
  117. data/test/dummy/tmp/cache/assets/C73/F80/sprockets%2F4a349df390e3102cd0541f5134691f16 +0 -0
  118. data/test/dummy/tmp/cache/assets/C77/6C0/sprockets%2F60816c23d175e00efa553a243858e443 +0 -0
  119. data/test/dummy/tmp/cache/assets/C78/EB0/sprockets%2Fc40031016afbe9392d5f83a338784531 +0 -0
  120. data/test/dummy/tmp/cache/assets/C7D/5D0/sprockets%2F4f93b9638caa8a81d618613101425c74 +0 -0
  121. data/test/dummy/tmp/cache/assets/C80/F10/sprockets%2F9811065040254626554af8fec7ea457a +0 -0
  122. data/test/dummy/tmp/cache/assets/C82/830/sprockets%2F0395cf08d0467ef31121a7979af25436 +0 -0
  123. data/test/dummy/tmp/cache/assets/C86/3B0/sprockets%2Ff15dd1dd27696f7053014106759d668a +0 -0
  124. data/test/dummy/tmp/cache/assets/C87/D80/sprockets%2Ff5bda9c45df08608635772529b415154 +0 -0
  125. data/test/dummy/tmp/cache/assets/C89/7F0/sprockets%2Fc583d687e94a56de8691613ed0351150 +0 -0
  126. data/test/dummy/tmp/cache/assets/C8A/220/sprockets%2Fa8cb84f1d3139717fbf4320472268895 +0 -0
  127. data/test/dummy/tmp/cache/assets/C8E/8A0/sprockets%2F2859bc809b0094247ec3cd482e689390 +0 -0
  128. data/test/dummy/tmp/cache/assets/C8F/7A0/sprockets%2Fcc8c34273d89b401cff4990772633729 +0 -0
  129. data/test/dummy/tmp/cache/assets/C91/2F0/sprockets%2F75f0576480e07f18eed6c6671711c946 +0 -0
  130. data/test/dummy/tmp/cache/assets/C92/F30/sprockets%2F8f6219673767447080fc0efd6837ec21 +0 -0
  131. data/test/dummy/tmp/cache/assets/C93/790/sprockets%2F73e658930537ca3695f247d1796cda90 +0 -0
  132. data/test/dummy/tmp/cache/assets/C9A/F20/sprockets%2F47d314d4a124d8df321042640ae162e7 +0 -0
  133. data/test/dummy/tmp/cache/assets/C9C/A10/sprockets%2F3d157be7033780a2681b47a0c0a216f6 +0 -0
  134. data/test/dummy/tmp/cache/assets/CA3/7B0/sprockets%2Fc06c2308ed51865841aac2562e1183b7 +0 -0
  135. data/test/dummy/tmp/cache/assets/CA7/9D0/sprockets%2F346d658742432c01098b017cdead8e13 +0 -0
  136. data/test/dummy/tmp/cache/assets/CAA/530/sprockets%2F02678dc075a24de22c644a2f5c513885 +0 -0
  137. data/test/dummy/tmp/cache/assets/CAA/780/sprockets%2F6418dd350766c5327a5538ba29cf2d01 +0 -0
  138. data/test/dummy/tmp/cache/assets/CAC/510/sprockets%2Fee216f5da81567402757fa740f85102a +0 -0
  139. data/test/dummy/tmp/cache/assets/CAC/9F0/sprockets%2Fc74a3cab8e935c54233d8122e0673646 +0 -0
  140. data/test/dummy/tmp/cache/assets/CAD/580/sprockets%2Fca67d461bd7507f34290b3e262b12977 +0 -0
  141. data/test/dummy/tmp/cache/assets/CAE/F60/sprockets%2Fb84b1272be65b7016604b945bd8283f5 +0 -0
  142. data/test/dummy/tmp/cache/assets/CB0/040/sprockets%2F6f1a127a70682749ea6d65135cf043e7 +0 -0
  143. data/test/dummy/tmp/cache/assets/CB0/530/sprockets%2F629149bb093bf3b14d197a1849d25d17 +0 -0
  144. data/test/dummy/tmp/cache/assets/CB0/E90/sprockets%2F28229c2b33d707cb5084cd17074299df +0 -0
  145. data/test/dummy/tmp/cache/assets/CB1/8C0/sprockets%2F20ba4b3d3899d258dc04e616385380c8 +0 -0
  146. data/test/dummy/tmp/cache/assets/CB2/A60/sprockets%2F9225dcc755785a254297f337cbe70a11 +0 -0
  147. data/test/dummy/tmp/cache/assets/CB2/C50/sprockets%2Faf6f5310506c59177b8c0ca4c7366917 +0 -0
  148. data/test/dummy/tmp/cache/assets/CB4/DF0/sprockets%2Fc0c187e7658863ae3e056d931350a4f5 +0 -0
  149. data/test/dummy/tmp/cache/assets/CB6/310/sprockets%2F3f74fb22bf27e70821446f15c055f777 +0 -0
  150. data/test/dummy/tmp/cache/assets/CB6/FC0/sprockets%2F16d4a7a322b8c356d4e97292d63692b6 +0 -0
  151. data/test/dummy/tmp/cache/assets/CB9/F40/sprockets%2F8c62e211ca115ece7bc6424897578719 +0 -0
  152. data/test/dummy/tmp/cache/assets/CBA/210/sprockets%2F1288fd75a2b7b5e9943d246071c09e65 +0 -0
  153. data/test/dummy/tmp/cache/assets/CBA/C80/sprockets%2F738b5f665b7408415da744199ae39a2c +0 -0
  154. data/test/dummy/tmp/cache/assets/CBE/030/sprockets%2Fde3c5979a7711c289575916e06be090b +0 -0
  155. data/test/dummy/tmp/cache/assets/CBE/6C0/sprockets%2F57c012343b1cc841a231b47ea61f20f1 +0 -0
  156. data/test/dummy/tmp/cache/assets/CBE/D20/sprockets%2F84482670bf9dc49d3982a749a72b2d32 +0 -0
  157. data/test/dummy/tmp/cache/assets/CBF/560/sprockets%2F47e4b9569d894e6a160679ca12d26e24 +0 -0
  158. data/test/dummy/tmp/cache/assets/CC9/5A0/sprockets%2Febdbd594563090002d0b6d21a80812d6 +0 -0
  159. data/test/dummy/tmp/cache/assets/CC9/F00/sprockets%2F09011a5a5890132ed38a61728cec30ac +0 -0
  160. data/test/dummy/tmp/cache/assets/CD2/7D0/sprockets%2F1c4d4beb82ca5d2211896f45242a1853 +0 -0
  161. data/test/dummy/tmp/cache/assets/CD4/FB0/sprockets%2F22b1c3474a0c4fbc10fd2865d7134949 +0 -0
  162. data/test/dummy/tmp/cache/assets/CD9/950/sprockets%2Fa024d6a654485447e12890bb3dc26ef2 +0 -0
  163. data/test/dummy/tmp/cache/assets/CDA/910/sprockets%2F2e8a211d7650278fdb6504966da3dc22 +0 -0
  164. data/test/dummy/tmp/cache/assets/CDC/B80/sprockets%2F31864fd74a2c488ce17be25d681410a4 +0 -0
  165. data/test/dummy/tmp/cache/assets/CDF/400/sprockets%2Fc72a9c317b7870b1d4a01fd67381c839 +0 -0
  166. data/test/dummy/tmp/cache/assets/CE1/650/sprockets%2Faa5aa69a0201992aff34899149ad2927 +0 -0
  167. data/test/dummy/tmp/cache/assets/CE1/9D0/sprockets%2F08e626399f6a85ef9f4a2a2521b3025c +0 -0
  168. data/test/dummy/tmp/cache/assets/CE3/360/sprockets%2F19b4fe2a24fb82254d2934f529a6d528 +0 -0
  169. data/test/dummy/tmp/cache/assets/CE3/AA0/sprockets%2Fef572aa9492f27c67f25161b8c70a263 +0 -0
  170. data/test/dummy/tmp/cache/assets/CE6/C80/sprockets%2Ff54768d25a1ce9035375563fb5f055bd +0 -0
  171. data/test/dummy/tmp/cache/assets/CE8/C70/sprockets%2F04f07c880491b5881494de2eb7c1f3d7 +0 -0
  172. data/test/dummy/tmp/cache/assets/CE9/8D0/sprockets%2Ffc05468c91598ab083f7860d7008bac8 +0 -0
  173. data/test/dummy/tmp/cache/assets/CEF/880/sprockets%2F5329c6bd6b3986d35f6934c036a6f39b +0 -0
  174. data/test/dummy/tmp/cache/assets/CF2/1F0/sprockets%2F21189c17343cf9583a89e75c9bdf815a +0 -0
  175. data/test/dummy/tmp/cache/assets/CF3/7F0/sprockets%2F779e5c8015f96f42cfe5ba6137168f44 +0 -0
  176. data/test/dummy/tmp/cache/assets/CF4/C70/sprockets%2F7d363a475fecc464e416948ce68178d2 +0 -0
  177. data/test/dummy/tmp/cache/assets/CF5/060/sprockets%2F03bb9f125e33948ee6b8e69429d8c708 +0 -0
  178. data/test/dummy/tmp/cache/assets/CF6/860/sprockets%2F2799c7b491e5a0149a39b765fe45f8b7 +0 -0
  179. data/test/dummy/tmp/cache/assets/CF6/DE0/sprockets%2F7eaf598cda47949602e7f7c287054a36 +0 -0
  180. data/test/dummy/tmp/cache/assets/CF9/740/sprockets%2Fb5b5f5309bfe151c2a28a435af126070 +0 -0
  181. data/test/dummy/tmp/cache/assets/CF9/930/sprockets%2F2210dd6a1511207bb4e61f3ce1bf9377 +0 -0
  182. data/test/dummy/tmp/cache/assets/CFB/4F0/sprockets%2F13616d2836c5aec01d6260bc49c32aa7 +0 -0
  183. data/test/dummy/tmp/cache/assets/CFE/5D0/sprockets%2F63226a4062fd6fdc4319bb3a6401b73e +0 -0
  184. data/test/dummy/tmp/cache/assets/CFF/240/sprockets%2F889fc9f46e9cb651766ab26b893f9060 +0 -0
  185. data/test/dummy/tmp/cache/assets/D00/250/sprockets%2F12356cfd31282724abc0cc493a1eb857 +0 -0
  186. data/test/dummy/tmp/cache/assets/D02/C80/sprockets%2F4b3b22c952d1de0ad7110f5e5722f666 +0 -0
  187. data/test/dummy/tmp/cache/assets/D04/B20/sprockets%2F7d319bae1ba417a95081b73bc097f081 +0 -0
  188. data/test/dummy/tmp/cache/assets/D06/3D0/sprockets%2Fe47dc30626d282db3c850409c21ac68d +0 -0
  189. data/test/dummy/tmp/cache/assets/D07/AD0/sprockets%2F6174c7254e03cd00ac4aade79b036878 +0 -0
  190. data/test/dummy/tmp/cache/assets/D08/6A0/sprockets%2F538321dc4ffa82fd62efb84120417e14 +0 -0
  191. data/test/dummy/tmp/cache/assets/D08/9E0/sprockets%2Fa035aeb2b9038f49f151a55903385ebe +0 -0
  192. data/test/dummy/tmp/cache/assets/D08/A60/sprockets%2F07a473b660322e92b5ceb7413cc738de +0 -0
  193. data/test/dummy/tmp/cache/assets/D0A/710/sprockets%2F70e0cf21aa4e94d8bdd8021858775d01 +0 -0
  194. data/test/dummy/tmp/cache/assets/D0C/640/sprockets%2F962c22956d6be2f4eba2156a3221c6f9 +0 -0
  195. data/test/dummy/tmp/cache/assets/D0C/7B0/sprockets%2F768bf4d31279b53e73a7822aa1fd412d +0 -0
  196. data/test/dummy/tmp/cache/assets/D0E/D90/sprockets%2F5197654422a76f8ef2312e82acccd4e0 +0 -0
  197. data/test/dummy/tmp/cache/assets/D10/500/sprockets%2Fd119ef73f5d6356b01352d55d3d6c9c2 +0 -0
  198. data/test/dummy/tmp/cache/assets/D13/B20/sprockets%2F8b44b16dd9005d5195ae17b5c65f5c94 +0 -0
  199. data/test/dummy/tmp/cache/assets/D14/010/sprockets%2Fe6f6d530f81136b68a256d92561ddeb4 +0 -0
  200. data/test/dummy/tmp/cache/assets/D14/F80/sprockets%2Fe9729d268ac7fd290cbe273d13b71831 +0 -0
  201. data/test/dummy/tmp/cache/assets/D15/BC0/sprockets%2F62ed7a4437b3e4e130fbb2d98865087d +0 -0
  202. data/test/dummy/tmp/cache/assets/D1A/760/sprockets%2F421df6566f30e58c9ec27f299a253a7a +0 -0
  203. data/test/dummy/tmp/cache/assets/D1B/490/sprockets%2F146ae9c91901216fdf695e6f43b9f2e1 +0 -0
  204. data/test/dummy/tmp/cache/assets/D1C/E70/sprockets%2Fab3e336cb533413d7f9485ed7b7a2998 +0 -0
  205. data/test/dummy/tmp/cache/assets/D1D/980/sprockets%2Fc88999219c9bc03d27ebe274eac64163 +0 -0
  206. data/test/dummy/tmp/cache/assets/D1D/9C0/sprockets%2F7579376387c4322f20ac8ffeed428bf1 +0 -0
  207. data/test/dummy/tmp/cache/assets/D20/570/sprockets%2Fe099d4a84148fb36663d4fc8f30fa945 +0 -0
  208. data/test/dummy/tmp/cache/assets/D20/F30/sprockets%2F8565cdd915ebadb92064a616c48958e7 +0 -0
  209. data/test/dummy/tmp/cache/assets/D2A/1D0/sprockets%2Ff5cd64f262a3110b37e34f1f3b43d04c +0 -0
  210. data/test/dummy/tmp/cache/assets/D2C/8F0/sprockets%2F1208ed6391ad3bc37bdf31615bdd2208 +0 -0
  211. data/test/dummy/tmp/cache/assets/D2C/F10/sprockets%2Ff36c41fa2eda291c9b33a432626b206d +0 -0
  212. data/test/dummy/tmp/cache/assets/D2E/040/sprockets%2F6cb9add4c9f3641326f694779de627e9 +0 -0
  213. data/test/dummy/tmp/cache/assets/D2E/650/sprockets%2F0d67cb76087efa67994fffd9793071f1 +0 -0
  214. data/test/dummy/tmp/cache/assets/D2F/2F0/sprockets%2Fd07408b77ae5c2231b2141be7ebc46d6 +0 -0
  215. data/test/dummy/tmp/cache/assets/D2F/C10/sprockets%2F178727baa262704eac250ef151daef80 +0 -0
  216. data/test/dummy/tmp/cache/assets/D2F/D80/sprockets%2F61235e4d441fa4da47b21fc662a2a7f4 +0 -0
  217. data/test/dummy/tmp/cache/assets/D30/1E0/sprockets%2Fc4e01ba5e33d851a9b7bc41091047f9a +0 -0
  218. data/test/dummy/tmp/cache/assets/D30/DB0/sprockets%2F535542facc4af3c31124f0509f5f1cd6 +0 -0
  219. data/test/dummy/tmp/cache/assets/D30/E00/sprockets%2Ffe7a64b00672333d2b01b9a1ee9df514 +0 -0
  220. data/test/dummy/tmp/cache/assets/D31/4B0/sprockets%2Fd022f4cf49e041cea91006350728bdfe +0 -0
  221. data/test/dummy/tmp/cache/assets/D31/E00/sprockets%2F23f1eaa83e9b40d52a3377e21fa3830f +0 -0
  222. data/test/dummy/tmp/cache/assets/D33/E50/sprockets%2F9a359b1d99b79e9d7952f795bd5e5b06 +0 -0
  223. data/test/dummy/tmp/cache/assets/D35/360/sprockets%2Faf10ebca1f8b40ce10246f28963581f6 +0 -0
  224. data/test/dummy/tmp/cache/assets/D38/440/sprockets%2F3ac356e5e9cd5373bbd3bf243091c274 +0 -0
  225. data/test/dummy/tmp/cache/assets/D39/D10/sprockets%2Ffd85d145bb32d7f8a0b73100d7a5e477 +0 -0
  226. data/test/dummy/tmp/cache/assets/D3D/280/sprockets%2Faf336a0b0473f04edbc123f8699836ce +0 -0
  227. data/test/dummy/tmp/cache/assets/D3D/AA0/sprockets%2Fb825a60ecf93219bbfa59426e1b0e674 +0 -0
  228. data/test/dummy/tmp/cache/assets/D3D/C50/sprockets%2F6f6bb68a571ad0ed0875a3f345650ae6 +0 -0
  229. data/test/dummy/tmp/cache/assets/D3D/F00/sprockets%2Ffa77735b526e77cb3e1a145df3b4b517 +0 -0
  230. data/test/dummy/tmp/cache/assets/D3F/B00/sprockets%2Fd64ddc718febf7a96600502e0740b6e6 +0 -0
  231. data/test/dummy/tmp/cache/assets/D41/CC0/sprockets%2F4b494edf3456a1266d4c5e9abb1853b7 +0 -0
  232. data/test/dummy/tmp/cache/assets/D41/CD0/sprockets%2F7a5d516096ee20b5ff6c9c0f57111d9c +0 -0
  233. data/test/dummy/tmp/cache/assets/D42/310/sprockets%2F5f7f69d60191bd603a22d8f35e8d71ab +0 -0
  234. data/test/dummy/tmp/cache/assets/D44/B60/sprockets%2F50bf1119f3805ad80a9669a8d7b93eea +0 -0
  235. data/test/dummy/tmp/cache/assets/D46/950/sprockets%2F5034fd78ad2bf870e6921b13e57cf74e +0 -0
  236. data/test/dummy/tmp/cache/assets/D4A/150/sprockets%2F58302ee8b45e99ec96257f37da3b3b2b +0 -0
  237. data/test/dummy/tmp/cache/assets/D4A/FD0/sprockets%2F7697ec3a4ad7f6c93a24b7c83b82c580 +0 -0
  238. data/test/dummy/tmp/cache/assets/D4B/500/sprockets%2F8d48b5392af0d5f62f68bdb4179073ed +0 -0
  239. data/test/dummy/tmp/cache/assets/D4B/940/sprockets%2F45f9087a16a889bd5c27b4c4dda587a4 +0 -0
  240. data/test/dummy/tmp/cache/assets/D4B/C90/sprockets%2Fd2dd2dcb1021a01638e42a7ae704f10d +0 -0
  241. data/test/dummy/tmp/cache/assets/D4E/6C0/sprockets%2F95e5bebb058da8680eaf07f6d7918434 +0 -0
  242. data/test/dummy/tmp/cache/assets/D53/360/sprockets%2F68fbda37095347e98c362f714aa6edf9 +0 -0
  243. data/test/dummy/tmp/cache/assets/D55/240/sprockets%2F9fd8685c40d809fab9102fe5f719c57d +0 -0
  244. data/test/dummy/tmp/cache/assets/D58/6B0/sprockets%2Fb4fa1b036a2ad06a7096ce6f34bc3155 +0 -0
  245. data/test/dummy/tmp/cache/assets/D5E/F10/sprockets%2F2493e3c20ccf117a2bc238f4265e4cdb +0 -0
  246. data/test/dummy/tmp/cache/assets/D5E/F70/sprockets%2Fd7f0775ce102b67c00f6cabd460c414e +0 -0
  247. data/test/dummy/tmp/cache/assets/D5F/360/sprockets%2F52a905ac9d5d2c285bbda75a18602cd1 +0 -0
  248. data/test/dummy/tmp/cache/assets/D63/D50/sprockets%2F6fe911e989a26eba56e87885c7e671fd +0 -0
  249. data/test/dummy/tmp/cache/assets/D66/3A0/sprockets%2F5290b688cc391fe427bddd150d3ba0e4 +0 -0
  250. data/test/dummy/tmp/cache/assets/D6F/BD0/sprockets%2F8d42e5b5aae95a6a71065729db319cbf +0 -0
  251. data/test/dummy/tmp/cache/assets/D6F/C70/sprockets%2F45b57c525f8b6cb60d972c337afab1d7 +0 -0
  252. data/test/dummy/tmp/cache/assets/D72/F00/sprockets%2F567d23ca5a48504bef5d9d3275fd8c2a +0 -0
  253. data/test/dummy/tmp/cache/assets/D75/1E0/sprockets%2Fb0426b4c9b3b35e89c6f8c1a117fe9b9 +0 -0
  254. data/test/dummy/tmp/cache/assets/D75/6B0/sprockets%2Fd5677267caad996b0c5910cacb78d8a3 +0 -0
  255. data/test/dummy/tmp/cache/assets/D75/D10/sprockets%2F998b7cb098c93b0f5cfa24b7a72bc705 +0 -0
  256. data/test/dummy/tmp/cache/assets/D76/380/sprockets%2F3dba07871e3815c9dbd014fcfec07989 +0 -0
  257. data/test/dummy/tmp/cache/assets/D76/F20/sprockets%2F544c1d52dbde4cea686745fea23966d4 +0 -0
  258. data/test/dummy/tmp/cache/assets/D79/320/sprockets%2F3eb7bbd968328afa2598bdf60be92273 +0 -0
  259. data/test/dummy/tmp/cache/assets/D7A/2B0/sprockets%2Fb1811d164159d4b8943ffed88a83febc +0 -0
  260. data/test/dummy/tmp/cache/assets/D7A/590/sprockets%2F488fda9ec61cc67cd66a40d4db686901 +0 -0
  261. data/test/dummy/tmp/cache/assets/D7B/250/sprockets%2Fab742f73049dce9be4a83bdd88e92363 +0 -0
  262. data/test/dummy/tmp/cache/assets/D7C/0D0/sprockets%2F1f8acfbfd2566fe79d2e03963b7e7125 +0 -0
  263. data/test/dummy/tmp/cache/assets/D7D/3D0/sprockets%2Ff43fd77613099ab4944e3beac67fd63e +0 -0
  264. data/test/dummy/tmp/cache/assets/D7F/4B0/sprockets%2Fc8b034851786e1dce4f89cfad8f03a78 +0 -0
  265. data/test/dummy/tmp/cache/assets/D80/D40/sprockets%2F7f47a88d4fc00badb7c392566a6ef994 +0 -0
  266. data/test/dummy/tmp/cache/assets/D82/C50/sprockets%2Ffc86c95bb48e4ecc57191b530ec66e79 +0 -0
  267. data/test/dummy/tmp/cache/assets/D8F/270/sprockets%2Face0ae5e25b4442c51c79146cbd4f3d2 +0 -0
  268. data/test/dummy/tmp/cache/assets/D90/A50/sprockets%2F0b141b5a5dafb84ddad1a55d068675e4 +0 -0
  269. data/test/dummy/tmp/cache/assets/D91/930/sprockets%2Ffd1b885c1b51d472cce3a18ac16b790a +0 -0
  270. data/test/dummy/tmp/cache/assets/D91/D80/sprockets%2F2efaa6861f042ee4e7040c0afb7175af +0 -0
  271. data/test/dummy/tmp/cache/assets/D93/2B0/sprockets%2Feab7ab6d37ca58dd8ab709041182b4d3 +0 -0
  272. data/test/dummy/tmp/cache/assets/D93/950/sprockets%2Fb1100cf24e57d3af1e37fd3cf5e6245d +0 -0
  273. data/test/dummy/tmp/cache/assets/D96/2F0/sprockets%2F41d318f17fd0bcb940cd0c5af8ad6862 +0 -0
  274. data/test/dummy/tmp/cache/assets/D96/610/sprockets%2Fc41fbdb656d4ba12e71643fb85f2cc62 +0 -0
  275. data/test/dummy/tmp/cache/assets/D99/F70/sprockets%2Fa0faa921b67c3185b3fdd384ffec3048 +0 -0
  276. data/test/dummy/tmp/cache/assets/D9A/8B0/sprockets%2F63d2a2dafb03dbe806f4941d2197d8fb +0 -0
  277. data/test/dummy/tmp/cache/assets/D9B/EA0/sprockets%2F585c1d3a2eb19360c66ba2aa786cede9 +0 -0
  278. data/test/dummy/tmp/cache/assets/D9D/0C0/sprockets%2F48defbce081e0e0d6b5800b8408ea89c +0 -0
  279. data/test/dummy/tmp/cache/assets/D9D/ED0/sprockets%2Ff6aeb0532c9f84c2d95b9c0ce22c285b +0 -0
  280. data/test/dummy/tmp/cache/assets/D9E/EB0/sprockets%2F2d2454a997d027c2ab4caea88beb728f +0 -0
  281. data/test/dummy/tmp/cache/assets/DA0/2E0/sprockets%2F51b8a2fec0b5f837f33fdd753047ecd4 +0 -0
  282. data/test/dummy/tmp/cache/assets/DA0/B70/sprockets%2Fa1ca1dfb58231884f75ad7fc7bfd1096 +0 -0
  283. data/test/dummy/tmp/cache/assets/DA1/D00/sprockets%2F3199bbdf805ad7e168f063b4c7d64bbc +0 -0
  284. data/test/dummy/tmp/cache/assets/DA1/EE0/sprockets%2F6ae1f85194f8f27c543edb3d6ca2ac27 +0 -0
  285. data/test/dummy/tmp/cache/assets/DA6/9D0/sprockets%2F537cb5de3f5a28db9b7d70f43f5146fc +0 -0
  286. data/test/dummy/tmp/cache/assets/DA7/9F0/sprockets%2Fc8e9d843fc40c2fbc9c634872cb4fc42 +0 -0
  287. data/test/dummy/tmp/cache/assets/DAA/290/sprockets%2F2b6eeff463c1c6c858d0e25a99cd571e +0 -0
  288. data/test/dummy/tmp/cache/assets/DAF/D30/sprockets%2F68639fcdb72c88ba936171cc8c7edd2c +0 -0
  289. data/test/dummy/tmp/cache/assets/DB0/890/sprockets%2F22ee8c94ae2f1f7c1dd864613e96be9f +0 -0
  290. data/test/dummy/tmp/cache/assets/DB1/1F0/sprockets%2F7bc0ae4c8f2cff29bc5665c497ce3966 +0 -0
  291. data/test/dummy/tmp/cache/assets/DB1/770/sprockets%2F4c6cdd1f99fd63d4381f8f6d914cb8a3 +0 -0
  292. data/test/dummy/tmp/cache/assets/DB2/190/sprockets%2Ffa0a00fbc0566cc15efb1e4b550c7b43 +0 -0
  293. data/test/dummy/tmp/cache/assets/DB5/670/sprockets%2Fbbe79f5c6b52ff7b5999439f9e10d2ba +0 -0
  294. data/test/dummy/tmp/cache/assets/DBB/310/sprockets%2F8801a53aae3a5cfbbf6afb4911b6e250 +0 -0
  295. data/test/dummy/tmp/cache/assets/DBF/090/sprockets%2Fa1d06161a5549a5beb04c1ecf1ee7b8f +0 -0
  296. data/test/dummy/tmp/cache/assets/DC1/2E0/sprockets%2F1aced1e5c45bedc05f7f356b7c04c333 +0 -0
  297. data/test/dummy/tmp/cache/assets/DC6/E80/sprockets%2Fa26bc43d806fbe14e3c98d1aaac7c187 +0 -0
  298. data/test/dummy/tmp/cache/assets/DC7/160/sprockets%2Ffabb219b45f7a15ecdfe00e9b72e1717 +0 -0
  299. data/test/dummy/tmp/cache/assets/DC9/1E0/sprockets%2F0cac86d268bd53b4fd345523eff0fd2c +0 -0
  300. data/test/dummy/tmp/cache/assets/DCB/D50/sprockets%2F6f9bf42abcffccbf79934c153a03f303 +0 -0
  301. data/test/dummy/tmp/cache/assets/DCC/CC0/sprockets%2F0bda2b37991f01ed84bb1f92dfc4b8e6 +0 -0
  302. data/test/dummy/tmp/cache/assets/DCD/2C0/sprockets%2F17cc84d7a4feca214ba059e862d72efc +0 -0
  303. data/test/dummy/tmp/cache/assets/DCF/B30/sprockets%2F4c59ef59af3722cc5fcab32c62cd3f27 +0 -0
  304. data/test/dummy/tmp/cache/assets/DD0/3A0/sprockets%2F4d4a71b06bdee794a208f465bde37cfe +0 -0
  305. data/test/dummy/tmp/cache/assets/DD4/690/sprockets%2Fec8e6f146d1f849cfd14d332d6abb36f +0 -0
  306. data/test/dummy/tmp/cache/assets/DD4/BE0/sprockets%2F4f8c298525c055dbf1dfaa6ecd5a786a +0 -0
  307. data/test/dummy/tmp/cache/assets/DD5/850/sprockets%2F684493b4fc6bb5cea1ed78cdc17169da +0 -0
  308. data/test/dummy/tmp/cache/assets/DD9/4B0/sprockets%2Ff5cced904e06e098959fd6ebb40ca47b +0 -0
  309. data/test/dummy/tmp/cache/assets/DD9/8B0/sprockets%2Fbf4630cdd5ef3bf43759f28c2a8fa9e3 +0 -0
  310. data/test/dummy/tmp/cache/assets/DDF/0A0/sprockets%2F35947cd516192ee5cedee8d2edb99ca4 +0 -0
  311. data/test/dummy/tmp/cache/assets/DE6/8B0/sprockets%2F22934a7eedd3cc615d252a41dbcbab0f +0 -0
  312. data/test/dummy/tmp/cache/assets/DEC/C40/sprockets%2Ffed907f747c5ddcc7ed1b5d9e7457b97 +0 -0
  313. data/test/dummy/tmp/cache/assets/DEF/5C0/sprockets%2F817fa2addeaef84032a5ae5f1a3c417d +0 -0
  314. data/test/dummy/tmp/cache/assets/DEF/D00/sprockets%2Fad3dc3d3f115e20c7ed4fc227bdc719a +0 -0
  315. data/test/dummy/tmp/cache/assets/DF1/580/sprockets%2F67e2edad1baaad15747d50b8e0960ceb +0 -0
  316. data/test/dummy/tmp/cache/assets/DF3/1B0/sprockets%2F2f8ca9ace0f2870bce4a5a265ffea330 +0 -0
  317. data/test/dummy/tmp/cache/assets/DF4/B60/sprockets%2F1c2e39610dab9505becde018fdade8e3 +0 -0
  318. data/test/dummy/tmp/cache/assets/DF6/9F0/sprockets%2F95ab91d0f1ec24fcd2ec65d81ece53a1 +0 -0
  319. data/test/dummy/tmp/cache/assets/DF8/550/sprockets%2F2af2ff76b6cd2da28d970cda7b1e64a2 +0 -0
  320. data/test/dummy/tmp/cache/assets/DF9/070/sprockets%2Fe9ac9b1acfd404246d5c1b99c82acfd1 +0 -0
  321. data/test/dummy/tmp/cache/assets/DF9/1B0/sprockets%2Fb9ead2a8c07c3aebd9d378536344bbda +0 -0
  322. data/test/dummy/tmp/cache/assets/DFA/C20/sprockets%2F25cf85f1a6ba24ee7d7ab1e4562aee4e +0 -0
  323. data/test/dummy/tmp/cache/assets/DFA/D60/sprockets%2F3f2d96bcba0351e5a51dfca709bce98e +0 -0
  324. data/test/dummy/tmp/cache/assets/DFB/380/sprockets%2Fcaa936ba0a3b34d83f9cd1798e1efed0 +0 -0
  325. data/test/dummy/tmp/cache/assets/DFB/620/sprockets%2Fae2a55e9dc2dbc0c06a8ac9b9559f4a4 +0 -0
  326. data/test/dummy/tmp/cache/assets/DFB/CB0/sprockets%2Fcec172552ae2ee5d3ea9f01db4359cff +0 -0
  327. data/test/dummy/tmp/cache/assets/DFE/230/sprockets%2F6b16bd95c7aea403dccc2cbd8a4889c6 +0 -0
  328. data/test/dummy/tmp/cache/assets/DFE/7A0/sprockets%2F471d58fbea73f2bb45fc9a5cbbf5622d +0 -0
  329. data/test/dummy/tmp/cache/assets/DFE/FD0/sprockets%2F9c107bd8a32fdea8dde8ea4f616313cf +0 -0
  330. data/test/dummy/tmp/cache/assets/E00/EE0/sprockets%2Fb2a8dc4198d7b8a7856ae6fca2b3a4dd +0 -0
  331. data/test/dummy/tmp/cache/assets/E0B/150/sprockets%2Feabd48d3cde859438fdfb4bd5c470c76 +0 -0
  332. data/test/dummy/tmp/cache/assets/E0C/010/sprockets%2Fcfc8c66eac1dc87e162327f9ba9e53ef +0 -0
  333. data/test/dummy/tmp/cache/assets/E0C/5B0/sprockets%2Fff82de3396c9e151ebc5bcc7cec49e27 +0 -0
  334. data/test/dummy/tmp/cache/assets/E0C/760/sprockets%2Fbc38ff5ba7465efe72f62cfff08e912a +0 -0
  335. data/test/dummy/tmp/cache/assets/E0D/EB0/sprockets%2Fd1dfbec7746948ef547ec405cfc61ccf +0 -0
  336. data/test/dummy/tmp/cache/assets/E18/550/sprockets%2Ffb1e05fd387cb16eeda010d001ded7ce +0 -0
  337. data/test/dummy/tmp/cache/assets/E24/520/sprockets%2Fbd16acd2525dbd537dfceb3dc3606f5d +0 -0
  338. data/test/dummy/tmp/cache/assets/E27/5D0/sprockets%2Fa74dfa521b6fc1b408446efbfde1b8eb +0 -0
  339. data/test/dummy/tmp/cache/assets/E2D/520/sprockets%2Fedded9a73a49058ddaac0feb501a876f +0 -0
  340. data/test/dummy/tmp/cache/assets/E7A/ED0/sprockets%2F06aed41ad28cf0c1dc8efdeecdc01f22 +0 -0
  341. data/test/dummy/tmp/cache/assets/E7E/C20/sprockets%2F2aedb288b2bcdce1bd9a982aff00ae5a +0 -0
  342. data/test/dummy/tmp/cache/sass/3fdb360d4d93587da931a45430309bf6099edb9d/bootstrap-responsive.scssc +0 -0
  343. data/test/dummy/tmp/cache/sass/3fdb360d4d93587da931a45430309bf6099edb9d/bootstrap.scssc +0 -0
  344. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_accordion.scssc +0 -0
  345. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_alerts.scssc +0 -0
  346. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_breadcrumbs.scssc +0 -0
  347. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_button-groups.scssc +0 -0
  348. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_buttons.scssc +0 -0
  349. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_carousel.scssc +0 -0
  350. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_close.scssc +0 -0
  351. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_code.scssc +0 -0
  352. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_component-animations.scssc +0 -0
  353. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_dropdowns.scssc +0 -0
  354. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_forms.scssc +0 -0
  355. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_grid.scssc +0 -0
  356. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_hero-unit.scssc +0 -0
  357. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_labels-badges.scssc +0 -0
  358. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_layouts.scssc +0 -0
  359. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_media.scssc +0 -0
  360. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_mixins.scssc +0 -0
  361. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_modals.scssc +0 -0
  362. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_navbar.scssc +0 -0
  363. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_navs.scssc +0 -0
  364. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_pager.scssc +0 -0
  365. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_pagination.scssc +0 -0
  366. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_popovers.scssc +0 -0
  367. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_progress-bars.scssc +0 -0
  368. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_reset.scssc +0 -0
  369. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_responsive-1200px-min.scssc +0 -0
  370. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_responsive-767px-max.scssc +0 -0
  371. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_responsive-768px-979px.scssc +0 -0
  372. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_responsive-navbar.scssc +0 -0
  373. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_responsive-utilities.scssc +0 -0
  374. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_scaffolding.scssc +0 -0
  375. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_sprites.scssc +0 -0
  376. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_tables.scssc +0 -0
  377. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_thumbnails.scssc +0 -0
  378. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_tooltip.scssc +0 -0
  379. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_type.scssc +0 -0
  380. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_utilities.scssc +0 -0
  381. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_variables.scssc +0 -0
  382. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/_wells.scssc +0 -0
  383. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/bootstrap.scssc +0 -0
  384. data/test/dummy/tmp/cache/sass/9b321e8af54768180e20e746ee5d44bf1cd3b0f9/responsive.scssc +0 -0
  385. data/test/dummy/tmp/cache/sass/a1ca19fc2b3afb4a167a105e195117650bf09684/application.css.scssc +0 -0
  386. data/test/dummy/tmp/cache/sass/a1ca19fc2b3afb4a167a105e195117650bf09684/bootstrap_and_overrides.css.scssc +0 -0
  387. data/test/fixtures/how_to/admin_users.yml +11 -0
  388. data/test/fixtures/how_to/contents.yml +11 -0
  389. data/test/fixtures/how_to/sections.yml +11 -0
  390. data/test/functional/how_to/faq_controller_test.rb +11 -0
  391. data/test/how_to_test.rb +7 -0
  392. data/test/integration/navigation_test.rb +10 -0
  393. data/test/test_helper.rb +15 -0
  394. data/test/unit/helpers/how_to/faq_helper_test.rb +6 -0
  395. data/test/unit/how_to/admin_user_test.rb +9 -0
  396. data/test/unit/how_to/content_test.rb +9 -0
  397. data/test/unit/how_to/section_test.rb +9 -0
  398. metadata +805 -0
@@ -0,0 +1,452 @@
1
+ /*!
2
+ * Mercury Editor is a CoffeeScript and jQuery based WYSIWYG editor. Documentation and other useful information can be
3
+ * found at https://github.com/jejacks0n/mercury
4
+ *
5
+ * Minimum jQuery requirements are 1.7
6
+ *= require_self
7
+ *
8
+ * You can include the Rails jQuery ujs script here to get some nicer behaviors in modals, panels and lightviews when
9
+ * using :remote => true within the contents rendered in them.
10
+ * require jquery_ujs
11
+ *
12
+ * Add any requires for the support libraries that integrate nicely with Mercury Editor.
13
+ * require mercury/support/history
14
+ *
15
+ * Require Mercury Editor itself.
16
+ *= require mercury/mercury
17
+ *
18
+ * Require any localizations you wish to support
19
+ * Example: es.locale, or fr.locale -- regional dialects are in each language file so never en_US for instance.
20
+ * Make sure you enable the localization feature in the configuration.
21
+ * require mercury/locales/swedish_chef.locale
22
+ *
23
+ * Add all requires for plugins that extend or change the behavior of Mercury Editor.
24
+ * require mercury/plugins/save_as_xml/plugin.js
25
+ *
26
+ * Require any files you want to use that either extend, or change the default Mercury behavior.
27
+ * require mercury_overrides
28
+ */
29
+ window.Mercury = {
30
+
31
+ // # Mercury Configuration
32
+ config: {
33
+ // ## Toolbars
34
+ //
35
+ // This is where you can customize the toolbars by adding or removing buttons, or changing them and their
36
+ // behaviors. Any top level object put here will create a new toolbar. Buttons are simply nested inside the
37
+ // toolbars, along with button groups.
38
+ //
39
+ // Some toolbars are custom (the snippets toolbar for instance), and to denote that use _custom: true. You can then
40
+ // build the toolbar yourself with it's own behavior.
41
+ //
42
+ // Buttons can be grouped, and a button group is simply a way to wrap buttons for styling -- they can also handle
43
+ // enabling or disabling all the buttons within it by using a context. The table button group is a good example of
44
+ // this.
45
+ //
46
+ // It's important to note that each of the button names (keys), in each toolbar object must be unique, regardless of
47
+ // if it's in a button group, or nested, etc. This is because styling is applied to them by name, and because their
48
+ // name is used in the event that's fired when you click on them.
49
+ //
50
+ // Button format: `[label, description, {type: action, type: action, etc}]`
51
+ //
52
+ // ### The available button types are:
53
+ //
54
+ // - toggle: toggles on or off when clicked, otherwise behaves like a button
55
+ // - modal: opens a modal window, expects the action to be one of:
56
+ // 1. a string url
57
+ // 2. a function that returns a string url
58
+ // - lightview: opens a lightview window (like modal, but different UI), expects the action to be one of:
59
+ // 1. a string url
60
+ // 2. a function that returns a string url
61
+ // - panel: opens a panel dialog, expects the action to be one of:
62
+ // 1. a string url
63
+ // 2. a function that returns a string url
64
+ // - palette: opens a palette window, expects the action to be one of:
65
+ // 1. a string url
66
+ // 2. a function that returns a string url
67
+ // - select: opens a pulldown style window, expects the action to be one of:
68
+ // 1. a string url
69
+ // 2. a function that returns a string url
70
+ // - context: calls a callback function, expects the action to be:
71
+ // 1. a function that returns a boolean to highlight the button
72
+ // note: if a function isn't provided, the key will be passed to the contextHandler, in which case a default
73
+ // context will be used (for more info read the Contexts section below)
74
+ // - mode: toggle a given mode in the editor, expects the action to be:
75
+ // 1. a string, denoting the name of the mode
76
+ // note: it's assumed that when a specific mode is turned on, all other modes will be turned off, which happens
77
+ // automatically, thus putting the editor into a specific "state"
78
+ // - regions: allows buttons to be enabled/disabled based on what region type has focus, expects:
79
+ // 1. an array of region types (eg. ['full', 'markdown'])
80
+ // - preload: allows some dialog views to be loaded when the button is created instead of on first open, expects:
81
+ // 1. a boolean true / false
82
+ // note: this is only used by panels, selects, and palettes
83
+ //
84
+ // Separators are any "button" that's not an array, and are expected to be a string. You can use two different
85
+ // separator styles: line ('-'), and spacer (' ').
86
+ //
87
+ // ### Adding Contexts
88
+ //
89
+ // Contexts are used callback functions used for highlighting and disabling/enabling buttons and buttongroups. When
90
+ // the cursor enters an element within an html region for instance we want to disable or highlight buttons based on
91
+ // the properties of the given node. You can see examples of contexts in, and add your own to:
92
+ // `Mercury.Toolbar.Button.contexts` and `Mercury.Toolbar.ButtonGroup.contexts`
93
+ toolbars: {
94
+ primary: {
95
+ save: ['Save', 'Save this page'],
96
+ preview: ['Preview', 'Preview this page', { toggle: true, mode: true }],
97
+ sep1: ' ',
98
+ undoredo: {
99
+ undo: ['Undo', 'Undo your last action'],
100
+ redo: ['Redo', 'Redo your last action'],
101
+ sep: ' '
102
+ },
103
+ insertLink: ['Link', 'Insert Link', { modal: '/mercury/modals/link.html', regions: ['full', 'markdown'] }],
104
+ insertMedia: ['Media', 'Insert Media (images and videos)', { modal: '/mercury/modals/media.html', regions: ['full', 'markdown'] }],
105
+ insertTable: ['Table', 'Insert Table', { modal: '/mercury/modals/table.html', regions: ['full', 'markdown'] }],
106
+ insertCharacter: ['Character', 'Special Characters', { modal: '/mercury/modals/character.html', regions: ['full', 'markdown'] }],
107
+ snippetPanel: ['Snippet', 'Snippet Panel', { panel: '/mercury/panels/snippets.html' }],
108
+ sep2: ' ',
109
+ historyPanel: ['History', 'Page Version History', { panel: '/mercury/panels/history.html' }],
110
+ sep3: ' ',
111
+ notesPanel: ['Notes', 'Page Notes', { panel: '/mercury/panels/notes.html' }]
112
+ },
113
+
114
+ editable: {
115
+ _regions: ['full', 'markdown'],
116
+ predefined: {
117
+ style: ['Style', null, { select: '/mercury/selects/style.html', preload: true }],
118
+ sep1: ' ',
119
+ formatblock: ['Block Format', null, { select: '/mercury/selects/formatblock.html', preload: true }],
120
+ sep2: '-'
121
+ },
122
+ colors: {
123
+ backColor: ['Background Color', null, { palette: '/mercury/palettes/backcolor.html', context: true, preload: true, regions: ['full'] }],
124
+ sep1: ' ',
125
+ foreColor: ['Text Color', null, { palette: '/mercury/palettes/forecolor.html', context: true, preload: true, regions: ['full'] }],
126
+ sep2: '-'
127
+ },
128
+ decoration: {
129
+ bold: ['Bold', null, { context: true }],
130
+ italic: ['Italicize', null, { context: true }],
131
+ overline: ['Overline', null, { context: true, regions: ['full'] }],
132
+ strikethrough: ['Strikethrough', null, { context: true, regions: ['full'] }],
133
+ underline: ['Underline', null, { context: true, regions: ['full'] }],
134
+ sep: '-'
135
+ },
136
+ script: {
137
+ subscript: ['Subscript', null, { context: true }],
138
+ superscript: ['Superscript', null, { context: true }],
139
+ sep: '-'
140
+ },
141
+ justify: {
142
+ justifyLeft: ['Align Left', null, { context: true, regions: ['full'] }],
143
+ justifyCenter: ['Center', null, { context: true, regions: ['full'] }],
144
+ justifyRight: ['Align Right', null, { context: true, regions: ['full'] }],
145
+ justifyFull: ['Justify Full', null, { context: true, regions: ['full'] }],
146
+ sep: '-'
147
+ },
148
+ list: {
149
+ insertUnorderedList: ['Unordered List', null, { context: true }],
150
+ insertOrderedList: ['Numbered List', null, { context: true }],
151
+ sep: '-'
152
+ },
153
+ indent: {
154
+ outdent: ['Decrease Indentation'],
155
+ indent: ['Increase Indentation'],
156
+ sep: '-'
157
+ },
158
+ table: {
159
+ _context: true,
160
+ insertRowBefore: ['Insert Table Row', 'Insert a table row before the cursor', { regions: ['full'] }],
161
+ insertRowAfter: ['Insert Table Row', 'Insert a table row after the cursor', { regions: ['full'] }],
162
+ deleteRow: ['Delete Table Row', 'Delete this table row', { regions: ['full'] }],
163
+ insertColumnBefore: ['Insert Table Column', 'Insert a table column before the cursor', { regions: ['full'] }],
164
+ insertColumnAfter: ['Insert Table Column', 'Insert a table column after the cursor', { regions: ['full'] }],
165
+ deleteColumn: ['Delete Table Column', 'Delete this table column', { regions: ['full'] }],
166
+ sep1: ' ',
167
+ increaseColspan: ['Increase Cell Columns', 'Increase the cells colspan'],
168
+ decreaseColspan: ['Decrease Cell Columns', 'Decrease the cells colspan and add a new cell'],
169
+ increaseRowspan: ['Increase Cell Rows', 'Increase the cells rowspan'],
170
+ decreaseRowspan: ['Decrease Cell Rows', 'Decrease the cells rowspan and add a new cell'],
171
+ sep2: '-'
172
+ },
173
+ rules: {
174
+ horizontalRule: ['Horizontal Rule', 'Insert a horizontal rule'],
175
+ sep1: '-'
176
+ },
177
+ formatting: {
178
+ removeFormatting: ['Remove Formatting', 'Remove formatting for the selection', { regions: ['full'] }],
179
+ sep2: ' '
180
+ },
181
+ editors: {
182
+ htmlEditor: ['Edit HTML', 'Edit the HTML content', { regions: ['full'] }]
183
+ }
184
+ },
185
+
186
+ snippets: {
187
+ _custom: true,
188
+ actions: {
189
+ editSnippet: ['Edit Snippet Settings'],
190
+ sep1: ' ',
191
+ removeSnippet: ['Remove Snippet']
192
+ }
193
+ }
194
+ },
195
+
196
+
197
+ // ## Region Options
198
+ //
199
+ // You can customize some aspects of how regions are found, identified, and saved.
200
+ //
201
+ // attribute: Mercury identifies editable regions by a data-mercury attribute. This attribute has to be added in
202
+ // your HTML in advance, and is the only real code/naming exposed in the implementation of Mercury. To allow this
203
+ // to be as configurable as possible, you can set the name of this attribute. If you change this, you should adjust
204
+ // the injected styles as well.
205
+ //
206
+ // identifier: This is used as a unique identifier for any given region (and thus should be unique to the page).
207
+ // By default this is the id attribute but can be changed to a data attribute should you want to use something
208
+ // custom instead.
209
+ //
210
+ // dataAttributes: The dataAttributes is an array of data attributes that will be serialized and returned to the
211
+ // server upon saving. These attributes, when applied to a Mercury region element, will be automatically serialized
212
+ // and submitted with the AJAX request sent when a page is saved. These are expected to be HTML5 data attributes,
213
+ // and 'data-' will automatically be prepended to each item in this directive. (ex. ['scope', 'version'])
214
+ //
215
+ // determineType: This function is called after checking the data-type attribute for the correct field type. Use
216
+ // it if you want to dynamically set the type based on inspection of the region.
217
+ regions: {
218
+ attribute: 'data-mercury',
219
+ identifier: 'id',
220
+ dataAttributes: []
221
+ // determineType: function(region){},
222
+ },
223
+
224
+
225
+ // ## Snippet Options / Preview
226
+ //
227
+ // When a user drags a snippet onto the page they'll be prompted to enter options for the given snippet. The server
228
+ // is expected to respond with a form. Once the user submits this form, an Ajax request is sent to the server with
229
+ // the options provided; this preview request is expected to respond with the rendered markup for the snippet.
230
+ //
231
+ // method: The HTTP method used when submitting both the options and the preview. We use POST by default because a
232
+ // snippet options form may contain large text inputs and we don't want that to be truncated when sent to the
233
+ // server.
234
+ //
235
+ // optionsUrl: The url that the options form will be loaded from.
236
+ //
237
+ // previewUrl: The url that the options will be submitted to, and will return the rendered snippet markup.
238
+ //
239
+ // **Note:** `:name` will be replaced with the snippet name in the urls (eg. /mercury/snippets/example/options.html)
240
+ snippets: {
241
+ method: 'POST',
242
+ optionsUrl: '/mercury/snippets/:name/options.html',
243
+ previewUrl: '/mercury/snippets/:name/preview.html'
244
+ },
245
+
246
+
247
+ // ## Image Uploading
248
+ //
249
+ // If you drag images from your desktop into regions that support it, it will be uploaded to the server and inserted
250
+ // into the region. You can disable or enable this feature, the accepted mime-types, file size restrictions, and
251
+ // other things related to uploading.
252
+ //
253
+ // **Note:** Image uploading is only supported in some region types, and some browsers.
254
+ //
255
+ // enabled: You can set this to true, or false if you want to disable the feature entirely.
256
+ //
257
+ // allowedMimeTypes: You can restrict the types of files that can be uploaded by providing a list of allowed mime
258
+ // types.
259
+ //
260
+ // maxFileSize: You can restrict large files by setting the maxFileSize (in bytes).
261
+ //
262
+ // inputName: When uploading, a form is generated and submitted to the server via Ajax. If your server would prefer
263
+ // a different name for how the image comes through, you can change the inputName.
264
+ //
265
+ // url: The url that the image upload will be submitted to.
266
+ //
267
+ // handler: You can use false to let Mercury handle it for you, or you can provide a handler function that can
268
+ // modify the response from the server. This can be useful if your server doesn't respond the way Mercury expects.
269
+ // The handler function should take the response from the server and return an object that matches:
270
+ // `{image: {url: '[your provided url]'}`
271
+ uploading: {
272
+ enabled: true,
273
+ allowedMimeTypes: ['image/jpeg', 'image/gif', 'image/png'],
274
+ maxFileSize: 1235242880,
275
+ inputName: 'image[image]',
276
+ url: '/mercury/images',
277
+ handler: false
278
+ },
279
+
280
+
281
+ // ## Localization / I18n
282
+ //
283
+ // Include the .locale files you want to support when loading Mercury. The files are always named by the language,
284
+ // and not the regional dialect (eg. en.locale.js) because the regional dialects are nested within the primary
285
+ // locale files.
286
+ //
287
+ // The client locale will be used first, and if no proper locale file is found for their language then the fallback
288
+ // preferredLocale configuration will be used. If one isn't provided, and the client locale isn't included, the
289
+ // strings will remain untranslated.
290
+ //
291
+ // enabled: Set to false to disable, true to enable.
292
+ //
293
+ // preferredLocale: If a client doesn't support the locales you've included, this is used as a fallback.
294
+ localization: {
295
+ enabled: false,
296
+ preferredLocale: 'swedish_chef-BORK'
297
+ },
298
+
299
+
300
+ // ## Behaviors
301
+ //
302
+ // Behaviors are used to change the default behaviors of a given region type when a given button is clicked. For
303
+ // example, you may prefer to add HR tags using an HR wrapped within a div with a classname (for styling). You
304
+ // can add your own complex behaviors here and they'll be shared across all regions.
305
+ //
306
+ // If you want to add behaviors to specific region types, you can mix them into the actions property of any region
307
+ // type.
308
+ //
309
+ // Mercury.Regions.Full.actions.htmlEditor = function() {}
310
+ //
311
+ // You can see how the behavior matches up directly with the button names. It's also important to note that the
312
+ // callback functions are executed within the scope of the given region, so you have access to all it's methods.
313
+ behaviors: {
314
+ //foreColor: function(selection, options) { selection.wrap('<span style="color:' + options.value.toHex() + '">', true) },
315
+ htmlEditor: function() { Mercury.modal('/mercury/modals/htmleditor.html', { title: 'HTML Editor', fullHeight: true, handler: 'htmlEditor' }); }
316
+ },
317
+
318
+
319
+ // ## Global Behaviors
320
+ //
321
+ // Global behaviors are much like behaviors, but are more "global". Things like save, exit, etc. can be included
322
+ // here. They'll only be called once, and execute within the scope of whatever editor is instantiated (eg.
323
+ // PageEditor).
324
+ //
325
+ // An example of changing how saving works:
326
+ //
327
+ // save: function() {
328
+ // var data = top.JSON.stringify(this.serialize(), null, ' ');
329
+ // var content = '<textarea style="width:500px;height:200px" wrap="off">' + data + '</textarea>';
330
+ // Mercury.modal(null, {title: 'Saving', closeButton: true, content: content})
331
+ // }
332
+ //
333
+ // This is a nice way to add functionality, when the behaviors aren't region specific. These can be triggered by a
334
+ // button, or manually with `Mercury.trigger('action', {action: 'barrelRoll'})`
335
+ globalBehaviors: {
336
+ exit: function() { window.location.href = this.iframeSrc() },
337
+ barrelRoll: function() { $('body').css({webkitTransform: 'rotate(360deg)'}) }
338
+ },
339
+
340
+
341
+ // ## Ajax and CSRF Headers
342
+ //
343
+ // Some server frameworks require that you provide a specific header for Ajax requests. The values for these CSRF
344
+ // tokens are typically stored in the rendered DOM. By default, Mercury will look for the Rails specific meta tag,
345
+ // and provide the X-CSRF-Token header on Ajax requests, but you can modify this configuration if the system you're
346
+ // using doesn't follow the same standard.
347
+ csrfSelector: 'meta[name="csrf-token"]',
348
+ csrfHeader: 'X-CSRF-Token',
349
+
350
+
351
+ // ## Editor URLs
352
+ //
353
+ // When loading a given page, you may want to tweak this regex. It's to allow the url to differ from the page
354
+ // you're editing, and the url at which you access it.
355
+ editorUrlRegEx: /([http|https]:\/\/.[^\/]*)\/editor\/?(.*)/i,
356
+
357
+
358
+ // ## Hijacking Links & Forms
359
+ //
360
+ // Mercury will hijack links and forms that don't have a target set, or the target is set to _self and will set it
361
+ // to _parent. This is because the target must be set properly for Mercury to not get in the way of some
362
+ // functionality, like proper page loads on form submissions etc. Mercury doesn't do this to links or forms that
363
+ // are within editable regions because it doesn't want to impact the html that's saved. With that being explained,
364
+ // you can add classes to links or forms that you don't want this behavior added to. Let's say you have links that
365
+ // open a lightbox style window, and you don't want the targets of these to be set to _parent. You can add classes
366
+ // to this array, and they will be ignored when the hijacking is applied.
367
+ nonHijackableClasses: [],
368
+
369
+
370
+ // ## Pasting & Sanitizing
371
+ //
372
+ // When pasting content into Mercury it may sometimes contain HTML tags and attributes. This markup is used to
373
+ // style the content and makes the pasted content look (and behave) the same as the original content. This can be a
374
+ // desired feature or an annoyance, so you can enable various sanitizing methods to clean the content when it's
375
+ // pasted.
376
+ //
377
+ // sanitize: Can be any of the following:
378
+ // - false: no sanitizing is done, the content is pasted the exact same as it was copied by the user
379
+ // - 'whitelist': content is cleaned using the settings specified in the tag white list (described below)
380
+ // - 'text': all html is stripped before pasting, leaving only the raw text
381
+ //
382
+ // whitelist: The white list allows you to specify tags and attributes that are allowed when pasting content. Each
383
+ // item in this object should contain the allowed tag, and an array of attributes that are allowed on that tag. If
384
+ // the allowed attributes array is empty, all attributes will be removed. If a tag is not present in this list, it
385
+ // will be removed, but without removing any of the text or tags inside it.
386
+ //
387
+ // **Note:** Content is *always* sanitized if looks like it's from MS Word or similar editors regardless of this
388
+ // configuration.
389
+ pasting: {
390
+ sanitize: 'whitelist',
391
+ whitelist: {
392
+ h1: [],
393
+ h2: [],
394
+ h3: [],
395
+ h4: [],
396
+ h5: [],
397
+ h6: [],
398
+ table: [],
399
+ thead: [],
400
+ tbody: [],
401
+ tfoot: [],
402
+ tr: [],
403
+ th: ['colspan', 'rowspan'],
404
+ td: ['colspan', 'rowspan'],
405
+ div: ['class'],
406
+ span: ['class'],
407
+ ul: [],
408
+ ol: [],
409
+ li: [],
410
+ b: [],
411
+ strong: [],
412
+ i: [],
413
+ em: [],
414
+ u: [],
415
+ strike: [],
416
+ br: [],
417
+ p: [],
418
+ hr: [],
419
+ a: ['href', 'target', 'title', 'name'],
420
+ img: ['src', 'title', 'alt']
421
+ }
422
+ },
423
+
424
+
425
+ // ## Injected Styles
426
+ //
427
+ // Mercury tries to stay as much out of your code as possible, but because regions appear within your document we
428
+ // need to include a few styles to indicate regions, as well as the different states of them (eg. focused). These
429
+ // styles are injected into your document, and as simple as they might be, you may want to change them.
430
+ injectedStyles: '' +
431
+ '[data-mercury] { min-height: 10px; outline: 1px dotted #09F } ' +
432
+ '[data-mercury]:focus { outline: none; -webkit-box-shadow: 0 0 10px #09F, 0 0 1px #045; box-shadow: 0 0 10px #09F, 0 0 1px #045 }' +
433
+ '[data-mercury].focus { outline: none; -webkit-box-shadow: 0 0 10px #09F, 0 0 1px #045; box-shadow: 0 0 10px #09F, 0 0 1px #045 }' +
434
+ '[data-mercury]:after { content: "."; display: block; visibility: hidden; clear: both; height: 0; overflow: hidden; }' +
435
+ '[data-mercury] table { border: 1px dotted red; min-width: 6px; }' +
436
+ '[data-mercury] th { border: 1px dotted red; min-width: 6px; }' +
437
+ '[data-mercury] td { border: 1px dotted red; min-width: 6px; }' +
438
+ '[data-mercury] .mercury-textarea { border: 0; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; resize: none; }' +
439
+ '[data-mercury] .mercury-textarea:focus { outline: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; }'
440
+ },
441
+
442
+ // ## Silent Mode
443
+ //
444
+ // Turning silent mode on will disable asking about unsaved changes before leaving the page.
445
+ silent: false,
446
+
447
+ // ## Debug Mode
448
+ //
449
+ // Turning debug mode on will log events and other various things (using console.debug if available).
450
+ debug: false
451
+
452
+ };
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,11 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+
4
+ def authorize_to_manage_how_to
5
+ #redirect_to :root
6
+ end
7
+
8
+ def permitted_to_manage_how_to?
9
+ true
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ class Mercury::ImagesController < MercuryController
2
+
3
+ respond_to :json
4
+
5
+ # POST /images.json
6
+ def create
7
+ @image = Mercury::Image.new(params[:image])
8
+ @image.save
9
+ respond_with @image
10
+ end
11
+
12
+ # DELETE /images/1.json
13
+ def destroy
14
+ @image = Mercury::Image.find(params[:id])
15
+ @image.destroy
16
+ respond_with @image
17
+ end
18
+
19
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,20 @@
1
+ class Mercury::Image < ActiveRecord::Base
2
+
3
+ self.table_name = :mercury_images
4
+
5
+ attr_accessible :image
6
+
7
+ has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" },
8
+ :path => ":rails_root/public/system/:attachment/:id/:style/:filename",
9
+ :url => "/system/:attachment/:id/:style/:filename"
10
+
11
+ delegate :url, :to => :image
12
+
13
+ def serializable_hash(options = nil)
14
+ options ||= {}
15
+ options[:methods] ||= []
16
+ options[:methods] << :url
17
+ super(options)
18
+ end
19
+
20
+ end
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, maximum-scale=1.0, initial-scale=1.0">
5
+ <%= csrf_meta_tags %>
6
+ <title>Mercury Editor</title>
7
+ <%= stylesheet_link_tag 'mercury' %>
8
+ <%= javascript_include_tag 'jquery-1.7', 'mercury' %>
9
+ <%= yield(:head) %>
10
+ </head>
11
+ <body>
12
+ <script type="text/javascript">
13
+ // Set to the url that you want to save any given page to, leave null for default handling.
14
+ var saveUrl = null;
15
+
16
+ // Instantiate the PageEditor
17
+ new Mercury.PageEditor(saveUrl, {
18
+ saveStyle: null, // 'form', or 'json' (default json)
19
+ saveMethod: null, // 'PUT', or 'POST', (create, vs. update -- default PUT)
20
+ visible: true // boolean - if the interface should start visible or not
21
+ });
22
+ </script>
23
+ </body>
24
+ </html>
@@ -0,0 +1,59 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails/all'
4
+
5
+ Bundler.require(*Rails.groups)
6
+ require "how_to"
7
+
8
+ module Dummy
9
+ class Application < Rails::Application
10
+ # Settings in config/environments/* take precedence over those specified here.
11
+ # Application configuration should go into files in config/initializers
12
+ # -- all .rb files in that directory are automatically loaded.
13
+
14
+ # Custom directories with classes and modules you want to be autoloadable.
15
+ # config.autoload_paths += %W(#{config.root}/extras)
16
+
17
+ # Only load the plugins named here, in the order given (default is alphabetical).
18
+ # :all can be used as a placeholder for all plugins not explicitly named.
19
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
20
+
21
+ # Activate observers that should always be running.
22
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
23
+
24
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
25
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
26
+ # config.time_zone = 'Central Time (US & Canada)'
27
+
28
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
29
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
30
+ # config.i18n.default_locale = :de
31
+
32
+ # Configure the default encoding used in templates for Ruby 1.9.
33
+ config.encoding = "utf-8"
34
+
35
+ # Configure sensitive parameters which will be filtered from the log file.
36
+ config.filter_parameters += [:password]
37
+
38
+ # Enable escaping HTML in JSON.
39
+ config.active_support.escape_html_entities_in_json = true
40
+
41
+ # Use SQL instead of Active Record's schema dumper when creating the database.
42
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
43
+ # like if you have constraints or database-specific column types
44
+ # config.active_record.schema_format = :sql
45
+
46
+ # Enforce whitelist mode for mass assignment.
47
+ # This will create an empty whitelist of attributes available for mass-assignment for all models
48
+ # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
49
+ # parameters by using an attr_accessible or attr_protected declaration.
50
+ config.active_record.whitelist_attributes = true
51
+
52
+ # Enable the asset pipeline
53
+ config.assets.enabled = true
54
+
55
+ # Version of your assets, change this if you want to expire all your assets
56
+ config.assets.version = '1.0'
57
+ end
58
+ end
59
+
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ gemfile = File.expand_path('../../../../Gemfile', __FILE__)
3
+
4
+ if File.exist?(gemfile)
5
+ ENV['BUNDLE_GEMFILE'] = gemfile
6
+ require 'bundler'
7
+ Bundler.setup
8
+ end
9
+
10
+ $:.unshift File.expand_path('../../../../lib', __FILE__)
@@ -0,0 +1,25 @@
1
+ # SQLite version 3.x
2
+ # gem install sqlite3
3
+ #
4
+ # Ensure the SQLite 3 gem is defined in your Gemfile
5
+ # gem 'sqlite3'
6
+ development:
7
+ adapter: sqlite3
8
+ database: db/development.sqlite3
9
+ pool: 5
10
+ timeout: 5000
11
+
12
+ # Warning: The database defined as "test" will be erased and
13
+ # re-generated from your development database when you run "rake".
14
+ # Do not set this db to the same as development or production.
15
+ test:
16
+ adapter: sqlite3
17
+ database: db/test.sqlite3
18
+ pool: 5
19
+ timeout: 5000
20
+
21
+ production:
22
+ adapter: sqlite3
23
+ database: db/production.sqlite3
24
+ pool: 5
25
+ timeout: 5000
@@ -0,0 +1,5 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the rails application
5
+ Dummy::Application.initialize!