spontaneous 0.1.0.alpha1 → 0.2.0.alpha1

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 (413) hide show
  1. data/Gemfile +40 -35
  2. data/LICENSE +20 -0
  3. data/Rakefile +39 -42
  4. data/Readme.markdown +155 -0
  5. data/application/css/definitions.scss +3 -0
  6. data/application/css/editing.scss +9 -4
  7. data/application/css/min/565d4c25e82148acb01c45c8d675b37a08676d77.css +1 -0
  8. data/application/css/min/84dbe894ea96eafd321c30823d630817bfc4b03b.css +1 -0
  9. data/application/css/min/d1b54ff4847c613618267ca1c15658e2aee0a4e5.css +1 -0
  10. data/application/css/v2.scss +144 -50
  11. data/application/js/add_alias_dialogue.js +18 -8
  12. data/application/js/ajax.js +1 -1
  13. data/application/js/authentication.js +8 -1
  14. data/application/js/box.js +37 -7
  15. data/application/js/box_container.js +1 -1
  16. data/application/js/compatibility.js +7 -0
  17. data/application/js/content.js +7 -0
  18. data/application/js/content_area.js +4 -0
  19. data/application/js/edit_panel.js +44 -18
  20. data/application/js/editing.js +12 -0
  21. data/application/js/event_source.js +17 -0
  22. data/application/js/extensions.js +2 -0
  23. data/application/js/field_types/file_field.js +2 -1
  24. data/application/js/field_types/image_field.js +35 -48
  25. data/application/js/field_types/long_string_field.js +12 -0
  26. data/application/js/field_types/markdown_field.js +2 -5
  27. data/application/js/field_types/string_field.js +5 -1
  28. data/application/js/field_types/webvideo_field.js +15 -0
  29. data/application/js/init.js +1 -0
  30. data/application/js/location.js +30 -19
  31. data/application/js/login.js +1 -2
  32. data/application/js/min/2a0c2962537a3181fedfff5c92596ba6d3122dc9.js +3 -0
  33. data/application/js/min/4cf1c493d3379ecba5287758c61238034c0893f9.js +2 -0
  34. data/application/js/min/78ac6b99d96750bb6b9f9aad4cb9cd91cd03f391.js +3 -0
  35. data/application/js/min/c8efb9b9f7c3f6613fcebc6be60f605b6570a382.js +90 -0
  36. data/application/js/page.js +1 -0
  37. data/application/js/page_entry.js +6 -40
  38. data/application/js/preview.js +2 -3
  39. data/application/js/top_bar.js +76 -31
  40. data/application/js/upload.js +5 -2
  41. data/application/js/upload_manager.js +2 -81
  42. data/application/js/vendor/jquery-1.7.1.min.js +4 -0
  43. data/application/js/vendor/jquery-ui-1.8.16.custom.min.js +791 -0
  44. data/application/js/views.js +3 -3
  45. data/application/js/views/box_view.js +164 -83
  46. data/application/js/views/page_piece_view.js +2 -2
  47. data/application/js/views/page_view.js +46 -15
  48. data/application/js/views/piece_view.js +29 -8
  49. data/application/static/diagonal-texture.png +0 -0
  50. data/application/static/item-buttons-highlight.png +0 -0
  51. data/application/static/plus-box.png +0 -0
  52. data/application/static/plus_alt.svg +8 -0
  53. data/application/static/slot-up-arrow.png +0 -0
  54. data/application/views/{index.erubis → index.erb} +9 -5
  55. data/application/views/{login.erubis → login.erb} +14 -10
  56. data/application/views/schema_modification_error.html.erb +18 -6
  57. data/application/views/{unsupported.erubis → unsupported.erb} +0 -0
  58. data/bin/spot +15 -2
  59. data/db/migrations/20100610142136_init.rb +2 -2
  60. data/db/migrations/20101130104334_timestamps.rb +2 -2
  61. data/db/migrations/20110209152710_users_and_groups.rb +11 -11
  62. data/db/migrations/20120106171423_visibility_path.rb +19 -0
  63. data/db/migrations/20120107124541_owner_id.rb +19 -0
  64. data/docs/recipe-interface-screenshot.png +0 -0
  65. data/lib/cutaneous.rb +11 -10
  66. data/lib/cutaneous/context_helper.rb +119 -14
  67. data/lib/cutaneous/preview_context.rb +4 -3
  68. data/lib/cutaneous/preview_renderer.rb +1 -6
  69. data/lib/cutaneous/publish_context.rb +1 -0
  70. data/lib/cutaneous/{first_pass_renderer.rb → publish_renderer.rb} +2 -6
  71. data/lib/cutaneous/publish_template.rb +62 -0
  72. data/lib/cutaneous/publish_token_parser.rb +8 -0
  73. data/lib/cutaneous/renderer.rb +4 -2
  74. data/lib/cutaneous/request_context.rb +1 -0
  75. data/lib/cutaneous/{second_pass_renderer.rb → request_renderer.rb} +2 -5
  76. data/lib/cutaneous/request_template.rb +11 -0
  77. data/lib/cutaneous/request_token_parser.rb +9 -0
  78. data/lib/cutaneous/token_parser.rb +125 -0
  79. data/lib/sequel/plugins/content_table_inheritance.rb +19 -12
  80. data/lib/sequel/plugins/scoped_table_name.rb +45 -0
  81. data/lib/spontaneous.rb +123 -126
  82. data/lib/spontaneous/box.rb +127 -47
  83. data/lib/spontaneous/box_style.rb +39 -22
  84. data/lib/spontaneous/change.rb +2 -2
  85. data/lib/spontaneous/cli.rb +1 -0
  86. data/lib/spontaneous/cli/base.rb +12 -4
  87. data/lib/spontaneous/cli/console.rb +72 -0
  88. data/lib/spontaneous/cli/server.rb +36 -12
  89. data/lib/spontaneous/cli/site.rb +175 -1
  90. data/lib/spontaneous/collections/box_set.rb +19 -1
  91. data/lib/spontaneous/collections/entry_set.rb +70 -22
  92. data/lib/spontaneous/collections/field_set.rb +3 -3
  93. data/lib/spontaneous/collections/prototype_set.rb +28 -0
  94. data/lib/spontaneous/config.rb +14 -5
  95. data/lib/spontaneous/content.rb +23 -24
  96. data/lib/spontaneous/errors.rb +20 -4
  97. data/lib/spontaneous/extensions/array.rb +2 -2
  98. data/lib/spontaneous/extensions/json.rb +1 -1
  99. data/lib/spontaneous/extensions/nil.rb +13 -0
  100. data/lib/spontaneous/facet.rb +61 -7
  101. data/lib/spontaneous/field_types.rb +1 -3
  102. data/lib/spontaneous/field_types/date_field.rb +1 -0
  103. data/lib/spontaneous/field_types/field.rb +32 -15
  104. data/lib/spontaneous/field_types/image_field.rb +138 -69
  105. data/lib/spontaneous/field_types/location_field.rb +59 -0
  106. data/lib/spontaneous/field_types/long_string_field.rb +13 -0
  107. data/lib/spontaneous/field_types/markdown_field.rb +2 -1
  108. data/lib/spontaneous/field_types/string_field.rb +2 -2
  109. data/lib/spontaneous/field_types/webvideo_field.rb +255 -0
  110. data/lib/spontaneous/generators/page/inline.html.cut +1 -1
  111. data/lib/spontaneous/generators/page/page.html.cut.tt +5 -4
  112. data/lib/spontaneous/generators/page/page.rb.tt +1 -5
  113. data/lib/spontaneous/generators/site.rb +1 -0
  114. data/lib/spontaneous/generators/site/.gitignore +2 -0
  115. data/lib/spontaneous/generators/site/Gemfile.tt +3 -5
  116. data/lib/spontaneous/generators/site/config/environment.rb.tt +1 -0
  117. data/lib/spontaneous/generators/site/config/environments/development.rb.tt +3 -1
  118. data/lib/spontaneous/generators/site/config/environments/production.rb.tt +3 -1
  119. data/lib/spontaneous/generators/site/config/indexes.rb.tt +23 -0
  120. data/lib/spontaneous/generators/site/public/css/{site.css → site.scss} +0 -0
  121. data/lib/spontaneous/generators/site/schema/box.rb.tt +5 -0
  122. data/lib/spontaneous/generators/site/templates/layouts/standard.html.cut.tt +11 -5
  123. data/lib/spontaneous/image_size.rb +0 -1
  124. data/lib/spontaneous/loader.rb +335 -218
  125. data/lib/spontaneous/logger.rb +7 -2
  126. data/lib/spontaneous/media.rb +64 -59
  127. data/lib/spontaneous/media/file.rb +74 -0
  128. data/lib/spontaneous/page.rb +47 -18
  129. data/lib/spontaneous/page_piece.rb +29 -27
  130. data/lib/spontaneous/paths.rb +0 -1
  131. data/lib/spontaneous/permissions.rb +3 -21
  132. data/lib/spontaneous/permissions/user.rb +5 -1
  133. data/lib/spontaneous/permissions/user_level.rb +6 -7
  134. data/lib/spontaneous/piece.rb +12 -7
  135. data/lib/spontaneous/plugins/aliases.rb +76 -31
  136. data/lib/spontaneous/plugins/allowed_types.rb +36 -37
  137. data/lib/spontaneous/plugins/application/facets.rb +7 -10
  138. data/lib/spontaneous/plugins/application/features.rb +17 -0
  139. data/lib/spontaneous/plugins/application/paths.rb +25 -31
  140. data/lib/spontaneous/plugins/application/render.rb +1 -5
  141. data/lib/spontaneous/plugins/application/serialisation.rb +2 -0
  142. data/lib/spontaneous/plugins/application/state.rb +6 -9
  143. data/lib/spontaneous/plugins/boxes.rb +65 -40
  144. data/lib/spontaneous/plugins/controllers.rb +22 -22
  145. data/lib/spontaneous/plugins/entries.rb +149 -150
  146. data/lib/spontaneous/plugins/entry.rb +50 -35
  147. data/lib/spontaneous/plugins/field/editor_class.rb +13 -0
  148. data/lib/spontaneous/plugins/fields.rb +41 -33
  149. data/lib/spontaneous/plugins/instance_code.rb +9 -9
  150. data/lib/spontaneous/plugins/layouts.rb +31 -35
  151. data/lib/spontaneous/plugins/media.rb +31 -32
  152. data/lib/spontaneous/plugins/page/formats.rb +56 -31
  153. data/lib/spontaneous/plugins/page/request.rb +15 -9
  154. data/lib/spontaneous/plugins/page_search.rb +30 -31
  155. data/lib/spontaneous/plugins/page_tree.rb +59 -12
  156. data/lib/spontaneous/plugins/paths.rb +84 -79
  157. data/lib/spontaneous/plugins/permissions.rb +26 -28
  158. data/lib/spontaneous/plugins/prototypes.rb +42 -37
  159. data/lib/spontaneous/plugins/publishing.rb +50 -94
  160. data/lib/spontaneous/plugins/render.rb +8 -16
  161. data/lib/spontaneous/plugins/schema_hierarchy.rb +20 -21
  162. data/lib/spontaneous/plugins/schema_id.rb +33 -25
  163. data/lib/spontaneous/plugins/schema_title.rb +3 -4
  164. data/lib/spontaneous/plugins/serialisation.rb +32 -35
  165. data/lib/spontaneous/plugins/site/features.rb +32 -0
  166. data/lib/spontaneous/plugins/site/instance.rb +3 -2
  167. data/lib/spontaneous/plugins/site/level.rb +18 -0
  168. data/lib/spontaneous/plugins/site/map.rb +2 -1
  169. data/lib/spontaneous/plugins/site/publishing.rb +56 -59
  170. data/lib/spontaneous/plugins/site/revisions.rb +24 -19
  171. data/lib/spontaneous/plugins/site/schema.rb +33 -0
  172. data/lib/spontaneous/plugins/site/search.rb +43 -0
  173. data/lib/spontaneous/plugins/site/selectors.rb +35 -30
  174. data/lib/spontaneous/plugins/site/storage.rb +63 -0
  175. data/lib/spontaneous/plugins/site_map.rb +23 -25
  176. data/lib/spontaneous/plugins/styles.rb +35 -43
  177. data/lib/spontaneous/plugins/supertype.rb +3 -1
  178. data/lib/spontaneous/plugins/visibility.rb +90 -83
  179. data/lib/spontaneous/prototypes/box_prototype.rb +55 -25
  180. data/lib/spontaneous/prototypes/field_prototype.rb +66 -19
  181. data/lib/spontaneous/prototypes/style_prototype.rb +2 -2
  182. data/lib/spontaneous/publishing.rb +1 -1
  183. data/lib/spontaneous/publishing/immediate.rb +128 -49
  184. data/lib/spontaneous/publishing/simultaneous.rb +70 -0
  185. data/lib/spontaneous/rack.rb +38 -26
  186. data/lib/spontaneous/rack/around_back.rb +3 -23
  187. data/lib/spontaneous/rack/around_preview.rb +3 -8
  188. data/lib/spontaneous/rack/assets.rb +7 -6
  189. data/lib/spontaneous/rack/authentication.rb +21 -0
  190. data/lib/spontaneous/rack/back.rb +310 -331
  191. data/lib/spontaneous/rack/cacheable_file.rb +27 -0
  192. data/lib/spontaneous/rack/cookie_authentication.rb +38 -0
  193. data/lib/spontaneous/rack/css.rb +43 -0
  194. data/lib/spontaneous/rack/event_source.rb +31 -0
  195. data/lib/spontaneous/rack/front.rb +30 -8
  196. data/lib/spontaneous/rack/helpers.rb +31 -0
  197. data/lib/spontaneous/rack/media.rb +22 -21
  198. data/lib/spontaneous/rack/public.rb +2 -1
  199. data/lib/spontaneous/rack/query_authentication.rb +35 -0
  200. data/lib/spontaneous/rack/reloader.rb +6 -3
  201. data/lib/spontaneous/rack/user_helpers.rb +28 -0
  202. data/lib/spontaneous/render.rb +64 -23
  203. data/lib/spontaneous/render/context_base.rb +143 -0
  204. data/lib/spontaneous/render/format.rb +24 -19
  205. data/lib/spontaneous/render/helpers.rb +14 -0
  206. data/lib/spontaneous/render/helpers/html_helper.rb +69 -0
  207. data/lib/spontaneous/render/helpers/script_helper.rb +17 -0
  208. data/lib/spontaneous/render/helpers/stylesheet_helper.rb +16 -0
  209. data/lib/spontaneous/render/preview_context.rb +8 -0
  210. data/lib/spontaneous/render/preview_renderer.rb +6 -0
  211. data/lib/spontaneous/render/publish_context.rb +22 -0
  212. data/lib/spontaneous/render/published_renderer.rb +12 -13
  213. data/lib/spontaneous/render/publishing_renderer.rb +3 -0
  214. data/lib/spontaneous/render/render_cache.rb +26 -0
  215. data/lib/spontaneous/render/renderer.rb +5 -1
  216. data/lib/spontaneous/render/request_context.rb +8 -0
  217. data/lib/spontaneous/schema.rb +56 -24
  218. data/lib/spontaneous/schema/schema_modification.rb +2 -2
  219. data/lib/spontaneous/schema/uid.rb +22 -106
  220. data/lib/spontaneous/schema/uid_map.rb +120 -0
  221. data/lib/spontaneous/search.rb +11 -0
  222. data/lib/spontaneous/search/compound_indexer.rb +26 -0
  223. data/lib/spontaneous/search/database.rb +72 -0
  224. data/lib/spontaneous/search/field.rb +95 -0
  225. data/lib/spontaneous/search/index.rb +184 -0
  226. data/lib/spontaneous/search/results.rb +34 -0
  227. data/lib/spontaneous/server.rb +5 -1
  228. data/lib/spontaneous/site.rb +56 -16
  229. data/lib/spontaneous/storage.rb +22 -0
  230. data/lib/spontaneous/storage/backend.rb +10 -0
  231. data/lib/spontaneous/storage/cloud.rb +104 -0
  232. data/lib/spontaneous/storage/local.rb +52 -0
  233. data/lib/spontaneous/style.rb +27 -9
  234. data/lib/spontaneous/version.rb +1 -1
  235. data/spontaneous.gemspec +719 -0
  236. data/test/disabled/test_slots.rb +1 -1
  237. data/test/experimental/test_cutaneous.rb +309 -0
  238. data/test/experimental/test_features.rb +129 -0
  239. data/test/fixtures/application/views/{index.erubis → index.erb} +0 -0
  240. data/test/fixtures/back/public/css/sass_include.scss +5 -0
  241. data/test/fixtures/back/public/css/sass_template.scss +4 -0
  242. data/test/fixtures/example_application/templates/client_project.html.cut +4 -4
  243. data/test/fixtures/example_application/templates/client_project/images.html.cut +1 -1
  244. data/test/fixtures/example_application/templates/client_projects.html.cut +2 -2
  245. data/test/fixtures/example_application/templates/inline_image.html.cut +1 -1
  246. data/test/fixtures/example_application/templates/layouts/home.html.cut +7 -7
  247. data/test/fixtures/example_application/templates/layouts/info.html.cut +1 -1
  248. data/test/fixtures/example_application/templates/layouts/project.html.cut +4 -4
  249. data/test/fixtures/example_application/templates/layouts/projects.html.cut +2 -2
  250. data/test/fixtures/example_application/templates/project.html.cut +2 -2
  251. data/test/fixtures/example_application/templates/project/inline.html.cut +3 -3
  252. data/test/fixtures/example_application/templates/project_image.html.cut +1 -1
  253. data/test/fixtures/example_application/templates/text.html.cut +1 -1
  254. data/test/fixtures/fields/youtube_api_response.xml +102 -0
  255. data/test/fixtures/layouts/layouts/custom4.html.cut +0 -0
  256. data/test/fixtures/plugins/schema_plugin/public/css/plugin.css +1 -0
  257. data/test/fixtures/plugins/schema_plugin/public/js/plugin.js +1 -0
  258. data/test/fixtures/plugins/schema_plugin/public/static.html +1 -0
  259. data/test/fixtures/plugins/schema_plugin/public/subdir/image.gif +1 -0
  260. data/test/fixtures/plugins/schema_plugin/public/subdir/include1.scss +3 -0
  261. data/test/fixtures/plugins/schema_plugin/public/subdir/sass.scss +4 -0
  262. data/test/fixtures/plugins/schema_plugin/public/subdir/sass/include2.scss +4 -0
  263. data/test/fixtures/public/templates/layouts/default.html.cut +1 -1
  264. data/test/fixtures/public/templates/layouts/default.pdf.cut +1 -1
  265. data/test/fixtures/public/templates/layouts/default.rss.cut +1 -1
  266. data/test/fixtures/public/templates/layouts/dynamic.html.cut +1 -1
  267. data/test/fixtures/schema_modification/config/database.yml +0 -0
  268. data/test/fixtures/schema_modification/config/environment.rb +2 -0
  269. data/test/fixtures/schema_modification/schema/box.rb +1 -0
  270. data/test/fixtures/schema_modification/schema/custom_box.rb +1 -0
  271. data/test/fixtures/schema_modification/schema/page.rb +6 -0
  272. data/test/fixtures/schema_modification/schema/piece.rb +1 -0
  273. data/test/fixtures/search/config/database.yml +1 -0
  274. data/test/fixtures/search/config/indexes.rb +4 -0
  275. data/test/fixtures/serialisation/root_hash.yaml.erb +16 -20
  276. data/test/fixtures/storage/cloud/environment.rb +12 -0
  277. data/test/fixtures/storage/default/environment.rb +1 -0
  278. data/test/fixtures/templates/aliases/layouts/c_alias.html.cut +1 -1
  279. data/test/fixtures/templates/content/include.html.cut +1 -1
  280. data/test/fixtures/templates/content/include_dir.html.cut +1 -1
  281. data/test/fixtures/templates/content/included.epub.cut +1 -1
  282. data/test/fixtures/templates/content/included.html.cut +1 -1
  283. data/test/fixtures/templates/content/partial/included.html.cut +1 -1
  284. data/test/fixtures/templates/content/preprocess.html.cut +1 -1
  285. data/test/fixtures/templates/content/second.html.cut +1 -1
  286. data/test/fixtures/templates/content/template.epub.cut +1 -1
  287. data/test/fixtures/templates/content/template.html.cut +1 -1
  288. data/test/fixtures/templates/default_style_class.html.cut +1 -1
  289. data/test/fixtures/templates/engine/braces.html.cut +6 -0
  290. data/test/fixtures/templates/engine/multiline.html.cut +5 -0
  291. data/test/fixtures/templates/extended/grandparent.html.cut +7 -7
  292. data/test/fixtures/templates/extended/main.html.cut +5 -5
  293. data/test/fixtures/templates/extended/parent.html.cut +10 -8
  294. data/test/fixtures/templates/extended/partial.html.cut +1 -0
  295. data/test/fixtures/templates/extended/partial_with_locals.html.cut +1 -0
  296. data/test/fixtures/templates/extended/with_includes.html.cut +9 -0
  297. data/test/fixtures/templates/extended/with_includes_and_locals.html.cut +9 -0
  298. data/test/fixtures/templates/layouts/entries.html.cut +7 -7
  299. data/test/fixtures/templates/layouts/page_style.html.cut +1 -1
  300. data/test/fixtures/templates/layouts/params.html.cut +1 -1
  301. data/test/fixtures/templates/layouts/preview_render.html.cut +2 -2
  302. data/test/fixtures/templates/layouts/standard_page.html.cut +1 -1
  303. data/test/fixtures/templates/layouts/subdir_style.html.cut +1 -1
  304. data/test/fixtures/templates/layouts/template_params.html.cut +1 -1
  305. data/test/fixtures/templates/layouts/variables.html.cut +7 -0
  306. data/test/fixtures/templates/page_class/inline_style.html.cut +1 -1
  307. data/test/fixtures/templates/preview_render/variables.html.cut +1 -0
  308. data/test/fixtures/templates/publishing/templates/layouts/dynamic.html.cut +1 -0
  309. data/test/fixtures/templates/publishing/templates/layouts/dynamic.rtf.cut +1 -0
  310. data/test/fixtures/templates/publishing/templates/layouts/static.html.cut +1 -0
  311. data/test/fixtures/templates/template_class/anonymous_style.html.cut +2 -2
  312. data/test/fixtures/templates/template_class/complex_template.html.cut +4 -4
  313. data/test/fixtures/templates/template_class/complex_template.pdf.cut +4 -4
  314. data/test/fixtures/templates/template_class/default_template_style.html.cut +2 -2
  315. data/test/fixtures/templates/template_class/images_with_template.html.cut +3 -3
  316. data/test/fixtures/templates/template_class/slots_template.html.cut +3 -3
  317. data/test/fixtures/templates/template_class/slots_template.pdf.cut +3 -3
  318. data/test/fixtures/templates/template_class/this_template.epub.cut +1 -1
  319. data/test/fixtures/templates/template_class/this_template.html.cut +1 -1
  320. data/test/fixtures/templates/template_class/this_template.pdf.cut +1 -1
  321. data/test/fixtures/templates/with_default_style_class.html.cut +1 -1
  322. data/test/functional/test_application.rb +19 -15
  323. data/test/functional/test_back.rb +130 -98
  324. data/test/functional/test_front.rb +72 -28
  325. data/test/javascript/test_dom.rb +1 -1
  326. data/test/javascript/test_markdown.rb +1 -1
  327. data/test/slow/test_publishing.rb +94 -75
  328. data/test/slow/test_visibility.rb +47 -14
  329. data/test/test_helper.rb +30 -3
  330. data/test/ui/test_page_editing.rb +1 -1
  331. data/test/unit/test_alias.rb +200 -16
  332. data/test/unit/test_authentication.rb +26 -28
  333. data/test/unit/test_boxes.rb +146 -75
  334. data/test/unit/test_config.rb +42 -20
  335. data/test/unit/test_content.rb +156 -37
  336. data/test/unit/test_content_inheritance.rb +4 -2
  337. data/test/unit/test_extensions.rb +7 -1
  338. data/test/unit/test_fields.rb +558 -290
  339. data/test/{experimental → unit}/test_formats.rb +42 -3
  340. data/test/unit/test_generators.rb +3 -2
  341. data/test/unit/test_helpers.rb +54 -0
  342. data/test/unit/test_image_size.rb +1 -1
  343. data/test/unit/test_images.rb +51 -40
  344. data/test/unit/test_layouts.rb +21 -4
  345. data/test/unit/test_logger.rb +1 -1
  346. data/test/unit/test_media.rb +165 -7
  347. data/test/unit/test_page.rb +158 -27
  348. data/test/unit/test_permissions.rb +170 -187
  349. data/test/unit/test_piece.rb +27 -9
  350. data/test/unit/test_plugins.rb +153 -0
  351. data/test/unit/test_prototype_set.rb +60 -2
  352. data/test/unit/test_prototypes.rb +81 -20
  353. data/test/unit/test_render.rb +97 -9
  354. data/test/unit/test_schema.rb +167 -120
  355. data/test/unit/test_search.rb +588 -0
  356. data/test/unit/test_serialisation.rb +26 -10
  357. data/test/unit/test_site.rb +42 -25
  358. data/test/unit/test_storage.rb +88 -0
  359. data/test/unit/test_structure.rb +11 -5
  360. data/test/unit/test_styles.rb +64 -3
  361. data/test/unit/test_table_scoping.rb +76 -0
  362. data/test/unit/test_templates.rb +69 -31
  363. data/test/unit/test_type_hierarchy.rb +9 -1
  364. metadata +274 -208
  365. data/Gemfile.lock +0 -146
  366. data/application/css/min/54ee0ed3c7fac7632bd5c020d69e9a2503e0c88c.css +0 -1
  367. data/application/css/min/c256adc144e2bdd0b0539356b04eb62db01e1dc3.css +0 -1
  368. data/application/js/edit_dialogue.js +0 -137
  369. data/application/js/min/492a209de8ee955fa9c729a765377495001e11b1.js +0 -17
  370. data/application/js/min/80f684d77c940887a1d4a63e3a96102e993baa98.js +0 -88
  371. data/application/js/min/c7140ec9475e5bf868b901e0621338d7d162358b.js +0 -3
  372. data/application/js/min/f07f2bd6630ee31e1c2288ec223383d8f0658ba6.js +0 -2
  373. data/application/js/vendor/.DS_Store +0 -0
  374. data/application/js/vendor/JS.Class-2.1.5/src/command.js +0 -93
  375. data/application/js/vendor/JS.Class-2.1.5/src/comparable.js +0 -37
  376. data/application/js/vendor/JS.Class-2.1.5/src/constant_scope.js +0 -48
  377. data/application/js/vendor/JS.Class-2.1.5/src/core.js +0 -1060
  378. data/application/js/vendor/JS.Class-2.1.5/src/decorator.js +0 -50
  379. data/application/js/vendor/JS.Class-2.1.5/src/enumerable.js +0 -505
  380. data/application/js/vendor/JS.Class-2.1.5/src/forwardable.js +0 -22
  381. data/application/js/vendor/JS.Class-2.1.5/src/hash.js +0 -334
  382. data/application/js/vendor/JS.Class-2.1.5/src/linked_list.js +0 -114
  383. data/application/js/vendor/JS.Class-2.1.5/src/loader.js +0 -553
  384. data/application/js/vendor/JS.Class-2.1.5/src/method_chain.js +0 -172
  385. data/application/js/vendor/JS.Class-2.1.5/src/observable.js +0 -55
  386. data/application/js/vendor/JS.Class-2.1.5/src/package.js +0 -472
  387. data/application/js/vendor/JS.Class-2.1.5/src/proxy.js +0 -58
  388. data/application/js/vendor/JS.Class-2.1.5/src/ruby.js +0 -44
  389. data/application/js/vendor/JS.Class-2.1.5/src/set.js +0 -332
  390. data/application/js/vendor/JS.Class-2.1.5/src/stack_trace.js +0 -151
  391. data/application/js/vendor/JS.Class-2.1.5/src/state.js +0 -95
  392. data/application/js/vendor/JS.Class-2.1.5/src/stdlib.js +0 -2612
  393. data/application/js/vendor/jquery-1.4.2.min.js +0 -154
  394. data/application/js/vendor/jquery-1.4.3.min.js +0 -166
  395. data/application/js/vendor/jquery-1.5.1.min.js +0 -16
  396. data/application/js/vendor/jquery-1.5.1rc1.min.js +0 -24
  397. data/application/js/vendor/jquery-ui-1.8.6.custom.min.js +0 -265
  398. data/application/js/vendor/jquery-ui-1.8.custom.min.js +0 -106
  399. data/application/js/vendor/jquery.hotkeys-0.7.9.js +0 -248
  400. data/application/js/vendor/jquery.hotkeys-0.7.9.min.js +0 -19
  401. data/application/js/vendor/jsdiff.js +0 -169
  402. data/lib/cutaneous/first_pass_parser.rb +0 -23
  403. data/lib/cutaneous/parser_core.rb +0 -18
  404. data/lib/cutaneous/second_pass_parser.rb +0 -23
  405. data/lib/sequel/plugins/yajl_serialization.rb +0 -154
  406. data/lib/spontaneous/plugins.rb +0 -20
  407. data/lib/spontaneous/proxy_object.rb +0 -12
  408. data/lib/spontaneous/publishing/fire_and_forget.rb +0 -57
  409. data/lib/spontaneous/render/context.rb +0 -100
  410. data/spontaneous.gemspec.tmpl +0 -66
  411. data/test/experimental/test_plugins.rb +0 -64
  412. data/test/fixtures/templates/publishing/layouts/dynamic.html.cut +0 -1
  413. data/test/fixtures/templates/publishing/layouts/static.html.cut +0 -1
