exo_cms 0.0.1

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 (515) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +34 -0
  4. data/app/assets/images/exo/admin/favicon.ico +0 -0
  5. data/app/assets/images/exo/admin/logo.png +0 -0
  6. data/app/assets/images/exo/admin/logo_mini.png +0 -0
  7. data/app/assets/javascripts/exo/admin/application.js +77 -0
  8. data/app/assets/javascripts/exo/admin/ckeditor_init.js +7 -0
  9. data/app/assets/javascripts/exo/admin/ckeditor_path.js.erb +6 -0
  10. data/app/assets/javascripts/exo/admin/editor_overrides.js.coffee +40 -0
  11. data/app/assets/javascripts/exo/admin/epiceditor.js +2947 -0
  12. data/app/assets/javascripts/exo/admin/responsive-tables.js +67 -0
  13. data/app/assets/javascripts/exo/delayed_foundation.js +7 -0
  14. data/app/assets/stylesheets/exo/admin/application.sass +68 -0
  15. data/app/assets/stylesheets/exo/admin/components/colorize.sass +9 -0
  16. data/app/assets/stylesheets/exo/admin/components/content.sass +28 -0
  17. data/app/assets/stylesheets/exo/admin/components/header.sass +8 -0
  18. data/app/assets/stylesheets/exo/admin/components/sidebar.sass +19 -0
  19. data/app/assets/stylesheets/exo/admin/components/tables.sass +14 -0
  20. data/app/assets/stylesheets/exo/admin/components/wrapper.sass +15 -0
  21. data/app/assets/stylesheets/exo/admin/epiceditor/epic-light.css +12 -0
  22. data/app/assets/stylesheets/exo/admin/epiceditor/epiceditor.css +70 -0
  23. data/app/assets/stylesheets/exo/admin/epiceditor/github.css +368 -0
  24. data/app/assets/stylesheets/exo/admin/foundation_and_overrides.scss +1003 -0
  25. data/app/assets/stylesheets/exo/admin/mercury.css +36 -0
  26. data/app/assets/stylesheets/exo/admin/mercury_overrides.css +17 -0
  27. data/app/assets/stylesheets/exo/admin/responsive-tables.css +38 -0
  28. data/app/assets/stylesheets/exo/foundation_and_overrides copy.scss +993 -0
  29. data/app/controllers/concerns/exo/admin/site_slug_id_filter.rb +25 -0
  30. data/app/controllers/concerns/exo/host_filter.rb +22 -0
  31. data/app/controllers/concerns/exo/route_filter.rb +19 -0
  32. data/app/controllers/exo/admin/application_controller.rb +12 -0
  33. data/app/controllers/exo/admin/assets_controller.rb +41 -0
  34. data/app/controllers/exo/admin/ckeditor_assets_controller.rb +29 -0
  35. data/app/controllers/exo/admin/ckeditor_blocks_controller.rb +23 -0
  36. data/app/controllers/exo/admin/contributors_controller.rb +5 -0
  37. data/app/controllers/exo/admin/items_controller.rb +80 -0
  38. data/app/controllers/exo/admin/pages_controller.rb +23 -0
  39. data/app/controllers/exo/admin/resources_controller.rb +5 -0
  40. data/app/controllers/exo/admin/routes_controller.rb +11 -0
  41. data/app/controllers/exo/admin/sessions_controller.rb +6 -0
  42. data/app/controllers/exo/admin/settings_controller.rb +66 -0
  43. data/app/controllers/exo/admin/site_controller.rb +4 -0
  44. data/app/controllers/exo/application_controller.rb +6 -0
  45. data/app/controllers/exo/gridfs_controller.rb +32 -0
  46. data/app/controllers/exo/pages_controller.rb +24 -0
  47. data/app/exceptions/exo/route/unknow_path_error.rb +13 -0
  48. data/app/exceptions/exo/site/unknow_host_error.rb +12 -0
  49. data/app/helpers/application_helper.rb +2 -0
  50. data/app/helpers/exo/block_helper.rb +21 -0
  51. data/app/helpers/exo/pagination_helper.rb +21 -0
  52. data/app/helpers/exo/resources_helper.rb +65 -0
  53. data/app/models/concerns/exo/document.rb +8 -0
  54. data/app/models/exo/asset.rb +32 -0
  55. data/app/models/exo/block.rb +13 -0
  56. data/app/models/exo/contributor.rb +42 -0
  57. data/app/models/exo/resource/item/abstract_relation.rb +21 -0
  58. data/app/models/exo/resource/item/abstract_value.rb +35 -0
  59. data/app/models/exo/resource/item/asset_value.rb +17 -0
  60. data/app/models/exo/resource/item/belongs_to_value.rb +26 -0
  61. data/app/models/exo/resource/item/has_many_value.rb +24 -0
  62. data/app/models/exo/resource/item/list_value.rb +23 -0
  63. data/app/models/exo/resource/item/markdown_value.rb +52 -0
  64. data/app/models/exo/resource/item/simple_value.rb +15 -0
  65. data/app/models/exo/resource/item.rb +169 -0
  66. data/app/models/exo/resource/item_asset.rb +20 -0
  67. data/app/models/exo/resource/meta_errors.rb +24 -0
  68. data/app/models/exo/resource/meta_field.rb +20 -0
  69. data/app/models/exo/resource/meta_relation.rb +25 -0
  70. data/app/models/exo/resource/meta_value.rb +60 -0
  71. data/app/models/exo/resource.rb +40 -0
  72. data/app/models/exo/route/page.rb +11 -0
  73. data/app/models/exo/route/redirection.rb +8 -0
  74. data/app/models/exo/route.rb +38 -0
  75. data/app/models/exo/service.rb +13 -0
  76. data/app/models/exo/setting.rb +31 -0
  77. data/app/models/exo/site.rb +63 -0
  78. data/app/presenters/exo/item_presenter.rb +19 -0
  79. data/app/presenters/exo/resource_presenter.rb +25 -0
  80. data/app/presenters/exo/route_presenter.rb +33 -0
  81. data/app/presenters/exo/scope_wraper.rb +58 -0
  82. data/app/presenters/exo/site_presenter.rb +35 -0
  83. data/app/resources/templates/application.html.haml +11 -0
  84. data/app/resources/templates/page.html.haml +3 -0
  85. data/app/services/ckeditor_railser.rb +78 -0
  86. data/app/services/exo/config.rb +138 -0
  87. data/app/services/exo/generator.rb +59 -0
  88. data/app/services/exo/item_builder.rb +39 -0
  89. data/app/services/exo/mongoid.rb +1 -0
  90. data/app/services/exo/path_matcher.rb +55 -0
  91. data/app/services/exo/tick.rb +36 -0
  92. data/app/services/exo/view_generator.rb +74 -0
  93. data/app/uploaders/exo/asset_uploader.rb +62 -0
  94. data/app/uploaders/exo/item_asset_uploader.rb +71 -0
  95. data/app/uploaders/exo/upload_versions.rb +58 -0
  96. data/app/views/contributors/confirmations/new.html.haml +9 -0
  97. data/app/views/contributors/mailer/confirmation_instructions.html.haml +4 -0
  98. data/app/views/contributors/mailer/reset_password_instructions.html.haml +6 -0
  99. data/app/views/contributors/mailer/unlock_instructions.html.haml +5 -0
  100. data/app/views/contributors/passwords/edit.html.haml +11 -0
  101. data/app/views/contributors/passwords/new.html.haml +9 -0
  102. data/app/views/contributors/registrations/edit.html.haml +18 -0
  103. data/app/views/contributors/registrations/new.html.haml +10 -0
  104. data/app/views/contributors/sessions/new.html.haml +10 -0
  105. data/app/views/contributors/shared/_links.haml +19 -0
  106. data/app/views/contributors/unlocks/new.html.haml +9 -0
  107. data/app/views/exo/admin/application/_bheader.html.haml +27 -0
  108. data/app/views/exo/admin/application/_editor_header.html.haml +12 -0
  109. data/app/views/exo/admin/application/_header.html.haml +40 -0
  110. data/app/views/exo/admin/application/_meta_errors.html.haml +5 -0
  111. data/app/views/exo/admin/application/_sidebar.html.haml +22 -0
  112. data/app/views/exo/admin/application/_sidenav.html.haml +48 -0
  113. data/app/views/exo/admin/application/fields/_image.html.haml +3 -0
  114. data/app/views/exo/admin/application/fields/_markdown.html.haml +3 -0
  115. data/app/views/exo/admin/assets/_form.html.haml +11 -0
  116. data/app/views/exo/admin/assets/edit.html.haml +7 -0
  117. data/app/views/exo/admin/assets/index.html.haml +15 -0
  118. data/app/views/exo/admin/assets/new.html.haml +5 -0
  119. data/app/views/exo/admin/assets/show.html.haml +14 -0
  120. data/app/views/exo/admin/ckeditor_assets/create.html.erb +8 -0
  121. data/app/views/exo/admin/contributors/index.html.haml +21 -0
  122. data/app/views/exo/admin/contributors/show.html.haml +26 -0
  123. data/app/views/exo/admin/items/_form.html.haml +20 -0
  124. data/app/views/exo/admin/items/edit.html.haml +16 -0
  125. data/app/views/exo/admin/items/new.html.haml +8 -0
  126. data/app/views/exo/admin/items/show.html.haml +44 -0
  127. data/app/views/exo/admin/resources/index.html.haml +13 -0
  128. data/app/views/exo/admin/resources/show.html.haml +36 -0
  129. data/app/views/exo/admin/routes/edit.html.haml +1 -0
  130. data/app/views/exo/admin/routes/index.html.haml +22 -0
  131. data/app/views/exo/admin/routes/show.html.haml +39 -0
  132. data/app/views/exo/admin/settings/_form.html.haml +21 -0
  133. data/app/views/exo/admin/settings/edit.html.haml +22 -0
  134. data/app/views/exo/admin/settings/index.html.haml +33 -0
  135. data/app/views/exo/admin/settings/new.html.haml +11 -0
  136. data/app/views/exo/admin/site/show.html.haml +0 -0
  137. data/app/views/exo/errors/_unknow_host.html.haml +2 -0
  138. data/app/views/exo/errors/_unknow_path.html.haml +2 -0
  139. data/app/views/layouts/application.html.erb +19 -0
  140. data/app/views/layouts/devise.html.haml +18 -0
  141. data/app/views/layouts/exo/admin/application.html.haml +22 -0
  142. data/app/views/layouts/exo/admin/editor.html.haml +11 -0
  143. data/app/views/layouts/exo/error.html.haml +1 -0
  144. data/config/initializers/carrier_wave.rb +35 -0
  145. data/config/initializers/devise.rb +246 -0
  146. data/config/initializers/simple_form_foundation.rb +27 -0
  147. data/config/routes.rb +42 -0
  148. data/lib/exo/engine.rb +7 -0
  149. data/lib/exo/regexp.rb +6 -0
  150. data/lib/exo/version.rb +3 -0
  151. data/lib/exo.rb +30 -0
  152. data/lib/tasks/ckeditor.rake +9 -0
  153. data/lib/tasks/contributor.rake +11 -0
  154. data/lib/tasks/exo_engine_tasks.rake +4 -0
  155. data/lib/tasks/generate.rake +8 -0
  156. data/lib/tasks/migration.rake +13 -0
  157. data/lib/tasks/seed.rake +7 -0
  158. data/spec/dummy/Rakefile +6 -0
  159. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  160. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  161. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  162. data/spec/dummy/app/controllers/exo/admin/customs_controller.rb +7 -0
  163. data/spec/dummy/app/controllers/my_app/site_customs_controller.rb +10 -0
  164. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  165. data/spec/dummy/app/views/a_sierra_theme/a_page.html.haml +1 -0
  166. data/spec/dummy/app/views/a_sierra_theme/a_page_with_block.html.haml +3 -0
  167. data/spec/dummy/app/views/demo/home.html.haml +3 -0
  168. data/spec/dummy/app/views/demo/posts/show.html.haml +3 -0
  169. data/spec/dummy/app/views/exo/admin/customs/index.html.haml +1 -0
  170. data/spec/dummy/app/views/layouts/a_sierra_theme/application.html.erb +14 -0
  171. data/spec/dummy/app/views/layouts/demo/application.html.haml +11 -0
  172. data/spec/dummy/app/views/my_app/site_customs/index.html.haml +1 -0
  173. data/spec/dummy/bin/bundle +3 -0
  174. data/spec/dummy/bin/rails +4 -0
  175. data/spec/dummy/bin/rake +4 -0
  176. data/spec/dummy/config/application.rb +27 -0
  177. data/spec/dummy/config/boot.rb +5 -0
  178. data/spec/dummy/config/database.yml +25 -0
  179. data/spec/dummy/config/environment.rb +5 -0
  180. data/spec/dummy/config/environments/development.rb +29 -0
  181. data/spec/dummy/config/environments/production.rb +80 -0
  182. data/spec/dummy/config/environments/test.rb +36 -0
  183. data/spec/dummy/config/exo/demo.yml +13 -0
  184. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  185. data/spec/dummy/config/initializers/exo.rb +3 -0
  186. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  187. data/spec/dummy/config/initializers/inflections.rb +16 -0
  188. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  189. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  190. data/spec/dummy/config/initializers/session_store.rb +3 -0
  191. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  192. data/spec/dummy/config/locales/en.yml +23 -0
  193. data/spec/dummy/config/mongoid.yml +78 -0
  194. data/spec/dummy/config/routes.rb +14 -0
  195. data/spec/dummy/config.ru +4 -0
  196. data/spec/dummy/log/development.log +16106 -0
  197. data/spec/dummy/log/test.log +0 -0
  198. data/spec/dummy/public/404.html +58 -0
  199. data/spec/dummy/public/422.html +58 -0
  200. data/spec/dummy/public/500.html +57 -0
  201. data/spec/dummy/public/favicon.ico +0 -0
  202. data/spec/dummy/tmp/cache/assets/development/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/colorize.sassc +0 -0
  203. data/spec/dummy/tmp/cache/assets/development/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/content.sassc +0 -0
  204. data/spec/dummy/tmp/cache/assets/development/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/header.sassc +0 -0
  205. data/spec/dummy/tmp/cache/assets/development/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/sidebar.sassc +0 -0
  206. data/spec/dummy/tmp/cache/assets/development/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/tables.sassc +0 -0
  207. data/spec/dummy/tmp/cache/assets/development/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/colorize.sassc +0 -0
  208. data/spec/dummy/tmp/cache/assets/development/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/content.sassc +0 -0
  209. data/spec/dummy/tmp/cache/assets/development/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/header.sassc +0 -0
  210. data/spec/dummy/tmp/cache/assets/development/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/sidebar.sassc +0 -0
  211. data/spec/dummy/tmp/cache/assets/development/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/tables.sassc +0 -0
  212. data/spec/dummy/tmp/cache/assets/development/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/wrapper.sassc +0 -0
  213. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_accordion.scssc +0 -0
  214. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_alert-boxes.scssc +0 -0
  215. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_block-grid.scssc +0 -0
  216. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_breadcrumbs.scssc +0 -0
  217. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_button-groups.scssc +0 -0
  218. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_buttons.scssc +0 -0
  219. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_clearing.scssc +0 -0
  220. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_dropdown-buttons.scssc +0 -0
  221. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_dropdown.scssc +0 -0
  222. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_flex-video.scssc +0 -0
  223. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_forms.scssc +0 -0
  224. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_global.scssc +0 -0
  225. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_grid.scssc +0 -0
  226. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_inline-lists.scssc +0 -0
  227. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_joyride.scssc +0 -0
  228. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_keystrokes.scssc +0 -0
  229. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_labels.scssc +0 -0
  230. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_magellan.scssc +0 -0
  231. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_offcanvas.scssc +0 -0
  232. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_orbit.scssc +0 -0
  233. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_pagination.scssc +0 -0
  234. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_panels.scssc +0 -0
  235. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_pricing-tables.scssc +0 -0
  236. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_progress-bars.scssc +0 -0
  237. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_reveal.scssc +0 -0
  238. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_side-nav.scssc +0 -0
  239. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_split-buttons.scssc +0 -0
  240. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_sub-nav.scssc +0 -0
  241. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_switch.scssc +0 -0
  242. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_tables.scssc +0 -0
  243. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_tabs.scssc +0 -0
  244. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_thumbs.scssc +0 -0
  245. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_tooltips.scssc +0 -0
  246. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_top-bar.scssc +0 -0
  247. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_type.scssc +0 -0
  248. data/spec/dummy/tmp/cache/assets/development/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_visibility.scssc +0 -0
  249. data/spec/dummy/tmp/cache/assets/development/sass/54bc91a8b995104fa44ba264c53dbd8d0a6ce1eb/font-awesome.css.erbc +0 -0
  250. data/spec/dummy/tmp/cache/assets/development/sass/868bdcd3c8e6bd73d750879e972f235f451b00af/application.sassc +0 -0
  251. data/spec/dummy/tmp/cache/assets/development/sass/868bdcd3c8e6bd73d750879e972f235f451b00af/foundation_and_overrides.scssc +0 -0
  252. data/spec/dummy/tmp/cache/assets/development/sass/868bdcd3c8e6bd73d750879e972f235f451b00af/responsive-tables.cssc +0 -0
  253. data/spec/dummy/tmp/cache/assets/development/sass/8b743f22fdd8d5759b06979128c44050617d3f73/_functions.scssc +0 -0
  254. data/spec/dummy/tmp/cache/assets/development/sass/e0f19c3e3433ffd972f6483c2c2cebc0799332b3/application.sassc +0 -0
  255. data/spec/dummy/tmp/cache/assets/development/sass/e0f19c3e3433ffd972f6483c2c2cebc0799332b3/foundation_and_overrides.scssc +0 -0
  256. data/spec/dummy/tmp/cache/assets/development/sass/e0f19c3e3433ffd972f6483c2c2cebc0799332b3/responsive-tables.cssc +0 -0
  257. data/spec/dummy/tmp/cache/assets/development/sass/f3df6673492a24d914db00517c65da0ef5b69493/foundation.scssc +0 -0
  258. data/spec/dummy/tmp/cache/assets/development/sprockets/0123c70bd5e30312ff515d82eb213b31 +0 -0
  259. data/spec/dummy/tmp/cache/assets/development/sprockets/017471d0ab6ff8d09517b238fe3e7c74 +0 -0
  260. data/spec/dummy/tmp/cache/assets/development/sprockets/01abbc5a8fe11302981249d2cba594c0 +0 -0
  261. data/spec/dummy/tmp/cache/assets/development/sprockets/06d7650b175d7850bc0819d0411e6c0d +0 -0
  262. data/spec/dummy/tmp/cache/assets/development/sprockets/0b8cbd6c43ff11ed3ab96976a2e98e2b +0 -0
  263. data/spec/dummy/tmp/cache/assets/development/sprockets/0d6d0302ec5d1661cb20ead3e3cfe729 +0 -0
  264. data/spec/dummy/tmp/cache/assets/development/sprockets/0e0e73dbc12f68468bc9813d331495fb +0 -0
  265. data/spec/dummy/tmp/cache/assets/development/sprockets/12134b245bdcf4dfc47cdd9b2fd05f85 +0 -0
  266. data/spec/dummy/tmp/cache/assets/development/sprockets/142b7b2297d55a50c6d15fd20457cd59 +0 -0
  267. data/spec/dummy/tmp/cache/assets/development/sprockets/183ad03b62e09a44e33c6a89e49be502 +0 -0
  268. data/spec/dummy/tmp/cache/assets/development/sprockets/18c44637348179373a9122410e9dd97f +0 -0
  269. data/spec/dummy/tmp/cache/assets/development/sprockets/1cca26710c02dc6d0fa2b562b7fd4402 +0 -0
  270. data/spec/dummy/tmp/cache/assets/development/sprockets/1cf836008e16cfe5e1057d9f8eda6957 +0 -0
  271. data/spec/dummy/tmp/cache/assets/development/sprockets/23dd3f3a5bc3511847dbe6fc5c7a2baf +0 -0
  272. data/spec/dummy/tmp/cache/assets/development/sprockets/24b1f3579f65df49c0801f4abd62b0ea +0 -0
  273. data/spec/dummy/tmp/cache/assets/development/sprockets/24cee8f6e43f5162d55fd1dcb8387207 +0 -0
  274. data/spec/dummy/tmp/cache/assets/development/sprockets/25909c1bc6f6dc8570bba1f681a299f3 +0 -0
  275. data/spec/dummy/tmp/cache/assets/development/sprockets/262d063e267800f380425e714dfb7377 +0 -0
  276. data/spec/dummy/tmp/cache/assets/development/sprockets/27cec58cf4ba029687152cedc2fb4f31 +0 -0
  277. data/spec/dummy/tmp/cache/assets/development/sprockets/2868201e7752aa2d76c04d6807493e17 +0 -0
  278. data/spec/dummy/tmp/cache/assets/development/sprockets/2bd6f962abf45ed50b78d14ba0904581 +0 -0
  279. data/spec/dummy/tmp/cache/assets/development/sprockets/2d93710bc1b018dbbf68607d1b862b19 +0 -0
  280. data/spec/dummy/tmp/cache/assets/development/sprockets/3176c16477eed7502d9646e03412a047 +0 -0
  281. data/spec/dummy/tmp/cache/assets/development/sprockets/3360fbdb00ed8ef59706becb7dbb41e4 +0 -0
  282. data/spec/dummy/tmp/cache/assets/development/sprockets/34f82b1703cb8350ca18f16392967779 +0 -0
  283. data/spec/dummy/tmp/cache/assets/development/sprockets/3cde31b62e801f1864e3566e83c43dfc +0 -0
  284. data/spec/dummy/tmp/cache/assets/development/sprockets/3f13b6783888bfdb18d8c58b24f62606 +0 -0
  285. data/spec/dummy/tmp/cache/assets/development/sprockets/3f2f49fd9b6431526dee6aaf69dc8dc0 +0 -0
  286. data/spec/dummy/tmp/cache/assets/development/sprockets/447161da5ee42f4d3b0702a328975499 +0 -0
  287. data/spec/dummy/tmp/cache/assets/development/sprockets/44920eab3d362e37f9841d9e5adb59f9 +0 -0
  288. data/spec/dummy/tmp/cache/assets/development/sprockets/4887510ef9b27d0f87d2fcdad555fa2c +0 -0
  289. data/spec/dummy/tmp/cache/assets/development/sprockets/4c363b6936cf63c23770ad8490f24dca +0 -0
  290. data/spec/dummy/tmp/cache/assets/development/sprockets/4cef1887720ac882dcc3c407779b5cc6 +0 -0
  291. data/spec/dummy/tmp/cache/assets/development/sprockets/4f53b61a3cb95e2cbe41669c8e52a6e9 +0 -0
  292. data/spec/dummy/tmp/cache/assets/development/sprockets/59f85eee3687eb4ed457a687daec4864 +0 -0
  293. data/spec/dummy/tmp/cache/assets/development/sprockets/5e3f3fcd99b13708971f707016d43020 +0 -0
  294. data/spec/dummy/tmp/cache/assets/development/sprockets/5e9e6e4b1c4bb6da2f89517e17fdca8b +0 -0
  295. data/spec/dummy/tmp/cache/assets/development/sprockets/5ea76ce82eaf44306e67d57bd758126e +0 -0
  296. data/spec/dummy/tmp/cache/assets/development/sprockets/65602f2f2646ac35105f3ee8fe0bb8c3 +0 -0
  297. data/spec/dummy/tmp/cache/assets/development/sprockets/676293868de93b34edf64d211de01c51 +0 -0
  298. data/spec/dummy/tmp/cache/assets/development/sprockets/6aa2f8ad895ab9c85a6adaa546654be7 +0 -0
  299. data/spec/dummy/tmp/cache/assets/development/sprockets/6df5499acca0edd86677d5beec5c2b18 +0 -0
  300. data/spec/dummy/tmp/cache/assets/development/sprockets/7124dbdd12afd3bc07d58a0ec3dddc65 +0 -0
  301. data/spec/dummy/tmp/cache/assets/development/sprockets/727bcd360e44edbb990ea53347896a64 +0 -0
  302. data/spec/dummy/tmp/cache/assets/development/sprockets/76d85daa1c4000f529bf26504ebde8d9 +0 -0
  303. data/spec/dummy/tmp/cache/assets/development/sprockets/7a776312a5e143757ba6fddbc33d3569 +0 -0
  304. data/spec/dummy/tmp/cache/assets/development/sprockets/7b2ab31b2e6b523c32133b2ccd942519 +0 -0
  305. data/spec/dummy/tmp/cache/assets/development/sprockets/7f3979d7c79893750db9cc673b603964 +0 -0
  306. data/spec/dummy/tmp/cache/assets/development/sprockets/7fd0671e74c96f97acc46cf12b97d34f +0 -0
  307. data/spec/dummy/tmp/cache/assets/development/sprockets/808539184f4890b8bc0cd62ddaae16f5 +0 -0
  308. data/spec/dummy/tmp/cache/assets/development/sprockets/818cac0ff4010d81cb9e6a2c5a17f494 +0 -0
  309. data/spec/dummy/tmp/cache/assets/development/sprockets/892ddb9c90db88e3c27b9bcdf13cc874 +0 -0
  310. data/spec/dummy/tmp/cache/assets/development/sprockets/8995a544bd8d9493c79f811452bc53c1 +0 -0
  311. data/spec/dummy/tmp/cache/assets/development/sprockets/8c37b2f2c33ead52769fac2c7aed8483 +0 -0
  312. data/spec/dummy/tmp/cache/assets/development/sprockets/911cbd3125fce783b8020caeb73c3d63 +0 -0
  313. data/spec/dummy/tmp/cache/assets/development/sprockets/9125c95d28b56e41a01d40a3ac95b3a1 +0 -0
  314. data/spec/dummy/tmp/cache/assets/development/sprockets/916fb1d316cf3a47b5fb8750981d020d +0 -0
  315. data/spec/dummy/tmp/cache/assets/development/sprockets/9a65689623c3096b82dd97819ef02b79 +0 -0
  316. data/spec/dummy/tmp/cache/assets/development/sprockets/9fb3b25a6094ba7546ef5d57ff154168 +0 -0
  317. data/spec/dummy/tmp/cache/assets/development/sprockets/a96fdd6e9cbae9c2f20789797d959cec +0 -0
  318. data/spec/dummy/tmp/cache/assets/development/sprockets/aaf89432055b14102caf4b80b7119d89 +0 -0
  319. data/spec/dummy/tmp/cache/assets/development/sprockets/ab360497106ba942135a8adee9a5d590 +0 -0
  320. data/spec/dummy/tmp/cache/assets/development/sprockets/ad82812e3dc354abb67d844dd84bf3cc +0 -0
  321. data/spec/dummy/tmp/cache/assets/development/sprockets/afb9268b0a27b448fa720fbbc0bb9628 +0 -0
  322. data/spec/dummy/tmp/cache/assets/development/sprockets/afec8da62e80022371c6a4bd3b0b8f9c +0 -0
  323. data/spec/dummy/tmp/cache/assets/development/sprockets/b0d34688aa81dc13171af7ebc2f6dda8 +0 -0
  324. data/spec/dummy/tmp/cache/assets/development/sprockets/b1ffcbb1bdbbfb46264e1f4b71d5dcf4 +0 -0
  325. data/spec/dummy/tmp/cache/assets/development/sprockets/b30e4385f999fefded784baa3436ecd3 +0 -0
  326. data/spec/dummy/tmp/cache/assets/development/sprockets/b4306f0aa05caff091d0998f73413207 +0 -0
  327. data/spec/dummy/tmp/cache/assets/development/sprockets/b682063a22ac7898fb5fab4c62304705 +0 -0
  328. data/spec/dummy/tmp/cache/assets/development/sprockets/b9df96c25252b82da00791df6d017199 +0 -0
  329. data/spec/dummy/tmp/cache/assets/development/sprockets/bab9d2b1312356b02c042aa46731369e +0 -0
  330. data/spec/dummy/tmp/cache/assets/development/sprockets/bc2974a23dfae3959d75891cba8e32f0 +0 -0
  331. data/spec/dummy/tmp/cache/assets/development/sprockets/bdebcd2a8dbc156cff64abc02cd9e669 +0 -0
  332. data/spec/dummy/tmp/cache/assets/development/sprockets/c08bb167930ddaf0637f6bb96a02f85f +0 -0
  333. data/spec/dummy/tmp/cache/assets/development/sprockets/c097d88a1c22b3559f635ed573e4f48f +0 -0
  334. data/spec/dummy/tmp/cache/assets/development/sprockets/c4a4a83aca2e4e9e987ec76930c664e7 +0 -0
  335. data/spec/dummy/tmp/cache/assets/development/sprockets/c4fcfae26eaf97324dd20db9b9e6e259 +0 -0
  336. data/spec/dummy/tmp/cache/assets/development/sprockets/c5b02654a71cc6e5646941d266964c8a +0 -0
  337. data/spec/dummy/tmp/cache/assets/development/sprockets/ca6ae3b0212906e203a675ad02a7729e +0 -0
  338. data/spec/dummy/tmp/cache/assets/development/sprockets/d081c4fcdb728213519ed45cd995eb11 +0 -0
  339. data/spec/dummy/tmp/cache/assets/development/sprockets/d0dd43eb5157bf58a581d451b38b381b +0 -0
  340. data/spec/dummy/tmp/cache/assets/development/sprockets/d15ce5f6879e59975286ede4318a248e +0 -0
  341. data/spec/dummy/tmp/cache/assets/development/sprockets/d340ed6abb07538c8a7f5628f96a321c +0 -0
  342. data/spec/dummy/tmp/cache/assets/development/sprockets/dbd4c6c705c6eef71f281c5f10aa1c12 +0 -0
  343. data/spec/dummy/tmp/cache/assets/development/sprockets/e3efb6f18e9d6f7f1f7a2bfdb4a616d3 +0 -0
  344. data/spec/dummy/tmp/cache/assets/development/sprockets/e868832c39075b1130b5eb600824cabf +0 -0
  345. data/spec/dummy/tmp/cache/assets/development/sprockets/e94c184030f553c4dba8000a3112597c +0 -0
  346. data/spec/dummy/tmp/cache/assets/development/sprockets/efdfaf9c072c61f54f6fe482990d4901 +0 -0
  347. data/spec/dummy/tmp/cache/assets/development/sprockets/f3a1c84ec35a01045bb6b638d1fd975f +0 -0
  348. data/spec/dummy/tmp/cache/assets/development/sprockets/f444a8ac8dfe6e3fecd2ee1b3eb660d2 +0 -0
  349. data/spec/dummy/tmp/cache/assets/development/sprockets/f5cb53dda9311da5c302df8dde1b98f0 +0 -0
  350. data/spec/dummy/tmp/cache/assets/development/sprockets/f873fbedb1dd78144b7a2d9203979b73 +0 -0
  351. data/spec/dummy/tmp/cache/assets/development/sprockets/f94211d95775b7b113ff83fbab9d96e5 +0 -0
  352. data/spec/dummy/tmp/cache/assets/development/sprockets/fd421c922607b7e36737167c1d5f12f4 +0 -0
  353. data/spec/dummy/tmp/cache/assets/development/sprockets/fde03b35c3de27e23e356c238f398a51 +0 -0
  354. data/spec/dummy/tmp/cache/assets/development/sprockets/fe26af7b1d422e2d98a6f52452bc8576 +0 -0
  355. data/spec/dummy/tmp/cache/assets/development/sprockets/fe2acad4ddcdce6fe73b2deba6fc235d +0 -0
  356. data/spec/dummy/tmp/cache/assets/test/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/colorize.sassc +0 -0
  357. data/spec/dummy/tmp/cache/assets/test/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/content.sassc +0 -0
  358. data/spec/dummy/tmp/cache/assets/test/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/header.sassc +0 -0
  359. data/spec/dummy/tmp/cache/assets/test/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/sidebar.sassc +0 -0
  360. data/spec/dummy/tmp/cache/assets/test/sass/02ac2db4c4233a0290d18f376407059bb8c9d43c/tables.sassc +0 -0
  361. data/spec/dummy/tmp/cache/assets/test/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/colorize.sassc +0 -0
  362. data/spec/dummy/tmp/cache/assets/test/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/content.sassc +0 -0
  363. data/spec/dummy/tmp/cache/assets/test/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/header.sassc +0 -0
  364. data/spec/dummy/tmp/cache/assets/test/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/sidebar.sassc +0 -0
  365. data/spec/dummy/tmp/cache/assets/test/sass/1117950fc1adf8b31294376d9067eb7feadc7de0/tables.sassc +0 -0
  366. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_accordion.scssc +0 -0
  367. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_alert-boxes.scssc +0 -0
  368. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_block-grid.scssc +0 -0
  369. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_breadcrumbs.scssc +0 -0
  370. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_button-groups.scssc +0 -0
  371. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_buttons.scssc +0 -0
  372. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_clearing.scssc +0 -0
  373. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_dropdown-buttons.scssc +0 -0
  374. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_dropdown.scssc +0 -0
  375. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_flex-video.scssc +0 -0
  376. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_forms.scssc +0 -0
  377. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_global.scssc +0 -0
  378. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_grid.scssc +0 -0
  379. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_inline-lists.scssc +0 -0
  380. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_joyride.scssc +0 -0
  381. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_keystrokes.scssc +0 -0
  382. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_labels.scssc +0 -0
  383. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_magellan.scssc +0 -0
  384. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_offcanvas.scssc +0 -0
  385. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_orbit.scssc +0 -0
  386. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_pagination.scssc +0 -0
  387. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_panels.scssc +0 -0
  388. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_pricing-tables.scssc +0 -0
  389. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_progress-bars.scssc +0 -0
  390. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_reveal.scssc +0 -0
  391. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_side-nav.scssc +0 -0
  392. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_split-buttons.scssc +0 -0
  393. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_sub-nav.scssc +0 -0
  394. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_switch.scssc +0 -0
  395. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_tables.scssc +0 -0
  396. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_tabs.scssc +0 -0
  397. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_thumbs.scssc +0 -0
  398. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_tooltips.scssc +0 -0
  399. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_top-bar.scssc +0 -0
  400. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_type.scssc +0 -0
  401. data/spec/dummy/tmp/cache/assets/test/sass/4d2c02410fd2c7d987069b7a4033b725cb831f1f/_visibility.scssc +0 -0
  402. data/spec/dummy/tmp/cache/assets/test/sass/54bc91a8b995104fa44ba264c53dbd8d0a6ce1eb/font-awesome.css.erbc +0 -0
  403. data/spec/dummy/tmp/cache/assets/test/sass/868bdcd3c8e6bd73d750879e972f235f451b00af/application.sassc +0 -0
  404. data/spec/dummy/tmp/cache/assets/test/sass/868bdcd3c8e6bd73d750879e972f235f451b00af/foundation_and_overrides.scssc +0 -0
  405. data/spec/dummy/tmp/cache/assets/test/sass/868bdcd3c8e6bd73d750879e972f235f451b00af/responsive-tables.cssc +0 -0
  406. data/spec/dummy/tmp/cache/assets/test/sass/8b743f22fdd8d5759b06979128c44050617d3f73/_functions.scssc +0 -0
  407. data/spec/dummy/tmp/cache/assets/test/sass/e0f19c3e3433ffd972f6483c2c2cebc0799332b3/application.sassc +0 -0
  408. data/spec/dummy/tmp/cache/assets/test/sass/e0f19c3e3433ffd972f6483c2c2cebc0799332b3/foundation_and_overrides.scssc +0 -0
  409. data/spec/dummy/tmp/cache/assets/test/sass/e0f19c3e3433ffd972f6483c2c2cebc0799332b3/responsive-tables.cssc +0 -0
  410. data/spec/dummy/tmp/cache/assets/test/sass/f3df6673492a24d914db00517c65da0ef5b69493/foundation.scssc +0 -0
  411. data/spec/dummy/tmp/cache/assets/test/sprockets/0123c70bd5e30312ff515d82eb213b31 +0 -0
  412. data/spec/dummy/tmp/cache/assets/test/sprockets/017471d0ab6ff8d09517b238fe3e7c74 +0 -0
  413. data/spec/dummy/tmp/cache/assets/test/sprockets/01abbc5a8fe11302981249d2cba594c0 +0 -0
  414. data/spec/dummy/tmp/cache/assets/test/sprockets/0436b299d86917aa132d8d63a5d974b8 +0 -0
  415. data/spec/dummy/tmp/cache/assets/test/sprockets/0b8cbd6c43ff11ed3ab96976a2e98e2b +0 -0
  416. data/spec/dummy/tmp/cache/assets/test/sprockets/0d6d0302ec5d1661cb20ead3e3cfe729 +0 -0
  417. data/spec/dummy/tmp/cache/assets/test/sprockets/0e0e73dbc12f68468bc9813d331495fb +0 -0
  418. data/spec/dummy/tmp/cache/assets/test/sprockets/12134b245bdcf4dfc47cdd9b2fd05f85 +0 -0
  419. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  420. data/spec/dummy/tmp/cache/assets/test/sprockets/183ad03b62e09a44e33c6a89e49be502 +0 -0
  421. data/spec/dummy/tmp/cache/assets/test/sprockets/18c44637348179373a9122410e9dd97f +0 -0
  422. data/spec/dummy/tmp/cache/assets/test/sprockets/1cca26710c02dc6d0fa2b562b7fd4402 +0 -0
  423. data/spec/dummy/tmp/cache/assets/test/sprockets/1cf836008e16cfe5e1057d9f8eda6957 +0 -0
  424. data/spec/dummy/tmp/cache/assets/test/sprockets/24b1f3579f65df49c0801f4abd62b0ea +0 -0
  425. data/spec/dummy/tmp/cache/assets/test/sprockets/24cee8f6e43f5162d55fd1dcb8387207 +0 -0
  426. data/spec/dummy/tmp/cache/assets/test/sprockets/25909c1bc6f6dc8570bba1f681a299f3 +0 -0
  427. data/spec/dummy/tmp/cache/assets/test/sprockets/262d063e267800f380425e714dfb7377 +0 -0
  428. data/spec/dummy/tmp/cache/assets/test/sprockets/26df301c0de83087195edeb5e88bde36 +0 -0
  429. data/spec/dummy/tmp/cache/assets/test/sprockets/27cec58cf4ba029687152cedc2fb4f31 +0 -0
  430. data/spec/dummy/tmp/cache/assets/test/sprockets/2868201e7752aa2d76c04d6807493e17 +0 -0
  431. data/spec/dummy/tmp/cache/assets/test/sprockets/2bd6f962abf45ed50b78d14ba0904581 +0 -0
  432. data/spec/dummy/tmp/cache/assets/test/sprockets/2d93710bc1b018dbbf68607d1b862b19 +0 -0
  433. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  434. data/spec/dummy/tmp/cache/assets/test/sprockets/3360fbdb00ed8ef59706becb7dbb41e4 +0 -0
  435. data/spec/dummy/tmp/cache/assets/test/sprockets/34f82b1703cb8350ca18f16392967779 +0 -0
  436. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  437. data/spec/dummy/tmp/cache/assets/test/sprockets/3cde31b62e801f1864e3566e83c43dfc +0 -0
  438. data/spec/dummy/tmp/cache/assets/test/sprockets/3f2f49fd9b6431526dee6aaf69dc8dc0 +0 -0
  439. data/spec/dummy/tmp/cache/assets/test/sprockets/447161da5ee42f4d3b0702a328975499 +0 -0
  440. data/spec/dummy/tmp/cache/assets/test/sprockets/44920eab3d362e37f9841d9e5adb59f9 +0 -0
  441. data/spec/dummy/tmp/cache/assets/test/sprockets/4887510ef9b27d0f87d2fcdad555fa2c +0 -0
  442. data/spec/dummy/tmp/cache/assets/test/sprockets/4c363b6936cf63c23770ad8490f24dca +0 -0
  443. data/spec/dummy/tmp/cache/assets/test/sprockets/4cef1887720ac882dcc3c407779b5cc6 +0 -0
  444. data/spec/dummy/tmp/cache/assets/test/sprockets/4f53b61a3cb95e2cbe41669c8e52a6e9 +0 -0
  445. data/spec/dummy/tmp/cache/assets/test/sprockets/59f85eee3687eb4ed457a687daec4864 +0 -0
  446. data/spec/dummy/tmp/cache/assets/test/sprockets/5e3f3fcd99b13708971f707016d43020 +0 -0
  447. data/spec/dummy/tmp/cache/assets/test/sprockets/5e9e6e4b1c4bb6da2f89517e17fdca8b +0 -0
  448. data/spec/dummy/tmp/cache/assets/test/sprockets/65602f2f2646ac35105f3ee8fe0bb8c3 +0 -0
  449. data/spec/dummy/tmp/cache/assets/test/sprockets/676293868de93b34edf64d211de01c51 +0 -0
  450. data/spec/dummy/tmp/cache/assets/test/sprockets/6aa2f8ad895ab9c85a6adaa546654be7 +0 -0
  451. data/spec/dummy/tmp/cache/assets/test/sprockets/6df5499acca0edd86677d5beec5c2b18 +0 -0
  452. data/spec/dummy/tmp/cache/assets/test/sprockets/7124dbdd12afd3bc07d58a0ec3dddc65 +0 -0
  453. data/spec/dummy/tmp/cache/assets/test/sprockets/76d85daa1c4000f529bf26504ebde8d9 +0 -0
  454. data/spec/dummy/tmp/cache/assets/test/sprockets/7a776312a5e143757ba6fddbc33d3569 +0 -0
  455. data/spec/dummy/tmp/cache/assets/test/sprockets/7f3979d7c79893750db9cc673b603964 +0 -0
  456. data/spec/dummy/tmp/cache/assets/test/sprockets/7fd0671e74c96f97acc46cf12b97d34f +0 -0
  457. data/spec/dummy/tmp/cache/assets/test/sprockets/808539184f4890b8bc0cd62ddaae16f5 +0 -0
  458. data/spec/dummy/tmp/cache/assets/test/sprockets/892ddb9c90db88e3c27b9bcdf13cc874 +0 -0
  459. data/spec/dummy/tmp/cache/assets/test/sprockets/8995a544bd8d9493c79f811452bc53c1 +0 -0
  460. data/spec/dummy/tmp/cache/assets/test/sprockets/8c37b2f2c33ead52769fac2c7aed8483 +0 -0
  461. data/spec/dummy/tmp/cache/assets/test/sprockets/911cbd3125fce783b8020caeb73c3d63 +0 -0
  462. data/spec/dummy/tmp/cache/assets/test/sprockets/9125c95d28b56e41a01d40a3ac95b3a1 +0 -0
  463. data/spec/dummy/tmp/cache/assets/test/sprockets/916fb1d316cf3a47b5fb8750981d020d +0 -0
  464. data/spec/dummy/tmp/cache/assets/test/sprockets/9a65689623c3096b82dd97819ef02b79 +0 -0
  465. data/spec/dummy/tmp/cache/assets/test/sprockets/9fb3b25a6094ba7546ef5d57ff154168 +0 -0
  466. data/spec/dummy/tmp/cache/assets/test/sprockets/ad82812e3dc354abb67d844dd84bf3cc +0 -0
  467. data/spec/dummy/tmp/cache/assets/test/sprockets/afec8da62e80022371c6a4bd3b0b8f9c +0 -0
  468. data/spec/dummy/tmp/cache/assets/test/sprockets/b1ffcbb1bdbbfb46264e1f4b71d5dcf4 +0 -0
  469. data/spec/dummy/tmp/cache/assets/test/sprockets/b30e4385f999fefded784baa3436ecd3 +0 -0
  470. data/spec/dummy/tmp/cache/assets/test/sprockets/b682063a22ac7898fb5fab4c62304705 +0 -0
  471. data/spec/dummy/tmp/cache/assets/test/sprockets/b9df96c25252b82da00791df6d017199 +0 -0
  472. data/spec/dummy/tmp/cache/assets/test/sprockets/bab9d2b1312356b02c042aa46731369e +0 -0
  473. data/spec/dummy/tmp/cache/assets/test/sprockets/bc2974a23dfae3959d75891cba8e32f0 +0 -0
  474. data/spec/dummy/tmp/cache/assets/test/sprockets/bdebcd2a8dbc156cff64abc02cd9e669 +0 -0
  475. data/spec/dummy/tmp/cache/assets/test/sprockets/c4a4a83aca2e4e9e987ec76930c664e7 +0 -0
  476. data/spec/dummy/tmp/cache/assets/test/sprockets/c4fcfae26eaf97324dd20db9b9e6e259 +0 -0
  477. data/spec/dummy/tmp/cache/assets/test/sprockets/ca6ae3b0212906e203a675ad02a7729e +0 -0
  478. data/spec/dummy/tmp/cache/assets/test/sprockets/ccf123d21b7729fcc4a32f35152ad7ea +0 -0
  479. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  480. data/spec/dummy/tmp/cache/assets/test/sprockets/d081c4fcdb728213519ed45cd995eb11 +0 -0
  481. data/spec/dummy/tmp/cache/assets/test/sprockets/d15ce5f6879e59975286ede4318a248e +0 -0
  482. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  483. data/spec/dummy/tmp/cache/assets/test/sprockets/dbd4c6c705c6eef71f281c5f10aa1c12 +0 -0
  484. data/spec/dummy/tmp/cache/assets/test/sprockets/e3efb6f18e9d6f7f1f7a2bfdb4a616d3 +0 -0
  485. data/spec/dummy/tmp/cache/assets/test/sprockets/e868832c39075b1130b5eb600824cabf +0 -0
  486. data/spec/dummy/tmp/cache/assets/test/sprockets/f3a1c84ec35a01045bb6b638d1fd975f +0 -0
  487. data/spec/dummy/tmp/cache/assets/test/sprockets/f444a8ac8dfe6e3fecd2ee1b3eb660d2 +0 -0
  488. data/spec/dummy/tmp/cache/assets/test/sprockets/f5cb53dda9311da5c302df8dde1b98f0 +0 -0
  489. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  490. data/spec/dummy/tmp/cache/assets/test/sprockets/f94211d95775b7b113ff83fbab9d96e5 +0 -0
  491. data/spec/dummy/tmp/cache/assets/test/sprockets/fd421c922607b7e36737167c1d5f12f4 +0 -0
  492. data/spec/dummy/tmp/cache/assets/test/sprockets/fde03b35c3de27e23e356c238f398a51 +0 -0
  493. data/spec/dummy/tmp/cache/assets/test/sprockets/fe26af7b1d422e2d98a6f52452bc8576 +0 -0
  494. data/spec/dummy/tmp/pids/server.pid +1 -0
  495. data/spec/features/admin/collaborators/sign_in_spec.rb +17 -0
  496. data/spec/features/admin/custom/global_service_controller_spec.rb +22 -0
  497. data/spec/features/admin/custom/sidebar_services_spec.rb +29 -0
  498. data/spec/features/admin/custom/site_service_controller_spec.rb +37 -0
  499. data/spec/features/admin/domains/domian_routing_spec.rb +34 -0
  500. data/spec/features/admin/routes/details_spec.rb +24 -0
  501. data/spec/features/front/domain_routing_spec.rb +34 -0
  502. data/spec/features/front/page_blocks/defined_spec.rb +30 -0
  503. data/spec/features/front/page_blocks/undefined_spec.rb +19 -0
  504. data/spec/features/front/routes/page_spec.rb +18 -0
  505. data/spec/features/front/routes/redirection_spec.rb +19 -0
  506. data/spec/models/sierra/contributor_spec.rb +7 -0
  507. data/spec/models/sierra/site_spec.rb +37 -0
  508. data/spec/spec_helper.rb +56 -0
  509. data/spec/support/contributor_support.rb +75 -0
  510. data/spec/support/factories/block_factory.rb +10 -0
  511. data/spec/support/factories/contributor_factory.rb +8 -0
  512. data/spec/support/factories/route_factory.rb +18 -0
  513. data/spec/support/factories/service_factory.rb +6 -0
  514. data/spec/support/factories/site_factory.rb +9 -0
  515. metadata +1583 -0
