spontaneous 0.1.0.alpha1 → 0.2.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
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