@@ -0,0 +1,34 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'forwardable'
4
+
5
+ module Spontaneous::Search
6
+ # Wraps XapianFu::ResultSet to provide a list of pages rather than a list of
7
+ # XapianDocs
8
+ class Results
9
+ extend Forwardable
10
+ include Enumerable
11
+
12
+ def_delegators :@results, :current_page, :per_page, :total_pages, :next_page, :offset, :previous_page, :total_entries
13
+
14
+ def initialize(result_set, corrected_query = nil)
15
+ @results, @corrected_query = result_set, corrected_query
16
+ end
17
+
18
+ def corrected_query
19
+ @corrected_query || @results.corrected_query
20
+ end
21
+
22
+ def each
23
+ pages.each { |page| yield(page) }
24
+ end
25
+
26
+ def length
27
+ pages.length
28
+ end
29
+
30
+ def pages
31
+ @page_list ||= Spontaneous::Content.filter(:id => @results.map { |doc| doc.id })
32
+ end
33
+ end # Results
34
+ end
@@ -3,11 +3,14 @@
3
3
  # Rack::Handler.register('unicorn', 'Unicorn') if defined?(Unicorn)
4
4
 
5
5
  ## thanks again to the stirling work of the Padrino guys & gals.
6
+ require 'rack'
7
+ require 'launchy'
8
+
6
9
  module Spontaneous