@@ -0,0 +1,36 @@
1
+ class Exo
2
+ class Tick
3
+ attr_accessor :site, :route, :request, :params
4
+
5
+ def initialize host
6
+ _site = Site.any_of([{hosts: host}, {main_host: host}]).first
7
+ raise ::Exo::Site::UnknowHostError.new(host) unless _site
8
+ self.site = SitePresenter.new _site
9
+ end
10
+
11
+ def services
12
+ unless @services
13
+ @services = {}
14
+ site.services.each do |m|
15
+ @services[m.name] = m.path
16
+ end
17
+ @services = @services.merge Exo.instance.services
18
+ end
19
+ @services
20
+ end
21
+
22
+ def domain_redirection?(host)
23
+ site.main_host.to_s != host
24
+ end
25
+
26
+ def route! request #, params
27
+ unless self.route
28
+ Exo::PathMatcher.route_for(site.routes, request.params) do |route|
29
+ self.route = Exo::RoutePresenter.new route
30
+ end
31
+ raise ::Exo::Route::UnknowPathError.new site.main_host, request.path unless route
32
+ end
33
+ self.route
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,74 @@
1
+ # Help to generate views
2
+ # * application layout
3
+ # * route page views
4
+ module Exo::ViewGenerator
5
+ def self.ensure_page_view page, &content_delegate
6
+ file_path = join_views_path page.site.theme_path, "#{page.view_path}.html.haml"
7
+
8
+ ensure_folder_chain file_path
9
+
10
+ file_path = nil if File.exists? file_path
11
+
12
+ if file_path
13
+ content = nil
14
+ if content_delegate
15
+ content = content_delegate.call
16
+ else
17
+ content = template_content 'page.html.haml'
18
+ content = content.gsub 'SLUG_ID', page.slug_id if content
19
+ end
20
+ File.open(file_path, 'w') {|f| f.write content}
21
+ end
22
+ file_path
23
+ end
24
+
25
+ def self.ensure_site_layout site, &content_delegate
26
+ folder_path = join_views_path 'layouts', site.theme_path
27
+ Dir.mkdir folder_path unless File.exists? folder_path
28
+
29
+ file_path = File.join folder_path, "application.html.haml"
30
+
31
+ file_path = nil if File.exists? file_path
32
+
33
+ if file_path
34
+ content = nil
35
+ if content_delegate
36
+ content = content_delegate.call
37
+ else
38
+ content = template_content 'application.html.haml'
39
+ end
40
+ File.open(file_path, 'w') {|f| f.write content}
41
+ end
42
+ file_path
43
+ end
44
+
45
+ protected
46
+ def self.template_content *path
47
+ exo_gem_root = Gem::Specification.find_by_name('exo_cms').gem_dir
48
+
49
+ path = File.join([exo_gem_root, 'app', 'resources', 'templates'] + path)
50
+ content = nil
51
+
52
+ if File.exists? path
53
+ File.open(path, 'r') do |f|
54
+ content = f.read
55
+ end
56
+ end
57
+ content
58
+ end
59
+
60
+ def self.ensure_folder_chain path
61
+ current_path = File.join Rails.root, 'app', 'views'
62
+ folders = path[current_path.to_s.size..-1].split(File::SEPARATOR)[0..-2]
63
+ folders.each do |folder|
64
+ current_path = File.join current_path, folder
65
+ unless File.exists? current_path
66
+ Dir.mkdir current_path
67
+ end
68
+ end
69
+ end
70
+
71
+ def self.join_views_path *path
72
+ File.join([Rails.root, 'app', 'views'] + path)
73
+ end
74
+ end
@@ -0,0 +1,62 @@
1
+ # encoding: utf-8
2
+ require 'carrierwave/mongoid'
3
+
4
+ class Exo::AssetUploader < CarrierWave::Uploader::Base
5
+ include CarrierWave::MimeTypes
6
+ include CarrierWave::RMagick
7
+
8
+ if ['development', 'test'].include?(Rails.env)
9
+ storage :grid_fs
10
+ else
11
+ storage :fog
12
+ end
13
+
14
+ # Override the directory where uploaded files will be stored.
15
+ # This is a sensible default for uploaders that are meant to be mounted:
16
+ def store_dir
17
+ "exo/#{model.site.slug_id}/#{model.id}"
18
+ end
19
+
20
+ process :set_content_type
21
+
22
+ process :save_content_type_and_size_in_model
23
+
24
+ def save_content_type_and_size_in_model
25
+ model.content_type = file.content_type if file.content_type
26
+ model.content_size = file.size
27
+ end
28
+
29
+ # Provide a default URL as a default if there hasn't been a file uploaded:
30
+ # def default_url
31
+ # # For Rails 3.1+ asset pipeline compatibility:
32
+ # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
33
+ #
34
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
35
+ # end
36
+
37
+ # Process files as they are uploaded:
38
+ # process :scale => [200, 300]
39
+ #
40
+ # def scale(width, height)
41
+ # # do something
42
+ # end
43
+
44
+ # Create different versions of your uploaded files:
45
+ # version :thumb do
46
+ # process :scale => [50, 50]
47
+ # end
48
+
49
+ include Exo::UploadVersions
50
+
51
+ # Add a white list of extensions which are allowed to be uploaded.
52
+ # For images you might use something like this:
53
+ # def extension_white_list
54
+ # %w(jpg jpeg gif png)
55
+ # end
56
+
57
+ # Override the filename of the uploaded files:
58
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
59
+ # def filename
60
+ # "something.jpg" if original_filename
61
+ # end
62
+ end
@@ -0,0 +1,71 @@
1
+ # encoding: utf-8
2
+ require 'carrierwave/mongoid'
3
+
4
+ class Exo::ItemAssetUploader < CarrierWave::Uploader::Base
5
+ include CarrierWave::MimeTypes
6
+ include CarrierWave::RMagick
7
+
8
+ if ['development', 'test'].include?(Rails.env)
9
+ storage :grid_fs
10
+ else
11
+ storage :fog
12
+ end
13
+
14
+ # Override the directory where uploaded files will be stored.
15
+ # This is a sensible default for uploaders that are meant to be mounted:
16
+ def store_dir
17
+ "#{site_path}/#{model_path}"
18
+ end
19
+
20
+ def site_path
21
+ "exo/#{model.site.slug_id}"
22
+ end
23
+
24
+ def model_path
25
+ i = model.item
26
+ "resources/#{i.resource.slug_id}/#{i.slug_id}/#{model.field_slug_id}"
27
+ end
28
+
29
+ process :set_content_type
30
+
31
+ process :save_content_type_and_size_in_model
32
+
33
+ def save_content_type_and_size_in_model
34
+ model.content_type = file.content_type if file.content_type
35
+ model.content_size = file.size
36
+ end
37
+
38
+ include Exo::UploadVersions
39
+
40
+ # Provide a default URL as a default if there hasn't been a file uploaded:
41
+ # def default_url
42
+ # # For Rails 3.1+ asset pipeline compatibility:
43
+ # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
44
+ #
45
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
46
+ # end
47
+
48
+ # Process files as they are uploaded:
49
+ # process :scale => [200, 300]
50
+ #
51
+ # def scale(width, height)
52
+ # # do something
53
+ # end
54
+
55
+ # Create different versions of your uploaded files:
56
+ # version :thumb do
57
+ # process :scale => [50, 50]
58
+ # end
59
+
60
+ # Add a white list of extensions which are allowed to be uploaded.
61
+ # For images you might use something like this:
62
+ # def extension_white_list
63
+ # %w(jpg jpeg gif png)
64
+ # end
65
+
66
+ # Override the filename of the uploaded files:
67
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
68
+ # def filename
69
+ # "something.jpg" if original_filename
70
+ # end
71
+ end
@@ -0,0 +1,58 @@
1
+ module Exo::UploadVersions
2
+ extend ActiveSupport::Concern
3
+
4
+ VERSIONS = {
5
+ xlarge: 1921,
6
+ large: 1441,
7
+ medium: 1025,
8
+ small: 640,
9
+ thumb: 320
10
+ }
11
+
12
+ RATION_WH = 0.3
13
+ FAKEIMG_COLOR = '/dddddd/333333'
14
+
15
+ included do
16
+ VERSIONS.each do |version_name, width|
17
+ parent_version_index = VERSIONS.keys.index(version_name) - 1
18
+ parent_version_name = VERSIONS.keys[parent_version_index] if parent_version_index >= 0
19
+
20
+ if parent_version_name
21
+ version version_name, from_version: parent_version_name do
22
+ puts "resize -> #{version_name} from #{parent_version_name}"
23
+ process resize_to_limit: [width, nil]
24
+ end
25
+ else
26
+ version version_name do
27
+ puts "resize -> #{version_name} from ORIGINAL"
28
+ process resize_to_limit: [width, nil]
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ def default_url
35
+ # For Rails 3.1+ asset pipeline compatibility:
36
+ # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
37
+ fake_image_for version_name
38
+ end
39
+
40
+ protected
41
+ def fake_image_for name
42
+ _version_name = version_name || :xlarge
43
+ _width = VERSIONS[_version_name.to_sym] || VERSIONS[:xlarge]
44
+ "http://fakeimg.pl/#{_width}x#{(_width * RATION_WH).to_i}#{FAKEIMG_COLOR}"
45
+ end
46
+
47
+ def resize_to_width(width, height)
48
+ puts "resize_to_width #{width}/#{height}"
49
+ manipulate! do |img|
50
+ puts "img.columns #{img.columns} >= #{width}"
51
+ if img.columns >= width
52
+ img.resize! width #"#{width}x#{img[:height]}"
53
+ end
54
+ img = yield(img) if block_given?
55
+ img
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,9 @@
1
+ %h2 Resend confirmation instructions
2
+ = simple_form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f|
3
+ = f.error_notification
4
+ = f.full_error :confirmation_token
5
+ .form-inputs
6
+ = f.input :email, :required => true, :autofocus => true
7
+ .form-actions
8
+ = f.button :submit, "Resend confirmation instructions"
9
+ = render "contributors/shared/links"
@@ -0,0 +1,4 @@
1
+ %p
2
+ Welcome #{@email}!
3
+ %p You can confirm your account email through the link below:
4
+ %p= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token)
@@ -0,0 +1,6 @@
1
+ %p
2
+ Hello #{@resource.email}!
3
+ %p Someone has requested a link to change your password. You can do this through the link below.
4
+ %p= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token)
5
+ %p If you didn't request this, please ignore this email.
6
+ %p Your password won't change until you access the link above and create a new one.
@@ -0,0 +1,5 @@
1
+ %p
2
+ Hello #{@resource.email}!
3
+ %p Your account has been locked due to an excessive number of unsuccessful sign in attempts.
4
+ %p Click the link below to unlock your account:
5
+ %p= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token)
@@ -0,0 +1,11 @@
1
+ %h2 Change your password
2
+ = simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f|
3
+ = f.error_notification
4
+ = f.input :reset_password_token, :as => :hidden
5
+ = f.full_error :reset_password_token
6
+ .form-inputs
7
+ = f.input :password, :label => "New password", :required => true, :autofocus => true
8
+ = f.input :password_confirmation, :label => "Confirm your new password", :required => true
9
+ .form-actions
10
+ = f.button :submit, "Change my password"
11
+ = render "contributors/shared/links"
@@ -0,0 +1,9 @@
1
+ .title
2
+ %h2 Forgot your password?
3
+ = simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post, class: :full_form}) do |f|
4
+ = f.error_notification
5
+ .form-inputs
6
+ = f.input :email, :required => true, :autofocus => true
7
+ .form-actions
8
+ = f.button :submit, "Send me reset password instructions"
9
+ = render "contributors/shared/links"
@@ -0,0 +1,18 @@
1
+ %h2
2
+ Edit #{resource_name.to_s.humanize}
3
+ = simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f|
4
+ = f.error_notification
5
+ .form-inputs
6
+ = f.input :email, :required => true, :autofocus => true
7
+ - if devise_mapping.confirmable? && resource.pending_reconfirmation?
8
+ %p
9
+ Currently waiting confirmation for: #{resource.unconfirmed_email}
10
+ = f.input :password, :autocomplete => "off", :hint => "leave it blank if you don't want to change it", :required => false
11
+ = f.input :password_confirmation, :required => false
12
+ = f.input :current_password, :hint => "we need your current password to confirm your changes", :required => true
13
+ .form-actions
14
+ = f.button :submit, "Update"
15
+ %h3 Cancel my account
16
+ %p
17
+ Unhappy? #{link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete}
18
+ = link_to "Back", :back
@@ -0,0 +1,10 @@
1
+ %h2 Sign up
2
+ = simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
3
+ = f.error_notification
4
+ .form-inputs
5
+ = f.input :email, :required => true, :autofocus => true
6
+ = f.input :password, :required => true
7
+ = f.input :password_confirmation, :required => true
8
+ .form-actions
9
+ = f.button :submit, "Sign up"
10
+ = render "contributors/shared/links"
@@ -0,0 +1,10 @@
1
+ .title
2
+ %h2 Sign in
3
+ = simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), html: {class: :full_form}) do |f|
4
+ .form-inputs
5
+ = f.input :email, :required => false, :autofocus => true
6
+ = f.input :password, :required => false
7
+ = f.input :remember_me, :as => :boolean if devise_mapping.rememberable?
8
+ .form-actions
9
+ = f.button :submit, "Sign in"
10
+ = render "contributors/shared/links"
@@ -0,0 +1,19 @@
1
+ - if controller_name != 'sessions'
2
+ = link_to "Sign in", new_session_path(resource_name)
3
+ %br/
4
+ - if devise_mapping.registerable? && controller_name != 'registrations'
5
+ = link_to "Sign up", new_registration_path(resource_name)
6
+ %br/
7
+ - if devise_mapping.recoverable? && controller_name != 'passwords'
8
+ = link_to "Forgot your password?", new_password_path(resource_name)
9
+ %br/
10
+ - if devise_mapping.confirmable? && controller_name != 'confirmations'
11
+ = link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
12
+ %br/
13
+ - if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
14
+ = link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
15
+ %br/
16
+ - if devise_mapping.omniauthable?
17
+ - resource_class.omniauth_providers.each do |provider|
18
+ = link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)
19
+ %br/
@@ -0,0 +1,9 @@
1
+ %h2 Resend unlock instructions
2
+ = simple_form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f|
3
+ = f.error_notification
4
+ = f.full_error :unlock_token
5
+ .form-inputs
6
+ = f.input :email, :required => true, :autofocus => true
7
+ .form-actions
8
+ = f.button :submit, "Resend unlock instructions"
9
+ = render "contributors/shared/links"
@@ -0,0 +1,27 @@
1
+ %header#header
2
+ %h1.site
3
+ = link_to admin_root_url do
4
+ %span.icon
5
+ %i.fa.fa-home
6
+ .content
7
+ .contributor{'data-dropdown' => :quick_profile}
8
+ = current_contributor.email
9
+ = image_tag current_contributor.avatar_url, class: :avatar
10
+ = content_for :end do
11
+ %ul#quick_profile.f-dropdown
12
+ %li
13
+ = link_to admin_contributor_url(current_contributor) do
14
+ %i.fa.fa-user
15
+ Profile
16
+ %li.divider
17
+ - if current_contributor.sites.count > 1
18
+ - current_contributor.sites.each do |site|
19
+ %li
20
+ = link_to site.url do
21
+ %i.fa.fa-globe
22
+ = site.name
23
+ %li.divider
24
+ %li
25
+ = link_to destroy_contributor_session_url, 'data-method' => 'delete' do
26
+ %i.fa.fa-sign-out
27
+ Disconnect
@@ -0,0 +1,12 @@
1
+ %header#editor_header.top-bar{'data-topbar' => ''}
2
+ %section.top-bar-section
3
+ %ul.left
4
+ %li.has-form
5
+ = link_to admin_route_url(current_route), class: "button" do
6
+ %i.fa.fa-times-circle-o
7
+ Cancel
8
+ %ul.right
9
+ %li.has-form
10
+ = link_to '#', class: 'success button', onclick: 'saveAllCkeditables(event)' do
11
+ %i.fa.fa-check
12
+ Save
@@ -0,0 +1,40 @@
1
+ %header#header.top-bar{'data-topbar' => ''}
2
+ %ul.title-area
3
+ %li.name.show-for-medium-up
4
+ %h1
5
+ = link_to admin_root_url do
6
+ %i.fa.fa-home.fa-fw
7
+ = current_site.slug_id.capitalize
8
+ %li.name.hide-for-medium-up
9
+ %h1
10
+ %a.toggle-sidenav{href: '#'}
11
+ %i.fa.fa-bars.fa-fw.disabled
12
+ Menu
13
+ %section.top-bar-section
14
+ %ul.left
15
+ - if current_contributor.sites.count > 1
16
+ %li.has-dropdown
17
+ %a{href: '#'}
18
+ %i.fa.fa-globe
19
+ Sites
20
+ %ul.dropdown
21
+ - current_contributor.sites.each do |site|
22
+ %li{class: site == current_site ? 'active' : ''}
23
+ = link_to "#{site.url}/admin" do
24
+ %i.fa.fa-share.fa-fw
25
+ = site.name
26
+ %ul.right
27
+ %li.has-dropdown
28
+ %a{href: '#'}
29
+ = image_tag current_contributor.avatar_url, class: :avatar, style: 'height: 18px'
30
+ = current_contributor.name
31
+ %ul.dropdown
32
+ %li
33
+ = link_to admin_contributor_url(current_contributor) do
34
+ %i.fa.fa-user.fa-fw
35
+ Profile
36
+ %li
37
+ = link_to destroy_contributor_session_url, 'data-method' => 'delete' do
38
+ %i.fa.fa-sign-out.fa-fw
39
+ Logout
40
+
@@ -0,0 +1,5 @@
1
+ .span.panel.errors
2
+ - item.meta_errors.each do |k, v|
3
+ = k
4
+ = v
5
+ %br
@@ -0,0 +1,22 @@
1
+ #side
2
+ %ul.actions.no-bullet
3
+ %li
4
+ = link_to admin_routes_url do
5
+ %i.fa.fa-sitemap.fa-fw
6
+ .span{style: 'display:none'} Sitemap
7
+ %li
8
+ = link_to admin_resources_url do
9
+ %i.fa.fa-folder-open.fa-fw
10
+ .span{style: 'display:none'} Resources
11
+ %li
12
+ = link_to admin_assets_url do
13
+ %i.fa.fa-picture-o.fa-fw
14
+ .span{style: 'display:none'} Assets
15
+ %li
16
+ = link_to admin_contributors_url do
17
+ %i.fa.fa-group.fa-fw
18
+ .span{style: 'display:none'} Contributors
19
+ %li
20
+ = link_to admin_settings_url do
21
+ %i.fa.fa-cogs.fa-fw
22
+ .span{style: 'display:none'} Settings
@@ -0,0 +1,48 @@
1
+ %ul.side-nav
2
+ %li.hide-for-medium-up
3
+ = link_to admin_root_url do
4
+ %i.fa.fa-home
5
+ = current_site.slug_id.capitalize
6
+ %li
7
+ %h4 Resources
8
+ - current_site.resources.asc(:name).each do |resource|
9
+ %li
10
+ .right
11
+ -#.label.secondary.radius= resource.items.count
12
+ -#= link_to new_admin_resource_item_url(resource) do
13
+ -# %i.fa.fa-plus-square.fa-fw
14
+ = link_to admin_resource_url(resource) do
15
+ %i.fa.fa-archive.fa-fw
16
+ = resource.name
17
+ %li
18
+ %h4 Routes
19
+ - current_site.routes.asc(:path).each do |route|
20
+ %li
21
+ = link_to admin_route_url(route) do
22
+ %i.fa.fa-road.fa-fw
23
+ = route.path
24
+ %li
25
+ %h4 Site
26
+ %li
27
+ = link_to admin_assets_url do
28
+ %i.fa.fa-picture-o.fa-fw
29
+ Assets
30
+ %li
31
+ = link_to admin_settings_url do
32
+ %i.fa.fa-cog.fa-fw
33
+ Settings
34
+ %li
35
+ = link_to admin_contributors_url do
36
+ %i.fa.fa-group.fa-fw
37
+ Contributors
38
+ %li.hide-for-medium-up
39
+ %h4
40
+ Session
41
+ %li.hide-for-medium-up
42
+ = link_to admin_contributor_url(current_contributor) do
43
+ = image_tag current_contributor.avatar_url, class: :avatar, style: 'height: 18px'
44
+ = current_contributor.name
45
+ %li.hide-for-medium-up
46
+ = link_to destroy_contributor_session_url, 'data-method' => 'delete' do
47
+ %i.fa.fa-sign-out.fa-fw
48
+ Logout
@@ -0,0 +1,3 @@
1
+ = form.input field.slug_id, as: :file, required: false
2
+ - if value && value.content_size > 0
3
+ .item_value= image_tag value.content.thumb.url
@@ -0,0 +1,3 @@
1
+ = form.label field.slug_id
2
+ -#.epiceditor
3
+ = form.text_area field.slug_id, value: value ? value.raw_value : nil
@@ -0,0 +1,11 @@
1
+ - if asset.new_record?
2
+ - url = admin_assets_url
3
+ - else
4
+ - url = admin_asset_url(asset)
5
+ = simple_form_for(asset, as: :asset, url: url, html: {class: :full_form}) do |f|
6
+ = f.input :name
7
+ = f.input :content, as: :file
8
+ = f.button :submit, class: [:right, :success, :small] do
9
+ %i.fa.fa-check
10
+ Save
11
+ .clear
@@ -0,0 +1,7 @@
1
+ .title
2
+ %h1
3
+ %i.fa.fa-picture-o
4
+ Edit
5
+ = current_asset.name
6
+ %small Asset
7
+ = render partial: 'form', locals: {asset: current_asset}
@@ -0,0 +1,15 @@
1
+ .title
2
+ %h1
3
+ .right
4
+ %small
5
+ = link_to new_admin_asset_url do
6
+ %i.fa.fa-plus.fa-fw
7
+ Add
8
+ %i.fa.fa-picture-o.fa-fw
9
+ Assets
10
+ .full_blocks
11
+ %ul.large-block-grid-6.small-block-grid-2.medium-block-grid-3
12
+ - assets.each do |a|
13
+ %li
14
+ = link_to admin_asset_url(a) do
15
+ = image_tag a.content.thumb.url
@@ -0,0 +1,5 @@
1
+ .title
2
+ %h1
3
+ %i.fa.fa-picture-o
4
+ New Asset
5
+ = render partial: 'form', locals: {asset: current_asset}
@@ -0,0 +1,14 @@
1
+ .title
2
+ %h4
3
+ %i.fa.fa-chevron-circle-left.fa-fw
4
+ = link_to 'Assets', admin_assets_url
5
+ %h1
6
+ .right
7
+ %small
8
+ = link_to admin_asset_url(current_asset), 'data-method' => 'delete', confirm: 'Are you sure?', class: 'alert' do
9
+ %i.fa.fa-trash-o.fa-fw
10
+ Remove
11
+ %i.fa.fa-picture-o.fa-fw
12
+ = current_asset.name
13
+ .full_blocks{style: 'text-align: center'}
14
+ = image_tag current_asset.content.thumb.url