7
10
 
8
11
  module Server
9
12
 
10
- Handlers = %w[thin mongrel webrick] unless const_defined?(:Handlers)
13
+ Handlers = %w[thin] unless const_defined?(:Handlers)
11
14
 
12
15
 
13
16
  def self.run!(options={})
@@ -38,6 +41,7 @@ module Spontaneous
38
41
  end
39
42
  trap(:INT, &term)
40
43
  trap(:TERM, &term)
44
+ # ::Launchy::Browser.run("http://localhost:#{port}/@spontaneous") if Spontaneous.mode == :back
41
45
  end
42
46
  rescue RuntimeError => e
43
47
  if e.message =~ /no acceptor/
@@ -2,13 +2,16 @@
2
2
 
3
3
  module Spontaneous
4
4
  class Site < Spontaneous::Facet
5
- extend Plugins
6
-
7
- plugin Plugins::Site::Instance
8
- plugin Plugins::Site::Publishing
9
- plugin Plugins::Site::Revisions
10
- plugin Plugins::Site::Selectors
11
- plugin Plugins::Site::Map
5
+ include Plugins::Site::Instance
6
+ include Plugins::Site::Publishing
7
+ include Plugins::Site::Revisions
8
+ include Plugins::Site::Selectors
9
+ include Plugins::Site::Map
10
+ include Plugins::Site::Search
11
+ include Plugins::Site::Features
12
+ include Plugins::Site::Schema
13
+ include Plugins::Site::Level
14
+ include Plugins::Site::Storage
12
15
 
13
16
  attr_accessor :database
14
17
  attr_reader :environment, :mode
@@ -24,28 +27,36 @@ module Spontaneous
24
27
  find_plugins!
25
28
  load_facets!
26
29
  init_facets!
30
+ init_indexes!
27
31
  end
28
32
 
33
+
29
34
  def init_facets!
30
35
  facets.each do |facet|
31
36
  facet.init!
32
37
  end
33
38
  end
34
39
 
35
- def load_facets!
36
- Spontaneous::Loader.load!
40
+ def init_indexes!
41
+ facets.each do |facet|
42
+ facet.load_indexes!
43
+ end
37
44
  end
38
45
 
39
- def load_paths
40
- load_paths = []
41
- [:lib, :schema].each do |category|
42
- facets.each do |facet|
43
- load_paths += facet.paths.expanded(category)
44
- end
46
+ def load_facets!
47
+ load_order.each do |category|
48
+ facets.each { |facet| facet.load_files(category) }
45
49
  end
46
- load_paths
47
50
  end
48
51
 
52
+
53
+ def reload!
54
+ schema.reload!
55
+ facets.each { |facet| facet.reload_all! }
56
+ schema.validate!
57
+ end
58
+
59
+
49
60
  def connect_to_database!
50
61
  self.database = Sequel.connect(db_settings)
51
62
  self.database.logger = logger if config.log_queries
@@ -83,5 +94,34 @@ module Spontaneous
83
94
  plugin
84
95
  end
85
96
 
97
+ # used by publishing mechanism to place files into the appropriate subdirectories
98
+ # in the public folder.
99
+ # Site#file_namespace returns nil so that it's files are placed at the root
100
+ def file_namespace
101
+ nil
102
+ end
103
+
104
+ def revision_root
105
+ @revision_dir ||= File.expand_path(@root / 'cache/revisions')
106
+ # Spontaneous.relative_dir(@revision_dir, *path)
107
+ end
108
+
109
+ def revision_dir(revision=nil, root = revision_root)
110
+ root ||= revision_root
111
+ return root / 'current' if revision.nil?
112
+ root / revision.to_s.rjust(5, "0")
113
+ end
114
+
115
+ def media_dir(*path)
116
+ media_root = root / "cache/media"
117
+ return media_root if path.empty?
118
+ File.join(media_root, *path)
119
+ end
120
+
121
+ def cache_dir(*path)
122
+ cache_root = root / "cache"
123
+ return cache_root if path.empty?
124
+ File.join(cache_root, *path)
125
+ end
86
126
  end
87
127
  end
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+
3
+ module Spontaneous
4
+ module Storage
5
+ autoload :Backend, "spontaneous/storage/backend"
6
+ autoload :Local, "spontaneous/storage/local"
7
+ autoload :Cloud, "spontaneous/storage/cloud"
8
+
9
+ extend self
10
+
11
+ def create(config)
12
+ case config[:provider]
13
+ when "Local", "local"
14
+ Spontaneous::Storage::Local.new(config[:local_root], config[:url], config[:accepts])
15
+ else
16
+ bucket = config.delete(:bucket)
17
+ accepts = config.delete(:accepts)
18
+ Spontaneous::Storage::Cloud.new(config, bucket, accepts)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ # encoding: UTF-8
2
+
3
+ module Spontaneous::Storage
4
+ class Backend
5
+ def accepts?(mimetype)
6
+ return true if @accepts.nil?
7
+ true
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,104 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'fog'
4
+ require 'tempfile'
5
+
6
+ module Spontaneous::Storage
7
+ class Cloud < Backend
8
+ # bucket_name = "media.kitmonsters.com"
9
+ # connection = Fog::Storage.new({
10
+ # :provider=>"AWS",
11
+ # :aws_secret_access_key=>"SECRET_ACCESS_KEY",
12
+ # :aws_access_key_id=>"ACCESS_KEY_ID"
13
+ # })
14
+ # connection.put_object(bucket_name, "test.jpg", File.open("/Users/garry/Dropbox/Photos/360343585_acc8e25bfa_o.jpg"), {
15
+ # 'x-amz-acl'=>"public-read",
16
+ # "Cache-Control"=> "max-age=315360000, public",
17
+ # "Expires"=>"Thu, 31 Dec 2037 23:55:55 GMT"
18
+ # })
19
+ # ===========================================================
20
+ # bucket_name = 'uploadtest.magnetised.net'
21
+ # bucket = storage.directories.get(bucket_name)
22
+ # p bucket
23
+ #
24
+ # large = nil
25
+ #
26
+ # bm = Benchmark.measure do
27
+ # File.open('largefile.png', 'r') do |file|
28
+ # large = bucket.files.create(:key => 'largefile.png', :body => file, :idempotent => false, :public => true)
29
+ # # storage.put_object(bucket_name, 'largefile.png', file)
30
+ # end
31
+ # end
32
+ # puts "Took #{bm.real} seconds"
33
+ # p storage.get_object_acl(bucket.key, large.key).body['AccessControlList']
34
+ # p large.public_url
35
+ #
36
+ attr_reader :bucket_name
37
+
38
+ def initialize(config, bucket_name, accepts = nil)
39
+ @config, @bucket_name, @accepts = config, bucket_name, accepts
40
+ @public_host = @config.delete(:public_host)
41
+ end
42
+
43
+ def open(relative_path, mimetype, mode, &block)
44
+ Tempfile.open("spontaneous-cloud") do |tempfile|
45
+ tempfile.binmode
46
+ block.call(tempfile)
47
+ tempfile.rewind
48
+ self.copy(tempfile, relative_path, mimetype)
49
+ end
50
+ end
51
+
52
+ def copy(existing_file, media_path, mimetype)
53
+ params = {
54
+ :key => join_path(media_path),
55
+ :idempotent => false,
56
+ :body => existing_file,
57
+ :public => true,
58
+ :content_type => mimetype
59
+ }
60
+ params[:body] = File.open(existing_file) if existing_file.is_a?(String)
61
+ bucket.files.create(params)
62
+ end
63
+
64
+ def join_path(path)
65
+ path.join("-")
66
+ end
67
+
68
+ def local?
69
+ false
70
+ end
71
+
72
+ def secure?
73
+ @config[:secure]
74
+ end
75
+
76
+ def scheme
77
+ secure? ? "https" : "http"
78
+ end
79
+
80
+ def backend
81
+ @backend ||= Fog::Storage.new(@config)
82
+ end
83
+
84
+ def hostname
85
+ config[:host] || bucket_public_url
86
+ end
87
+
88
+ def bucket
89
+ @bucket ||= backend.directories.get(@bucket_name)
90
+ end
91
+
92
+ def public_url(path)
93
+ if @public_host
94
+ "#{@public_host}/#{join_path(path)}"
95
+ else
96
+ bucket.files.new(:key => join_path(path)).public_url
97
+ end
98
+ end
99
+
100
+ def root
101
+ "/"
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,52 @@
1
+ # encoding: UTF-8
2
+
3
+ module Spontaneous::Storage
4
+ class Local < Backend
5
+ attr_reader :root
6
+
7
+ def initialize(root_directory, url_path, accepts = nil)
8
+ @root, @url_path, @accepts = ::File.expand_path(root_directory), url_path, accepts
9
+ end
10
+
11
+ def copy(existing_file, media_path, mimetype)
12
+ dest_path = create_absolute_path(media_path)
13
+ if existing_file.respond_to?(:read)
14
+ File.open(dest_path, "wb") do |f|
15
+ f.binmode
16
+ while chunk = existing_file.read(8192)
17
+ f.write(chunk)
18
+ end
19
+ end
20
+ else
21
+ FileUtils.copy_file(existing_file, dest_path)
22
+ end
23
+ end
24
+
25
+ def open(relative_path, mimetype, mode, &block)
26
+ dest_path = create_absolute_path(relative_path)
27
+ File.open(dest_path, mode) do |f|
28
+ f.binmode
29
+ block.call(f)
30
+ end
31
+ end
32
+
33
+ def create_absolute_path(relative_path)
34
+ absolute_path = File.join(root, join_path(relative_path))
35
+ absolute_dir = File.dirname(absolute_path)
36
+ FileUtils.mkdir_p(absolute_dir) unless File.exist?(absolute_dir)
37
+ absolute_path
38
+ end
39
+
40
+ def join_path(path)
41
+ File.join(*path)
42
+ end
43
+
44
+ def public_url(path)
45
+ File.join(@url_path, join_path(path))
46
+ end
47
+
48
+ def local?
49
+ true
50
+ end
51
+ end
52
+ end
@@ -50,12 +50,26 @@ module Spontaneous
50
50
  end
51
51
 
52
52
  def supertype_template(format)
53
- supertype = owner.supertype
54
- if supertype && supertype != Spontaneous::Content
55
- self.class.new(supertype, prototype).template(format)
56
- else
57
- nil
53
+ template = try_supertype_styles.each { |style|
54
+ template = style.template(format)
55
+ return template unless template.nil?
56
+ }
57
+ nil
58
+ end
59
+
60
+ def try_supertype_styles
61
+ class_ancestors(owner).take_while { |a| a and a < Spontaneous::Content }.
62
+ map { |s| self.class.new(s, prototype) }
63
+ end
64
+
65
+ def class_ancestors(klass)
66
+ ancestors = []
67
+ obj = klass
68
+ while obj
69
+ obj = obj.supertype
70
+ ancestors << obj if obj
58
71
  end
72
+ ancestors
59
73
  end
60
74
 
61
75
  def inline_template(format)
@@ -78,13 +92,17 @@ module Spontaneous
78
92
 
79
93
  def try_paths
80
94
  name = prototype.name.to_s
81
- [[owner_directory_name, name], name]
95
+ owner_directory_paths(name).push(name)
82
96
  end
83
97
 
84
- def owner_directory_name
85
- self.class.to_directory_name(owner)
98
+ def owner_directory_names
99
+ classes = [owner].concat(owner.ancestors.take_while { |klass| klass < Spontaneous::Page or klass < Spontaneous::Piece })
100
+ classes.map { |klass| self.class.to_directory_name(klass) }
86
101
  end
87
102
 
103
+ def owner_directory_paths(basename)
104
+ owner_directory_names.map { |dir| [dir, basename] }
105
+ end
88
106
 
89
107
  def default?
90
108
  @options[:default]
@@ -115,7 +133,7 @@ module Spontaneous
115
133
  end
116
134
 
117
135
  def try_paths
118
- [owner_directory_name]
136
+ owner_directory_names
119
137
  end
120
138
  end
121
139
 
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Spontaneous
4
- VERSION = "0.1.0.alpha1"
4
+ VERSION = "0.2.0.alpha1"
5
5
  GEM = true
6
6
  end
@@ -0,0 +1,719 @@
1
+ ## This is the rakegem gemspec template. Make sure you read and understand
2
+ ## all of the comments. Some sections require modification, and others can
3
+ ## be deleted if you don't need them. Once you understand the contents of
4
+ ## this file, feel free to delete any comments that begin with two hash marks.
5
+ ## You can find comprehensive Gem::Specification documentation, at
6
+ ## http://docs.rubygems.org/read/chapter/20
7
+ Gem::Specification.new do |s|
8
+ s.specification_version = 2 if s.respond_to? :specification_version=
9
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
+ s.rubygems_version = '1.3.5'
11
+ s.required_ruby_version = ">= 1.9.2"
12
+
13
+ ## Leave these as is they will be modified for you by the rake gemspec task.
14
+ ## If your rubyforge_project name is different, then edit it and comment out
15
+ ## the sub! line in the Rakefile
16
+ s.name = 'spontaneous'
17
+ s.version = '0.2.0.alpha1'
18
+ s.date = '2012-02-16'
19
+ s.rubyforge_project = 'spontaneous'
20
+
21
+ ## Make sure your summary is short. The description may be as long
22
+ ## as you like.
23
+ s.summary = "Spontaneous is a next-generation Ruby CMS"
24
+ s.description = "Spontaneous is a next-generation Ruby CMS"
25
+
26
+ ## List the primary authors. If there are a bunch of authors, it's probably
27
+ ## better to set the email to an email list or something. If you don't have
28
+ ## a custom homepage, consider using your GitHub URL or the like.
29
+ s.authors = ["Garry Hill"]
30
+ s.email = 'garry@magnetised.net'
31
+ s.homepage = 'http://spontaneouscms.org'
32
+
33
+ ## This gets added to the $LOAD_PATH so that 'lib/NAME.rb' can be required as
34
+ ## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
35
+ s.require_paths = %w[lib]
36
+
37
+ # ## This sections is only necessary if you have C extensions.
38
+ # s.require_paths << 'ext'
39
+ # s.extensions = %w[ext/extconf.rb]
40
+
41
+ ## If your gem includes any executables, list them here.
42
+ s.executables = ["spot"]
43
+
44
+ ## Specify any RDoc options here. You'll want to add your README and
45
+ ## LICENSE files to the extra_rdoc_files list.
46
+ s.rdoc_options = ["--charset=UTF-8"]
47
+ s.extra_rdoc_files = %w[README LICENSE]
48
+
49
+ ## List your runtime dependencies here. Runtime dependencies are those
50
+ ## that are needed for an end user to actually USE your code.
51
+ s.add_dependency('bundler', ["> 1.0.15"])
52
+ s.add_dependency('rake', ["~> 0.9.2"])
53
+ s.add_dependency('rdoc', ["~> 3.9.4"])
54
+ s.add_dependency('activesupport', ["~> 3.2.0.rc1"])
55
+ s.add_dependency('home_run', ["~> 1.0.0"])
56
+ s.add_dependency('sequel', ["~> 3.31"])
57
+ s.add_dependency('yajl-ruby', ["~> 1.1"])
58
+ s.add_dependency('erubis', ["~> 2.6"])
59
+ s.add_dependency('fog', ["~> 1.1.1"])
60
+ s.add_dependency('sinatra', ["~> 1.3.0"])
61
+ s.add_dependency('rack', ["~> 1.3.4"])
62
+ s.add_dependency('thin', ["~> 1.2"])
63
+ s.add_dependency('less', ["~> 1.2"])
64
+ s.add_dependency('sass', ["~> 3.1.4"])
65
+ s.add_dependency('stringex', ["~> 1.1"])
66
+ s.add_dependency('mini_magick', ["~> 3.3"])
67
+ s.add_dependency('thor', ["~> 0.14.6"])
68
+ s.add_dependency('base58', ["~> 0.1.0"])
69
+ s.add_dependency('kramdown', ["~> 0.13.3"])
70
+ s.add_dependency('launchy', ["~> 0.4.0"])
71
+ s.add_dependency('shine', ["~> 0.6"])
72
+ s.add_dependency('foreman', ["~> 0.22.0"])
73
+ s.add_dependency('simultaneous', ["~> 0.2"])
74
+ s.add_dependency('rack-async', ["~> 0.1.0"])
75
+ s.add_dependency('xapian-full', ["~> 1.2.3"])
76
+ s.add_dependency('xapian-fu', ["~> 1.3"])
77
+ s.add_dependency('nokogiri', ["~> 1.5.0"])
78
+ s.add_dependency('watchr', ["~> 0.7"])
79
+
80
+ ## List your development dependencies here. Development dependencies are
81
+ ## those that are only needed during development
82
+ s.add_development_dependency('minitest', ["~> 2.1.0"])
83
+ s.add_development_dependency('mysql2', ["~> 0.3"])
84
+ s.add_development_dependency('jeweler', ["~> 1.5"])
85
+ s.add_development_dependency('jnunemaker-matchy', ["~> 0.4"])
86
+ s.add_development_dependency('shoulda', ["~> 2.11.3"])
87
+ s.add_development_dependency('timecop', ["~> 0.3"])
88
+ s.add_development_dependency('mocha', ["~> 0.9"])
89
+ s.add_development_dependency('rack-test', ["~> 0.5"])
90
+ s.add_development_dependency('leftright', ["~> 0.9"])
91
+ s.add_development_dependency('stackdeck', ["~> 0.2"])
92
+
93
+ ## Leave this section as-is. It will be automatically generated from the
94
+ ## contents of your Git repository via the gemspec task. DO NOT REMOVE
95
+ ## THE MANIFEST COMMENTS, they are used as delimiters by the task.
96
+ # = MANIFEST =
97
+ s.files = %w[
98
+ Gemfile
99
+ LICENSE
100
+ README
101
+ Rakefile
102
+ Readme.markdown
103
+ application/css/add_alias_dialogue.scss
104
+ application/css/definitions.scss
105
+ application/css/developer.scss
106
+ application/css/editing.scss
107
+ application/css/login.scss
108
+ application/css/min/565d4c25e82148acb01c45c8d675b37a08676d77.css
109
+ application/css/min/84dbe894ea96eafd321c30823d630817bfc4b03b.css
110
+ application/css/min/d1b54ff4847c613618267ca1c15658e2aee0a4e5.css
111
+ application/css/popover.scss
112
+ application/css/schema_error.scss
113
+ application/css/spontaneous.scss
114
+ application/css/unsupported.scss
115
+ application/css/v2.scss
116
+ application/css/variables.scss
117
+ application/js/add_alias_dialogue.js
118
+ application/js/add_home_dialogue.js
119
+ application/js/ajax.js
120
+ application/js/authentication.js
121
+ application/js/box.js
122
+ application/js/box_container.js
123
+ application/js/compatibility.js
124
+ application/js/conflicted_field_dialogue.js
125
+ application/js/content.js
126
+ application/js/content_area.js
127
+ application/js/dialogue.js
128
+ application/js/dom.js
129
+ application/js/edit_panel.js
130
+ application/js/editing.js
131
+ application/js/entry.js
132
+ application/js/event_source.js
133
+ application/js/extensions.js
134
+ application/js/field.js
135
+ application/js/field_preview.js
136
+ application/js/field_types/date_field.js
137
+ application/js/field_types/file_field.js
138
+ application/js/field_types/image_field.js
139
+ application/js/field_types/long_string_field.js
140
+ application/js/field_types/markdown_field.js
141
+ application/js/field_types/string_field.js
142
+ application/js/field_types/webvideo_field.js
143
+ application/js/image.js
144
+ application/js/init.js
145
+ application/js/load.js
146
+ application/js/location.js
147
+ application/js/login.js
148
+ application/js/min/2a0c2962537a3181fedfff5c92596ba6d3122dc9.js
149
+ application/js/min/4cf1c493d3379ecba5287758c61238034c0893f9.js
150
+ application/js/min/78ac6b99d96750bb6b9f9aad4cb9cd91cd03f391.js
151
+ application/js/min/b8abf302a824c35385ff517b34111e1710ff3b37.js
152
+ application/js/min/c8efb9b9f7c3f6613fcebc6be60f605b6570a382.js
153
+ application/js/page.js
154
+ application/js/page_browser.js
155
+ application/js/page_entry.js
156
+ application/js/popover.js
157
+ application/js/popover_view.js
158
+ application/js/preview.js
159
+ application/js/progress.js
160
+ application/js/properties.js
161
+ application/js/publish.js
162
+ application/js/require.js
163
+ application/js/sharded_upload.js
164
+ application/js/side_bar.js
165
+ application/js/spontaneous.js
166
+ application/js/state.js
167
+ application/js/status_bar.js
168
+ application/js/top_bar.js
169
+ application/js/types.js
170
+ application/js/upload.js
171
+ application/js/upload_manager.js
172
+ application/js/user.js
173
+ application/js/vendor/JS.Class-2.1.5/CHANGELOG
174
+ application/js/vendor/JS.Class-2.1.5/MIT-LICENSE
175
+ application/js/vendor/JS.Class-2.1.5/README
176
+ application/js/vendor/JS.Class-2.1.5/min/command.js
177
+ application/js/vendor/JS.Class-2.1.5/min/comparable.js
178
+ application/js/vendor/JS.Class-2.1.5/min/constant_scope.js
179
+ application/js/vendor/JS.Class-2.1.5/min/core.js
180
+ application/js/vendor/JS.Class-2.1.5/min/decorator.js
181
+ application/js/vendor/JS.Class-2.1.5/min/enumerable.js
182
+ application/js/vendor/JS.Class-2.1.5/min/forwardable.js
183
+ application/js/vendor/JS.Class-2.1.5/min/hash.js
184
+ application/js/vendor/JS.Class-2.1.5/min/linked_list.js
185
+ application/js/vendor/JS.Class-2.1.5/min/loader.js
186
+ application/js/vendor/JS.Class-2.1.5/min/method_chain.js
187
+ application/js/vendor/JS.Class-2.1.5/min/observable.js
188
+ application/js/vendor/JS.Class-2.1.5/min/package.js
189
+ application/js/vendor/JS.Class-2.1.5/min/proxy.js
190
+ application/js/vendor/JS.Class-2.1.5/min/ruby.js
191
+ application/js/vendor/JS.Class-2.1.5/min/set.js
192
+ application/js/vendor/JS.Class-2.1.5/min/stack_trace.js
193
+ application/js/vendor/JS.Class-2.1.5/min/state.js
194
+ application/js/vendor/JS.Class-2.1.5/min/stdlib.js
195
+ application/js/vendor/crypto-2.3.0-crypto.js
196
+ application/js/vendor/crypto-2.3.0-sha1.js
197
+ application/js/vendor/diff_match_patch.js
198
+ application/js/vendor/jquery-1.6.2.min.js
199
+ application/js/vendor/jquery-1.7.1.min.js
200
+ application/js/vendor/jquery-ui-1.8.16.custom.min.js
201
+ application/js/vendor/jquery-ui-1.8.9.custom.min.js
202
+ application/js/views.js
203
+ application/js/views/box_view.js
204
+ application/js/views/page_piece_view.js
205
+ application/js/views/page_view.js
206
+ application/js/views/piece_view.js
207
+ application/static/diagonal-texture.png
208
+ application/static/editing-0-noise.png
209
+ application/static/editing-1-noise.png
210
+ application/static/editing-texture-1.png
211
+ application/static/editing-texture.png
212
+ application/static/editing-toolbar-shadow-bottom.png
213
+ application/static/editing-toolbar-shadow-top.png
214
+ application/static/favicon.ico
215
+ application/static/inner-glow.png
216
+ application/static/item-buttons-highlight.png
217
+ application/static/item-buttons.png
218
+ application/static/location-arrow.png
219
+ application/static/logo-400px-transparent.png
220
+ application/static/missing.png
221
+ application/static/orange-down-arrow.png
222
+ application/static/page-browser-next.png
223
+ application/static/paper-texture-dark.png
224
+ application/static/plus-box.png
225
+ application/static/plus_alt.svg
226
+ application/static/px.gif
227
+ application/static/select-arrow-root.png
228
+ application/static/select-arrow.png
229
+ application/static/slot-down-arrow.png
230
+ application/static/slot-up-arrow.png
231
+ application/static/splash.png
232
+ application/static/spontaneous.png
233
+ application/static/spot.png
234
+ application/static/spot.svg
235
+ application/static/texture.png
236
+ application/views/index.erb
237
+ application/views/login.erb
238
+ application/views/schema_modification_error.html.erb
239
+ application/views/unsupported.erb
240
+ bin/limit-upload
241
+ bin/spot
242
+ bin/unlimit-upload
243
+ config/nginx.conf
244
+ db/migrations/20100610142136_init.rb
245
+ db/migrations/20101130104334_timestamps.rb
246
+ db/migrations/20101202113205_site_publishing_flags.rb
247
+ db/migrations/20101206124543_aliases.rb
248
+ db/migrations/20110201133550_visibility.rb
249
+ db/migrations/20110209152710_users_and_groups.rb
250
+ db/migrations/20110215133910_boxes.rb
251
+ db/migrations/20110521114145_remove_slots_and_entries.rb
252
+ db/migrations/20110604192145_rename_schema_id_columns.rb
253
+ db/migrations/20110805141925_rename_site_to_state.rb
254
+ db/migrations/20120106171423_visibility_path.rb
255
+ db/migrations/20120107124541_owner_id.rb
256
+ docs/recipe-interface-screenshot.png
257
+ lib/cutaneous.rb
258
+ lib/cutaneous/context_helper.rb
259
+ lib/cutaneous/preview_context.rb
260
+ lib/cutaneous/preview_renderer.rb
261
+ lib/cutaneous/publish_context.rb
262
+ lib/cutaneous/publish_renderer.rb
263
+ lib/cutaneous/publish_template.rb
264
+ lib/cutaneous/publish_token_parser.rb
265
+ lib/cutaneous/renderer.rb
266
+ lib/cutaneous/request_context.rb
267
+ lib/cutaneous/request_renderer.rb
268
+ lib/cutaneous/request_template.rb
269
+ lib/cutaneous/request_token_parser.rb
270
+ lib/cutaneous/token_parser.rb
271
+ lib/sequel/plugins/content_table_inheritance.rb
272
+ lib/sequel/plugins/scoped_table_name.rb
273
+ lib/spontaneous.rb
274
+ lib/spontaneous/application.rb
275
+ lib/spontaneous/application/feature.rb
276
+ lib/spontaneous/application/plugin.rb
277
+ lib/spontaneous/box.rb
278
+ lib/spontaneous/box_style.rb
279
+ lib/spontaneous/change.rb
280
+ lib/spontaneous/cli.rb
281
+ lib/spontaneous/cli/adapter.rb
282
+ lib/spontaneous/cli/base.rb
283
+ lib/spontaneous/cli/console.rb
284
+ lib/spontaneous/cli/media.rb
285
+ lib/spontaneous/cli/server.rb
286
+ lib/spontaneous/cli/site.rb
287
+ lib/spontaneous/cli/sync.rb
288
+ lib/spontaneous/cli/tasks.rb
289
+ lib/spontaneous/collections/box_set.rb
290
+ lib/spontaneous/collections/change_set.rb
291
+ lib/spontaneous/collections/entry_set.rb
292
+ lib/spontaneous/collections/field_set.rb
293
+ lib/spontaneous/collections/prototype_set.rb
294
+ lib/spontaneous/collections/style_set.rb
295
+ lib/spontaneous/config.rb
296
+ lib/spontaneous/constants.rb
297
+ lib/spontaneous/content.rb
298
+ lib/spontaneous/content_query.rb
299
+ lib/spontaneous/errors.rb
300
+ lib/spontaneous/extensions/array.rb
301
+ lib/spontaneous/extensions/class.rb
302
+ lib/spontaneous/extensions/hash.rb
303
+ lib/spontaneous/extensions/json.rb
304
+ lib/spontaneous/extensions/kernel.rb
305
+ lib/spontaneous/extensions/nil.rb
306
+ lib/spontaneous/extensions/object.rb
307
+ lib/spontaneous/extensions/object_space.rb
308
+ lib/spontaneous/extensions/string.rb
309
+ lib/spontaneous/facet.rb
310
+ lib/spontaneous/field_types.rb
311
+ lib/spontaneous/field_types/date_field.rb
312
+ lib/spontaneous/field_types/field.rb
313
+ lib/spontaneous/field_types/image_field.rb
314
+ lib/spontaneous/field_types/location_field.rb
315
+ lib/spontaneous/field_types/long_string_field.rb
316
+ lib/spontaneous/field_types/markdown_field.rb
317
+ lib/spontaneous/field_types/string_field.rb
318
+ lib/spontaneous/field_types/webvideo_field.rb
319
+ lib/spontaneous/generators.rb
320
+ lib/spontaneous/generators/page.rb
321
+ lib/spontaneous/generators/page/inline.html.cut
322
+ lib/spontaneous/generators/page/page.html.cut.tt
323
+ lib/spontaneous/generators/page/page.rb.tt
324
+ lib/spontaneous/generators/site.rb
325
+ lib/spontaneous/generators/site/.gitignore
326
+ lib/spontaneous/generators/site/Gemfile.tt
327
+ lib/spontaneous/generators/site/Rakefile.tt
328
+ lib/spontaneous/generators/site/config/back.ru
329
+ lib/spontaneous/generators/site/config/boot.rb
330
+ lib/spontaneous/generators/site/config/database.yml.tt
331
+ lib/spontaneous/generators/site/config/deploy.rb.tt
332
+ lib/spontaneous/generators/site/config/environment.rb.tt
333
+ lib/spontaneous/generators/site/config/environments/development.rb.tt
334
+ lib/spontaneous/generators/site/config/environments/production.rb.tt
335
+ lib/spontaneous/generators/site/config/front.ru
336
+ lib/spontaneous/generators/site/config/indexes.rb.tt
337
+ lib/spontaneous/generators/site/config/user_levels.yml
338
+ lib/spontaneous/generators/site/lib/site.rb.tt
339
+ lib/spontaneous/generators/site/lib/tasks/site.rake.tt
340
+ lib/spontaneous/generators/site/public/css/site.scss
341
+ lib/spontaneous/generators/site/public/favicon.ico
342
+ lib/spontaneous/generators/site/public/js/.empty_directory
343
+ lib/spontaneous/generators/site/public/js/site.js
344
+ lib/spontaneous/generators/site/public/robots.txt
345
+ lib/spontaneous/generators/site/schema/.map
346
+ lib/spontaneous/generators/site/schema/box.rb.tt
347
+ lib/spontaneous/generators/site/schema/page.rb.tt
348
+ lib/spontaneous/generators/site/schema/piece.rb.tt
349
+ lib/spontaneous/generators/site/templates/layouts/standard.html.cut.tt
350
+ lib/spontaneous/image_size.rb
351
+ lib/spontaneous/json.rb
352
+ lib/spontaneous/layout.rb
353
+ lib/spontaneous/loader.rb
354
+ lib/spontaneous/logger.rb
355
+ lib/spontaneous/media.rb
356
+ lib/spontaneous/media/file.rb
357
+ lib/spontaneous/page.rb
358
+ lib/spontaneous/page_controller.rb
359
+ lib/spontaneous/page_piece.rb
360
+ lib/spontaneous/paths.rb
361
+ lib/spontaneous/permissions.rb
362
+ lib/spontaneous/permissions/access_group.rb
363
+ lib/spontaneous/permissions/access_key.rb
364
+ lib/spontaneous/permissions/user.rb
365
+ lib/spontaneous/permissions/user_level.rb
366
+ lib/spontaneous/piece.rb
367
+ lib/spontaneous/plugins/aliases.rb
368
+ lib/spontaneous/plugins/allowed_types.rb
369
+ lib/spontaneous/plugins/application/facets.rb
370
+ lib/spontaneous/plugins/application/features.rb
371
+ lib/spontaneous/plugins/application/paths.rb
372
+ lib/spontaneous/plugins/application/render.rb
373
+ lib/spontaneous/plugins/application/serialisation.rb
374
+ lib/spontaneous/plugins/application/state.rb
375
+ lib/spontaneous/plugins/boxes.rb
376
+ lib/spontaneous/plugins/controllers.rb
377
+ lib/spontaneous/plugins/entries.rb
378
+ lib/spontaneous/plugins/entry.rb
379
+ lib/spontaneous/plugins/field/editor_class.rb
380
+ lib/spontaneous/plugins/fields.rb
381
+ lib/spontaneous/plugins/instance_code.rb
382
+ lib/spontaneous/plugins/layouts.rb
383
+ lib/spontaneous/plugins/media.rb
384
+ lib/spontaneous/plugins/page/formats.rb
385
+ lib/spontaneous/plugins/page/request.rb
386
+ lib/spontaneous/plugins/page_search.rb
387
+ lib/spontaneous/plugins/page_tree.rb
388
+ lib/spontaneous/plugins/paths.rb
389
+ lib/spontaneous/plugins/permissions.rb
390
+ lib/spontaneous/plugins/prototypes.rb
391
+ lib/spontaneous/plugins/publishing.rb
392
+ lib/spontaneous/plugins/render.rb
393
+ lib/spontaneous/plugins/schema_hierarchy.rb
394
+ lib/spontaneous/plugins/schema_id.rb
395
+ lib/spontaneous/plugins/schema_title.rb
396
+ lib/spontaneous/plugins/serialisation.rb
397
+ lib/spontaneous/plugins/site/features.rb
398
+ lib/spontaneous/plugins/site/instance.rb
399
+ lib/spontaneous/plugins/site/level.rb
400
+ lib/spontaneous/plugins/site/map.rb
401
+ lib/spontaneous/plugins/site/publishing.rb
402
+ lib/spontaneous/plugins/site/revisions.rb
403
+ lib/spontaneous/plugins/site/schema.rb
404
+ lib/spontaneous/plugins/site/search.rb
405
+ lib/spontaneous/plugins/site/selectors.rb
406
+ lib/spontaneous/plugins/site/storage.rb
407
+ lib/spontaneous/plugins/site_map.rb
408
+ lib/spontaneous/plugins/styles.rb
409
+ lib/spontaneous/plugins/supertype.rb
410
+ lib/spontaneous/plugins/visibility.rb
411
+ lib/spontaneous/prototypes/box_prototype.rb
412
+ lib/spontaneous/prototypes/field_prototype.rb
413
+ lib/spontaneous/prototypes/layout_prototype.rb
414
+ lib/spontaneous/prototypes/style_prototype.rb
415
+ lib/spontaneous/publishing.rb
416
+ lib/spontaneous/publishing/immediate.rb
417
+ lib/spontaneous/publishing/simultaneous.rb
418
+ lib/spontaneous/publishing/threaded.rb
419
+ lib/spontaneous/rack.rb
420
+ lib/spontaneous/rack/around_back.rb
421
+ lib/spontaneous/rack/around_front.rb
422
+ lib/spontaneous/rack/around_preview.rb
423
+ lib/spontaneous/rack/assets.rb
424
+ lib/spontaneous/rack/authentication.rb
425
+ lib/spontaneous/rack/back.rb
426
+ lib/spontaneous/rack/cacheable_file.rb
427
+ lib/spontaneous/rack/cookie_authentication.rb
428
+ lib/spontaneous/rack/css.rb
429
+ lib/spontaneous/rack/event_source.rb
430
+ lib/spontaneous/rack/front.rb
431
+ lib/spontaneous/rack/helpers.rb
432
+ lib/spontaneous/rack/http.rb
433
+ lib/spontaneous/rack/media.rb
434
+ lib/spontaneous/rack/public.rb
435
+ lib/spontaneous/rack/query_authentication.rb
436
+ lib/spontaneous/rack/reloader.rb
437
+ lib/spontaneous/rack/static.rb
438
+ lib/spontaneous/rack/user_helpers.rb
439
+ lib/spontaneous/render.rb
440
+ lib/spontaneous/render/context_base.rb
441
+ lib/spontaneous/render/development_renderer.rb
442
+ lib/spontaneous/render/engine.rb
443
+ lib/spontaneous/render/format.rb
444
+ lib/spontaneous/render/format/html.rb
445
+ lib/spontaneous/render/helpers.rb
446
+ lib/spontaneous/render/helpers/html_helper.rb
447
+ lib/spontaneous/render/helpers/script_helper.rb
448
+ lib/spontaneous/render/helpers/stylesheet_helper.rb
449
+ lib/spontaneous/render/preview_context.rb
450
+ lib/spontaneous/render/preview_renderer.rb
451
+ lib/spontaneous/render/publish_context.rb
452
+ lib/spontaneous/render/published_renderer.rb
453
+ lib/spontaneous/render/publishing_renderer.rb
454
+ lib/spontaneous/render/render_cache.rb
455
+ lib/spontaneous/render/renderer.rb
456
+ lib/spontaneous/render/request_context.rb
457
+ lib/spontaneous/revision.rb
458
+ lib/spontaneous/schema.rb
459
+ lib/spontaneous/schema/schema_modification.rb
460
+ lib/spontaneous/schema/uid.rb
461
+ lib/spontaneous/schema/uid_map.rb
462
+ lib/spontaneous/search.rb
463
+ lib/spontaneous/search/compound_indexer.rb
464
+ lib/spontaneous/search/database.rb
465
+ lib/spontaneous/search/field.rb
466
+ lib/spontaneous/search/index.rb
467
+ lib/spontaneous/search/results.rb
468
+ lib/spontaneous/server.rb
469
+ lib/spontaneous/site.rb
470
+ lib/spontaneous/state.rb
471
+ lib/spontaneous/storage.rb
472
+ lib/spontaneous/storage/backend.rb
473
+ lib/spontaneous/storage/cloud.rb
474
+ lib/spontaneous/storage/local.rb
475
+ lib/spontaneous/style.rb
476
+ lib/spontaneous/tasks.rb
477
+ lib/spontaneous/tasks/database.rake
478
+ lib/spontaneous/version.rb
479
+ spontaneous.gemspec
480
+ test/disabled/test_slots.rb
481
+ test/experimental/test_cutaneous.rb
482
+ test/experimental/test_features.rb
483
+ test/fixtures/application/css/test.less
484
+ test/fixtures/application/js/test.js
485
+ test/fixtures/application/static/favicon.ico
486
+ test/fixtures/application/static/test.html
487
+ test/fixtures/application/views/index.erb
488
+ test/fixtures/back/public/css/sass_include.scss
489
+ test/fixtures/back/public/css/sass_template.scss
490
+ test/fixtures/back/public/test.html
491
+ test/fixtures/back/templates/layouts/standard.html.cut
492
+ test/fixtures/config/config/environment.rb
493
+ test/fixtures/config/config/environments/development.rb
494
+ test/fixtures/config/config/environments/production.rb
495
+ test/fixtures/config/config/environments/staging.rb
496
+ test/fixtures/example_application/Gemfile
497
+ test/fixtures/example_application/Gemfile.lock
498
+ test/fixtures/example_application/Rakefile
499
+ test/fixtures/example_application/config/back.rb
500
+ test/fixtures/example_application/config/back.ru
501
+ test/fixtures/example_application/config/back.yml
502
+ test/fixtures/example_application/config/boot.rb
503
+ test/fixtures/example_application/config/database.yml
504
+ test/fixtures/example_application/config/environment.rb
505
+ test/fixtures/example_application/config/environments/development.rb
506
+ test/fixtures/example_application/config/environments/production.rb
507
+ test/fixtures/example_application/config/environments/staging.rb
508
+ test/fixtures/example_application/config/front.rb
509
+ test/fixtures/example_application/config/front.ru
510
+ test/fixtures/example_application/config/front.yml
511
+ test/fixtures/example_application/config/schema.yml
512
+ test/fixtures/example_application/config/unicorn.rb
513
+ test/fixtures/example_application/config/user_levels.yml
514
+ test/fixtures/example_application/public/css/test.css
515
+ test/fixtures/example_application/public/favicon.ico
516
+ test/fixtures/example_application/public/js/test.js
517
+ test/fixtures/example_application/public/test.html
518
+ test/fixtures/example_application/schema/client_project.rb
519
+ test/fixtures/example_application/schema/client_projects.rb
520
+ test/fixtures/example_application/schema/home_page.rb
521
+ test/fixtures/example_application/schema/info_page.rb
522
+ test/fixtures/example_application/schema/inline_image.rb
523
+ test/fixtures/example_application/schema/page.rb
524
+ test/fixtures/example_application/schema/piece.rb
525
+ test/fixtures/example_application/schema/project.rb
526
+ test/fixtures/example_application/schema/project_image.rb
527
+ test/fixtures/example_application/schema/projects_page.rb
528
+ test/fixtures/example_application/schema/text.rb
529
+ test/fixtures/example_application/templates/client_project.html.cut
530
+ test/fixtures/example_application/templates/client_project/images.html.cut
531
+ test/fixtures/example_application/templates/client_projects.html.cut
532
+ test/fixtures/example_application/templates/info_page/inline.html.cut
533
+ test/fixtures/example_application/templates/inline_image.html.cut
534
+ test/fixtures/example_application/templates/layouts/home.html.cut
535
+ test/fixtures/example_application/templates/layouts/info.html.cut
536
+ test/fixtures/example_application/templates/layouts/project.html.cut
537
+ test/fixtures/example_application/templates/layouts/projects.html.cut
538
+ test/fixtures/example_application/templates/layouts/standard.html.cut
539
+ test/fixtures/example_application/templates/project.html.cut
540
+ test/fixtures/example_application/templates/project/inline.html.cut
541
+ test/fixtures/example_application/templates/project_image.html.cut
542
+ test/fixtures/example_application/templates/text.html.cut
543
+ test/fixtures/fields/youtube_api_response.xml
544
+ test/fixtures/images/rose.greyscale.jpg
545
+ test/fixtures/images/rose.jpg
546
+ test/fixtures/images/size.gif
547
+ test/fixtures/images/size.jpg
548
+ test/fixtures/images/size.png24
549
+ test/fixtures/images/size.png8
550
+ test/fixtures/layouts/layouts/custom1.html.cut
551
+ test/fixtures/layouts/layouts/custom1.pdf.cut
552
+ test/fixtures/layouts/layouts/custom1.xml.cut
553
+ test/fixtures/layouts/layouts/custom2.html.cut
554
+ test/fixtures/layouts/layouts/custom3.html.cut
555
+ test/fixtures/layouts/layouts/custom4.html.cut
556
+ test/fixtures/layouts/layouts/standard.html.cut
557
+ test/fixtures/media/101/003/rose.jpg
558
+ test/fixtures/permissions/config/user_levels.yml
559
+ test/fixtures/permissions/media/image.jpg
560
+ test/fixtures/plugins/schema_plugin/init.rb
561
+ test/fixtures/plugins/schema_plugin/public/css/plugin.css
562
+ test/fixtures/plugins/schema_plugin/public/js/plugin.js
563
+ test/fixtures/plugins/schema_plugin/public/static.html
564
+ test/fixtures/plugins/schema_plugin/public/subdir/image.gif
565
+ test/fixtures/plugins/schema_plugin/public/subdir/include1.scss
566
+ test/fixtures/plugins/schema_plugin/public/subdir/sass.scss
567
+ test/fixtures/plugins/schema_plugin/public/subdir/sass/include2.scss
568
+ test/fixtures/plugins/schema_plugin/schema/external.rb
569
+ test/fixtures/plugins/schema_plugin/templates/external.html.cut
570
+ test/fixtures/plugins/schema_plugin/templates/from_plugin.html.cut
571
+ test/fixtures/plugins/schema_plugin/templates/layouts/from_plugin.html.cut
572
+ test/fixtures/public/templates/layouts/default.html.cut
573
+ test/fixtures/public/templates/layouts/default.pdf.cut
574
+ test/fixtures/public/templates/layouts/default.rss.cut
575
+ test/fixtures/public/templates/layouts/dynamic.html.cut
576
+ test/fixtures/public/templates/layouts/standard.html.cut
577
+ test/fixtures/schema/before.yml
578
+ test/fixtures/schema/resolvable.yml
579
+ test/fixtures/schema/schema.yml
580
+ test/fixtures/schema_modification/config/database.yml
581
+ test/fixtures/schema_modification/config/environment.rb
582
+ test/fixtures/schema_modification/schema/box.rb
583
+ test/fixtures/schema_modification/schema/custom_box.rb
584
+ test/fixtures/schema_modification/schema/page.rb
585
+ test/fixtures/schema_modification/schema/piece.rb
586
+ test/fixtures/search/config/database.yml
587
+ test/fixtures/search/config/indexes.rb
588
+ test/fixtures/serialisation/class_hash.yaml.erb
589
+ test/fixtures/serialisation/root_hash.yaml.erb
590
+ test/fixtures/sharding/rose.jpg
591
+ test/fixtures/sharding/xaa
592
+ test/fixtures/sharding/xab
593
+ test/fixtures/sharding/xac
594
+ test/fixtures/sharding/xad
595
+ test/fixtures/sharding/xae
596
+ test/fixtures/sharding/xaf
597
+ test/fixtures/sharding/xag
598
+ test/fixtures/storage/cloud/environment.rb
599
+ test/fixtures/storage/default/environment.rb
600
+ test/fixtures/styles/box_a.html.cut
601
+ test/fixtures/styles/box_a/runny.html.cut
602
+ test/fixtures/styles/named2.html.cut
603
+ test/fixtures/styles/orange/apple.html.cut
604
+ test/fixtures/styles/template_class.epub.cut
605
+ test/fixtures/styles/template_class.html.cut
606
+ test/fixtures/styles/template_class.pdf.cut
607
+ test/fixtures/styles/template_class/named1.html.cut
608
+ test/fixtures/styles/template_class/results.html.cut
609
+ test/fixtures/styles/template_class/walky.html.cut
610
+ test/fixtures/styles/template_sub_class1.html.cut
611
+ test/fixtures/templates/aliases/a/a_style.html.cut
612
+ test/fixtures/templates/aliases/a/page.html.cut
613
+ test/fixtures/templates/aliases/a_alias/a_alias_style.html.cut
614
+ test/fixtures/templates/aliases/layouts/b.html.cut
615
+ test/fixtures/templates/aliases/layouts/b_alias.html.cut
616
+ test/fixtures/templates/aliases/layouts/c_alias.html.cut
617
+ test/fixtures/templates/boxes/blank_content/things.html.cut
618
+ test/fixtures/templates/boxes/my_box_class/christy.html.cut
619
+ test/fixtures/templates/boxes/thangs.html.cut
620
+ test/fixtures/templates/boxes/with_template_box.html.cut
621
+ test/fixtures/templates/content/include.html.cut
622
+ test/fixtures/templates/content/include_dir.html.cut
623
+ test/fixtures/templates/content/included.epub.cut
624
+ test/fixtures/templates/content/included.html.cut
625
+ test/fixtures/templates/content/partial/included.html.cut
626
+ test/fixtures/templates/content/preprocess.html.cut
627
+ test/fixtures/templates/content/second.html.cut
628
+ test/fixtures/templates/content/template.epub.cut
629
+ test/fixtures/templates/content/template.html.cut
630
+ test/fixtures/templates/default_style_class.html.cut
631
+ test/fixtures/templates/direct.html.cut
632
+ test/fixtures/templates/engine/braces.html.cut
633
+ test/fixtures/templates/engine/multiline.html.cut
634
+ test/fixtures/templates/extended/grandparent.html.cut
635
+ test/fixtures/templates/extended/main.html.cut
636
+ test/fixtures/templates/extended/parent.html.cut
637
+ test/fixtures/templates/extended/partial.html.cut
638
+ test/fixtures/templates/extended/partial_with_locals.html.cut
639
+ test/fixtures/templates/extended/with_includes.html.cut
640
+ test/fixtures/templates/extended/with_includes_and_locals.html.cut
641
+ test/fixtures/templates/layouts/entries.html.cut
642
+ test/fixtures/templates/layouts/page_style.html.cut
643
+ test/fixtures/templates/layouts/params.html.cut
644
+ test/fixtures/templates/layouts/preview_render.html.cut
645
+ test/fixtures/templates/layouts/standard_page.html.cut
646
+ test/fixtures/templates/layouts/subdir_style.html.cut
647
+ test/fixtures/templates/layouts/template_params.html.cut
648
+ test/fixtures/templates/layouts/variables.html.cut
649
+ test/fixtures/templates/page_class/inline_style.html.cut
650
+ test/fixtures/templates/preview_render/inline.html.cut
651
+ test/fixtures/templates/preview_render/variables.html.cut
652
+ test/fixtures/templates/publishing/templates/layouts/dynamic.html.cut
653
+ test/fixtures/templates/publishing/templates/layouts/dynamic.rtf.cut
654
+ test/fixtures/templates/publishing/templates/layouts/static.html.cut
655
+ test/fixtures/templates/template_class/anonymous_style.html.cut
656
+ test/fixtures/templates/template_class/another_template.html.cut
657
+ test/fixtures/templates/template_class/complex_template.html.cut
658
+ test/fixtures/templates/template_class/complex_template.pdf.cut
659
+ test/fixtures/templates/template_class/default_template_style.html.cut
660
+ test/fixtures/templates/template_class/images_with_template.html.cut
661
+ test/fixtures/templates/template_class/slots_template.html.cut
662
+ test/fixtures/templates/template_class/slots_template.pdf.cut
663
+ test/fixtures/templates/template_class/this_template.epub.cut
664
+ test/fixtures/templates/template_class/this_template.html.cut
665
+ test/fixtures/templates/template_class/this_template.pdf.cut
666
+ test/fixtures/templates/with_default_style_class.html.cut
667
+ test/functional/test_application.rb
668
+ test/functional/test_back.rb
669
+ test/functional/test_front.rb
670
+ test/javascript/test_dom.rb
671
+ test/javascript/test_markdown.rb
672
+ test/slow/test_publishing.rb
673
+ test/slow/test_visibility.rb
674
+ test/support/custom_matchers.rb
675
+ test/support/timing.rb
676
+ test/test_helper.rb
677
+ test/test_javascript.rb
678
+ test/ui/test_page_editing.rb
679
+ test/ui_helper.rb
680
+ test/unit/test_alias.rb
681
+ test/unit/test_authentication.rb
682
+ test/unit/test_boxes.rb
683
+ test/unit/test_config.rb
684
+ test/unit/test_content.rb
685
+ test/unit/test_content_inheritance.rb
686
+ test/unit/test_extensions.rb
687
+ test/unit/test_fields.rb
688
+ test/unit/test_formats.rb
689
+ test/unit/test_generators.rb
690
+ test/unit/test_helpers.rb
691
+ test/unit/test_image_size.rb
692
+ test/unit/test_images.rb
693
+ test/unit/test_layouts.rb
694
+ test/unit/test_logger.rb
695
+ test/unit/test_media.rb
696
+ test/unit/test_page.rb
697
+ test/unit/test_permissions.rb
698
+ test/unit/test_piece.rb
699
+ test/unit/test_plugins.rb
700
+ test/unit/test_prototype_set.rb
701
+ test/unit/test_prototypes.rb
702
+ test/unit/test_render.rb
703
+ test/unit/test_schema.rb
704
+ test/unit/test_search.rb
705
+ test/unit/test_serialisation.rb
706
+ test/unit/test_site.rb
707
+ test/unit/test_storage.rb
708
+ test/unit/test_structure.rb
709
+ test/unit/test_styles.rb
710
+ test/unit/test_table_scoping.rb
711
+ test/unit/test_templates.rb
712
+ test/unit/test_type_hierarchy.rb
713
+ ]
714
+ # = MANIFEST =
715
+
716
+ ## Test files will be grabbed from the file list. Make sure the path glob
717
+ ## matches what you actually use.
718
+ s.test_files = s.files.select { |path| path =~ /^test\/test_.*\.rb/ }
719
+ end