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,76 @@
1
+ # encoding: UTF-8
2
+
3
+ require File.expand_path('../../test_helper', __FILE__)
4
+
5
+ class TableScopingTest < MiniTest::Spec
6
+
7
+ def setup
8
+ setup_site
9
+ end
10
+
11
+ def teardown
12
+ teardown_site
13
+ end
14
+
15
+ context "Tablename scoping" do
16
+ should "correctly change the table name within a scope" do
17
+ Content.dataset.sql.should == "SELECT * FROM `content`"
18
+ Content.with_table("new_content_table") do
19
+ Content.dataset.sql.should == "SELECT * FROM `new_content_table`"
20
+ end
21
+ Content.dataset.sql.should == "SELECT * FROM `content`"
22
+ end
23
+
24
+ should "allow the nesting of scopes" do
25
+ Content.dataset.sql.should == "SELECT * FROM `content`"
26
+ Content.with_table("content_1") do
27
+ Content.with_table("content_2") do
28
+ Content.dataset.sql.should == "SELECT * FROM `content_2`"
29
+ end
30
+ Content.dataset.sql.should == "SELECT * FROM `content_1`"
31
+ end
32
+ Content.dataset.sql.should == "SELECT * FROM `content`"
33
+ end
34
+
35
+ should "preserve single table inheritance" do
36
+ Content.delete
37
+ class NewContentClass < Piece; end
38
+
39
+ id = NewContentClass.create.id
40
+ Content.with_table("content") do
41
+ NewContentClass[id].must_be_instance_of(NewContentClass)
42
+ Content.with_table("content_2") do
43
+ # nothing
44
+ end
45
+ end
46
+ NewContentClass[id].must_be_instance_of(NewContentClass)
47
+ TableScopingTest.send(:remove_const, :NewContentClass)
48
+ Content.delete
49
+ end
50
+
51
+ should "restore original state if an exception is raised" do
52
+ Content.dataset.sql.should == "SELECT * FROM `content`"
53
+ begin
54
+ Content.with_table("new_content_table") do
55
+ Content.dataset.sql.should == "SELECT * FROM `new_content_table`"
56
+ raise "havoc"
57
+ end
58
+ rescue; end
59
+ Content.dataset.sql.should == "SELECT * FROM `content`"
60
+ end
61
+
62
+ should "Be able to handle scoping multiple models at once" do
63
+ Spontaneous::Change.plugin :scoped_table_name
64
+ Content.dataset.sql.should == "SELECT * FROM `content`"
65
+ Content.with_table("content_1") do
66
+ Change.with_table("change_1") do
67
+ Content.dataset.sql.should == "SELECT * FROM `content_1`"
68
+ Change.dataset.sql.should == "SELECT * FROM `change_1`"
69
+ end
70
+ end
71
+
72
+ Content.dataset.sql.should == "SELECT * FROM `content`"
73
+ Change.dataset.sql.should == "SELECT * FROM `changes`"
74
+ end
75
+ end
76
+ end
@@ -1,15 +1,16 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require 'test_helper'
3
+ require File.expand_path('../../test_helper', __FILE__)
4
4
 
5
+ require 'cgi'
5
6
 
6
7
  class TemplatesTest < MiniTest::Spec
7
8
  def first_pass(base_dir, filename, context=nil)
8
- render_with_renderer(Cutaneous::FirstPassRenderer, base_dir, filename, context)
9
+ render_with_renderer(Cutaneous::PublishRenderer, base_dir, filename, context)
9
10
  end
10
11
 
11
12
  def second_pass(base_dir, filename, context=nil)
12
- render_with_renderer(Cutaneous::SecondPassRenderer, base_dir, filename, context)
13
+ render_with_renderer(Cutaneous::RequestRenderer, base_dir, filename, context)
13
14
  end
14
15
 
15
16
  def render_with_renderer(renderer_class, base_dir, filename, context = nil)
@@ -28,9 +29,10 @@ class TemplatesTest < MiniTest::Spec
28
29
  def setup
29
30
  @klass = Class.new(Object) do
30
31
  include Cutaneous::ContextHelper
32
+ include Spontaneous::Render::PreviewContext
31
33
 
32
34
  def escape(val)
33
- CGI.escapeHTML(val)
35
+ ::CGI.escapeHTML(val)
34
36
  end
35
37
  def title
36
38
  "THE TITLE"
@@ -43,38 +45,42 @@ class TemplatesTest < MiniTest::Spec
43
45
  def bell
44
46
  'ding'
45
47
  end
48
+
49
+ def show_errors?
50
+ true
51
+ end
46
52
  end
47
53
  @context = @klass.new(nil, :html)
48
54
  end
49
55
 
50
56
  context "First render" do
51
57
  setup do
52
- @template = Cutaneous::FirstPassParser.new
58
+ @template = Cutaneous::PublishTemplate.new
53
59
  end
54
60
 
55
61
  should "ignore second level statements" do
56
- input = '<html><title>#{title}</title>#{unsafe}</html>'
62
+ input = '<html><title>{{title}}</title>{{unsafe}}</html>'
57
63
  @template.convert(input)
58
64
  output = @template.render(@context)
59
- output.should == '<html><title>#{title}</title>#{unsafe}</html>'
65
+ output.should == '<html><title>{{title}}</title>{{unsafe}}</html>'
60
66
  end
61
67
 
62
68
  should "evaluate first level expressions" do
63
- @template.convert('<html><title>{{title}}</title>#{unsafe}</html>')
69
+ @template.convert('<html><title>${title}</title>{{unsafe}}</html>')
64
70
  output = @template.render(@context)
65
- output.should == '<html><title>THE TITLE</title>#{unsafe}</html>'
71
+ output.should == '<html><title>THE TITLE</title>{{unsafe}}</html>'
66
72
  end
67
73
 
68
74
  should "evaluate first level statements" do
69
- @template.convert("<html><title>{{title}}</title>{% 2.times do %}\#{unsafe}{% end %}</html>")
75
+ @template.convert('<html><title>${title}</title>%{ 2.times do }{{unsafe}}%{ end }</html>')
70
76
  output = @template.render(@context)
71
- output.should == '<html><title>THE TITLE</title>#{unsafe}#{unsafe}</html>'
77
+ output.should == '<html><title>THE TITLE</title>{{unsafe}}{{unsafe}}</html>'
72
78
  end
73
79
 
74
80
  should "generate 2nd render templates" do
75
- @template.convert("<html><title>{{title}}</title>{% 2.times do %}\#{bell}\n{% end %}</html>")
81
+ @template.convert("<html><title>${title}</title>%{ 2.times do }{{bell}}\n%{ end }</html>")
76
82
  output = @template.render(@context)
77
- second = Cutaneous::SecondPassParser.new
83
+ second = Cutaneous::RequestTemplate.new
78
84
  second.convert(output)
79
85
  output = second.render(@context)
80
86
  output.should == "<html><title>THE TITLE</title>ding\nding\n</html>"
@@ -83,23 +89,23 @@ class TemplatesTest < MiniTest::Spec
83
89
 
84
90
  context "Second render" do
85
91
  setup do
86
- @template = Cutaneous::SecondPassParser.new
92
+ @template = Cutaneous::RequestTemplate.new
87
93
  end
88
94
 
89
95
  should "a render unescaped expressions" do
90
- @template.convert('<html><title>#{title}</title>#{unsafe}</html>')
96
+ @template.convert('<html><title>{{title}}</title>{{unsafe}}</html>')
91
97
  output = @template.render(@context)
92
98
  output.should == "<html><title>THE TITLE</title><script>alert('bad')</script></html>"
93
99
  end
94
100
 
95
101
  should "render escaped expressions" do
96
- @template.convert('<html><title>${unsafe}</title></html>')
102
+ @template.convert('<html><title>{$ unsafe $}</title></html>')
97
103
  output = @template.render(@context)
98
104
  output.should == "<html><title>&lt;script&gt;alert('bad')&lt;/script&gt;</title></html>"
99
105
  end
100
106
 
101
107
  should "evaluate expressions" do
102
- @template.convert('<html>%{ 2.times do }<title>#{title}</title>%{ end }</html>')
108
+ @template.convert('<html>{% 2.times do %}<title>{{title}}</title>{% end %}</html>')
103
109
  output = @template.render(@context)
104
110
  output.should == "<html><title>THE TITLE</title><title>THE TITLE</title></html>"
105
111
  end
@@ -122,24 +128,24 @@ class TemplatesTest < MiniTest::Spec
122
128
 
123
129
  should "preprocess" do
124
130
  output = first_pass('content', 'preprocess')
125
- output.should == "<html><title>THE TITLE</title>\#{bell}</html>\n"
131
+ output.should == "<html><title>THE TITLE</title>{{bell}}</html>\n"
126
132
  end
127
133
 
128
134
  should "include imports" do
129
135
  output = first_pass('content', 'include')
130
- output.should == "<html>\#{bell}ding\n</html>\n"
136
+ output.should == "<html>{{bell}}ding\n</html>\n"
131
137
  end
132
138
 
133
139
  should "include imports in sub-directories" do
134
140
  output = first_pass('content', 'include_dir')
135
- output.should == "<html>\#{bell}ding\n</html>\n"
141
+ output.should == "<html>{{ bell }}ding\n</html>\n"
136
142
  end
137
143
 
138
144
  should "preserve the format across includes" do
139
145
  context = @klass.new(nil, :epub)
140
146
  context.format.should == :epub
141
147
  output = first_pass('content', 'template', context)
142
- output.should == "<epub><epub>\#{bell}ding</epub>\n</epub>\n"
148
+ output.should == "<epub><epub>{{ bell }}ding</epub>\n</epub>\n"
143
149
  end
144
150
 
145
151
  should "render a second pass" do
@@ -156,7 +162,38 @@ class TemplatesTest < MiniTest::Spec
156
162
 
157
163
  should "work" do
158
164
  output = first_pass('extended', 'main')
159
- output.should == "Main Title \#{page.title}\nGrandparent Nav\nMain Body\nParent Body\nGrandparent Body\nGrandparent Footer\nParent Footer\n"
165
+ output.should == "Main Title {{page.title}}Grandparent Nav\nMain Body\nParent Body\nGrandparent Body\nGrandparent Footer\nParent Footer\n"
166
+ end
167
+
168
+ should "allow the use of includes" do
169
+ output = first_pass('extended', 'with_includes')
170
+ output.should == (<<-RENDER)
171
+ Parent Title
172
+ INCLUDE
173
+ PARTIAL
174
+ Grandparent Footer
175
+ Parent Footer
176
+ RENDER
177
+ end
178
+
179
+ should "allow passing of local variables to included templates" do
180
+ output = first_pass('extended', 'with_includes_and_locals')
181
+ output.should == (<<-RENDER)
182
+ Parent Title
183
+ INCLUDE
184
+ local title
185
+ Grandparent Footer
186
+ Parent Footer
187
+ RENDER
188
+ end
189
+ should "handle multiline statements" do
190
+ output = first_pass('engine', 'multiline')
191
+ output.should == "12\n"
192
+ end
193
+
194
+ should "correctly handle braces within statements" do
195
+ output = first_pass('engine', 'braces')
196
+ output.should == "ab\n"
160
197
  end
161
198
  end
162
199
 
@@ -165,6 +202,7 @@ class TemplatesTest < MiniTest::Spec
165
202
 
166
203
  @context_class = Class.new(Object) do
167
204
  include Cutaneous::ContextHelper
205
+ include Spontaneous::Render::PreviewContext
168
206
 
169
207
  def escape(val)
170
208
  CGI.escapeHTML(val)
@@ -176,47 +214,47 @@ class TemplatesTest < MiniTest::Spec
176
214
 
177
215
  def field
178
216
  @klass ||= Class.new(Object) do
179
- attr_accessor :format
217
+ attr_accessor :_format
180
218
  def to_html
181
- "(#{format})"
219
+ "(#{_format})"
182
220
  end
183
221
 
184
222
  def to_s
185
- "'#{format}'"
223
+ "'#{_format}'"
186
224
  end
187
225
  end
188
- @klass.new.tap { |i| i.format = format }
226
+ @klass.new.tap { |i| i._format = _format }
189
227
  end
190
228
 
191
229
  def slot
192
230
  @klass ||= Class.new(Object) do
193
- def render(format)
231
+ def render(format, *args)
194
232
  "(#{format})"
195
233
  end
196
234
  end
197
235
  @klass.new
198
236
  end
199
237
  end
200
- @template = Cutaneous::FirstPassParser.new
238
+ @template = Cutaneous::PublishTemplate.new
201
239
  end
202
240
 
203
241
  should "call #render(format) if context responds to it" do
204
242
  context = @context_class.new(nil, :html)
205
- @template.convert('{{slot}} {{ monkey }}')
243
+ @template.convert('${slot} ${ monkey }')
206
244
  output = @template.render(context)
207
245
  output.should == "(html) magic"
208
246
  end
209
247
 
210
248
  should "call to_format on non-strings" do
211
249
  context = @context_class.new(nil, :html)
212
- @template.convert('{{field}} {{ monkey }}')
250
+ @template.convert('${field} ${ monkey }')
213
251
  output = @template.render(context)
214
252
  output.should == "(html) magic"
215
253
  end
216
254
 
217
255
  should "call to_s on non-strings that have no specific handler" do
218
256
  context = @context_class.new(nil, :weird)
219
- @template.convert('{{field}} {{ monkey }}')
257
+ @template.convert('${field} ${ monkey }')
220
258
  output = @template.render(context)
221
259
  output.should == "'weird' magic"
222
260
  end
@@ -1,11 +1,19 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require 'test_helper'
3
+ require File.expand_path('../../test_helper', __FILE__)
4
4
 
5
5
 
6
6
  class TypeHierarchyTest < MiniTest::Spec
7
7
 
8
8
 
9
+ def setup
10
+ @site = setup_site
11
+ end
12
+
13
+ def teardown
14
+ teardown_site
15
+ end
16
+
9
17
  context "Content" do
10
18
  should "have an empty supertype" do
11
19
  S::Content.supertype.should be_nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spontaneous
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.alpha1
4
+ version: 0.2.0.alpha1
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,34 +9,55 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-18 00:00:00.000000000 +01:00
13
- default_executable:
12
+ date: 2012-02-16 00:00:00.000000000Z
14
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: &70330056810260 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>'
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.15
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70330056810260
15
25
  - !ruby/object:Gem::Dependency
16
26
  name: rake
17
- requirement: &70168047658660 !ruby/object:Gem::Requirement
27
+ requirement: &70330056809560 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.2
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70330056809560
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdoc
38
+ requirement: &70330056809000 !ruby/object:Gem::Requirement
18
39
  none: false
19
40
  requirements:
20
41
  - - ~>
21
42
  - !ruby/object:Gem::Version
22
- version: 0.8.7
43
+ version: 3.9.4
23
44
  type: :runtime
24
45
  prerelease: false
25
- version_requirements: *70168047658660
46
+ version_requirements: *70330056809000
26
47
  - !ruby/object:Gem::Dependency
27
48
  name: activesupport
28
- requirement: &70168047657480 !ruby/object:Gem::Requirement
49
+ requirement: &70330056797600 !ruby/object:Gem::Requirement
29
50
  none: false
30
51
  requirements:
31
52
  - - ~>
32
53
  - !ruby/object:Gem::Version
33
- version: 3.0.4
54
+ version: 3.2.0.rc1
34
55
  type: :runtime
35
56
  prerelease: false
36
- version_requirements: *70168047657480
57
+ version_requirements: *70330056797600
37
58
  - !ruby/object:Gem::Dependency
38
59
  name: home_run
39
- requirement: &70168047656560 !ruby/object:Gem::Requirement
60
+ requirement: &70330056793740 !ruby/object:Gem::Requirement
40
61
  none: false
41
62
  requirements:
42
63
  - - ~>
@@ -44,32 +65,32 @@ dependencies:
44
65
  version: 1.0.0
45
66
  type: :runtime
46
67
  prerelease: false
47
- version_requirements: *70168047656560
68
+ version_requirements: *70330056793740
48
69
  - !ruby/object:Gem::Dependency
49
70
  name: sequel
50
- requirement: &70168047655400 !ruby/object:Gem::Requirement
71
+ requirement: &70330056793100 !ruby/object:Gem::Requirement
51
72
  none: false
52
73
  requirements:
53
74
  - - ~>
54
75
  - !ruby/object:Gem::Version
55
- version: '3.20'
76
+ version: '3.31'
56
77
  type: :runtime
57
78
  prerelease: false
58
- version_requirements: *70168047655400
79
+ version_requirements: *70330056793100
59
80
  - !ruby/object:Gem::Dependency
60
81
  name: yajl-ruby
61
- requirement: &70168047653720 !ruby/object:Gem::Requirement
82
+ requirement: &70330056792620 !ruby/object:Gem::Requirement
62
83
  none: false
63
84
  requirements:
64
85
  - - ~>
65
86
  - !ruby/object:Gem::Version
66
- version: '0.7'
87
+ version: '1.1'
67
88
  type: :runtime
68
89
  prerelease: false
69
- version_requirements: *70168047653720
90
+ version_requirements: *70330056792620
70
91
  - !ruby/object:Gem::Dependency
71
92
  name: erubis
72
- requirement: &70168047652480 !ruby/object:Gem::Requirement
93
+ requirement: &70330056792020 !ruby/object:Gem::Requirement
73
94
  none: false
74
95
  requirements:
75
96
  - - ~>
@@ -77,43 +98,43 @@ dependencies:
77
98
  version: '2.6'
78
99
  type: :runtime
79
100
  prerelease: false
80
- version_requirements: *70168047652480
101
+ version_requirements: *70330056792020
81
102
  - !ruby/object:Gem::Dependency
82
- name: tenjin
83
- requirement: &70168047651180 !ruby/object:Gem::Requirement
103
+ name: fog
104
+ requirement: &70330056791540 !ruby/object:Gem::Requirement
84
105
  none: false
85
106
  requirements:
86
107
  - - ~>
87
108
  - !ruby/object:Gem::Version
88
- version: 0.6.1
109
+ version: 1.1.1
89
110
  type: :runtime
90
111
  prerelease: false
91
- version_requirements: *70168047651180
112
+ version_requirements: *70330056791540
92
113
  - !ruby/object:Gem::Dependency
93
114
  name: sinatra
94
- requirement: &70168047649980 !ruby/object:Gem::Requirement
115
+ requirement: &70330056791060 !ruby/object:Gem::Requirement
95
116
  none: false
96
117
  requirements:
97
118
  - - ~>
98
119
  - !ruby/object:Gem::Version
99
- version: 1.1.2
120
+ version: 1.3.0
100
121
  type: :runtime
101
122
  prerelease: false
102
- version_requirements: *70168047649980
123
+ version_requirements: *70330056791060
103
124
  - !ruby/object:Gem::Dependency
104
125
  name: rack
105
- requirement: &70168047648120 !ruby/object:Gem::Requirement
126
+ requirement: &70330056790560 !ruby/object:Gem::Requirement
106
127
  none: false
107
128
  requirements:
108
129
  - - ~>
109
130
  - !ruby/object:Gem::Version
110
- version: 1.3.beta
131
+ version: 1.3.4
111
132
  type: :runtime
112
133
  prerelease: false
113
- version_requirements: *70168047648120
134
+ version_requirements: *70330056790560
114
135
  - !ruby/object:Gem::Dependency
115
136
  name: thin
116
- requirement: &70168047646220 !ruby/object:Gem::Requirement
137
+ requirement: &70330056790000 !ruby/object:Gem::Requirement
117
138
  none: false
118
139
  requirements:
119
140
  - - ~>
@@ -121,10 +142,10 @@ dependencies:
121
142
  version: '1.2'
122
143
  type: :runtime
123
144
  prerelease: false
124
- version_requirements: *70168047646220
145
+ version_requirements: *70330056790000
125
146
  - !ruby/object:Gem::Dependency
126
147
  name: less
127
- requirement: &70168047644540 !ruby/object:Gem::Requirement
148
+ requirement: &70330056789460 !ruby/object:Gem::Requirement
128
149
  none: false
129
150
  requirements:
130
151
  - - ~>
@@ -132,10 +153,10 @@ dependencies:
132
153
  version: '1.2'
133
154
  type: :runtime
134
155
  prerelease: false
135
- version_requirements: *70168047644540
156
+ version_requirements: *70330056789460
136
157
  - !ruby/object:Gem::Dependency
137
158
  name: sass
138
- requirement: &70168047643620 !ruby/object:Gem::Requirement
159
+ requirement: &70330056788820 !ruby/object:Gem::Requirement
139
160
  none: false
140
161
  requirements:
141
162
  - - ~>
@@ -143,10 +164,10 @@ dependencies:
143
164
  version: 3.1.4
144
165
  type: :runtime
145
166
  prerelease: false
146
- version_requirements: *70168047643620
167
+ version_requirements: *70330056788820
147
168
  - !ruby/object:Gem::Dependency
148
169
  name: stringex
149
- requirement: &70168047642200 !ruby/object:Gem::Requirement
170
+ requirement: &70330056787920 !ruby/object:Gem::Requirement
150
171
  none: false
151
172
  requirements:
152
173
  - - ~>
@@ -154,10 +175,10 @@ dependencies:
154
175
  version: '1.1'
155
176
  type: :runtime
156
177
  prerelease: false
157
- version_requirements: *70168047642200
178
+ version_requirements: *70330056787920
158
179
  - !ruby/object:Gem::Dependency
159
180
  name: mini_magick
160
- requirement: &70168047640760 !ruby/object:Gem::Requirement
181
+ requirement: &70330056786640 !ruby/object:Gem::Requirement
161
182
  none: false
162
183
  requirements:
163
184
  - - ~>
@@ -165,21 +186,10 @@ dependencies:
165
186
  version: '3.3'
166
187
  type: :runtime
167
188
  prerelease: false
168
- version_requirements: *70168047640760
169
- - !ruby/object:Gem::Dependency
170
- name: fire_and_forget
171
- requirement: &70168047639440 !ruby/object:Gem::Requirement
172
- none: false
173
- requirements:
174
- - - ~>
175
- - !ruby/object:Gem::Version
176
- version: 0.3.2
177
- type: :runtime
178
- prerelease: false
179
- version_requirements: *70168047639440
189
+ version_requirements: *70330056786640
180
190
  - !ruby/object:Gem::Dependency
181
191
  name: thor
182
- requirement: &70168047638480 !ruby/object:Gem::Requirement
192
+ requirement: &70330056785880 !ruby/object:Gem::Requirement
183
193
  none: false
184
194
  requirements:
185
195
  - - ~>
@@ -187,21 +197,10 @@ dependencies:
187
197
  version: 0.14.6
188
198
  type: :runtime
189
199
  prerelease: false
190
- version_requirements: *70168047638480
191
- - !ruby/object:Gem::Dependency
192
- name: hwia
193
- requirement: &70168047637160 !ruby/object:Gem::Requirement
194
- none: false
195
- requirements:
196
- - - ~>
197
- - !ruby/object:Gem::Version
198
- version: 1.0.2
199
- type: :runtime
200
- prerelease: false
201
- version_requirements: *70168047637160
200
+ version_requirements: *70330056785880
202
201
  - !ruby/object:Gem::Dependency
203
202
  name: base58
204
- requirement: &70168047636040 !ruby/object:Gem::Requirement
203
+ requirement: &70330056785080 !ruby/object:Gem::Requirement
205
204
  none: false
206
205
  requirements:
207
206
  - - ~>
@@ -209,10 +208,10 @@ dependencies:
209
208
  version: 0.1.0
210
209
  type: :runtime
211
210
  prerelease: false
212
- version_requirements: *70168047636040
211
+ version_requirements: *70330056785080
213
212
  - !ruby/object:Gem::Dependency
214
213
  name: kramdown
215
- requirement: &70168047634760 !ruby/object:Gem::Requirement
214
+ requirement: &70330056784320 !ruby/object:Gem::Requirement
216
215
  none: false
217
216
  requirements:
218
217
  - - ~>
@@ -220,10 +219,10 @@ dependencies:
220
219
  version: 0.13.3
221
220
  type: :runtime
222
221
  prerelease: false
223
- version_requirements: *70168047634760
222
+ version_requirements: *70330056784320
224
223
  - !ruby/object:Gem::Dependency
225
224
  name: launchy
226
- requirement: &70168047633300 !ruby/object:Gem::Requirement
225
+ requirement: &70330056783520 !ruby/object:Gem::Requirement
227
226
  none: false
228
227
  requirements:
229
228
  - - ~>
@@ -231,10 +230,10 @@ dependencies:
231
230
  version: 0.4.0
232
231
  type: :runtime
233
232
  prerelease: false
234
- version_requirements: *70168047633300
233
+ version_requirements: *70330056783520
235
234
  - !ruby/object:Gem::Dependency
236
235
  name: shine
237
- requirement: &70168047632120 !ruby/object:Gem::Requirement
236
+ requirement: &70330056782560 !ruby/object:Gem::Requirement
238
237
  none: false
239
238
  requirements:
240
239
  - - ~>
@@ -242,183 +241,194 @@ dependencies:
242
241
  version: '0.6'
243
242
  type: :runtime
244
243
  prerelease: false
245
- version_requirements: *70168047632120
244
+ version_requirements: *70330056782560
246
245
  - !ruby/object:Gem::Dependency
247
- name: minitest
248
- requirement: &70168047618440 !ruby/object:Gem::Requirement
246
+ name: foreman
247
+ requirement: &70330056781680 !ruby/object:Gem::Requirement
249
248
  none: false
250
249
  requirements:
251
250
  - - ~>
252
251
  - !ruby/object:Gem::Version
253
- version: 2.1.0
254
- type: :development
252
+ version: 0.22.0
253
+ type: :runtime
255
254
  prerelease: false
256
- version_requirements: *70168047618440
255
+ version_requirements: *70330056781680
257
256
  - !ruby/object:Gem::Dependency
258
- name: mysql2
259
- requirement: &70168047617440 !ruby/object:Gem::Requirement
257
+ name: simultaneous
258
+ requirement: &70330056780920 !ruby/object:Gem::Requirement
260
259
  none: false
261
260
  requirements:
262
261
  - - ~>
263
262
  - !ruby/object:Gem::Version
264
263
  version: '0.2'
265
- type: :development
264
+ type: :runtime
266
265
  prerelease: false
267
- version_requirements: *70168047617440
266
+ version_requirements: *70330056780920
268
267
  - !ruby/object:Gem::Dependency
269
- name: jeweler
270
- requirement: &70168047616360 !ruby/object:Gem::Requirement
268
+ name: rack-async
269
+ requirement: &70330056780200 !ruby/object:Gem::Requirement
271
270
  none: false
272
271
  requirements:
273
272
  - - ~>
274
273
  - !ruby/object:Gem::Version
275
- version: '1.5'
276
- type: :development
274
+ version: 0.1.0
275
+ type: :runtime
277
276
  prerelease: false
278
- version_requirements: *70168047616360
277
+ version_requirements: *70330056780200
279
278
  - !ruby/object:Gem::Dependency
280
- name: jnunemaker-matchy
281
- requirement: &70168047615400 !ruby/object:Gem::Requirement
279
+ name: xapian-full
280
+ requirement: &70330056779520 !ruby/object:Gem::Requirement
282
281
  none: false
283
282
  requirements:
284
283
  - - ~>
285
284
  - !ruby/object:Gem::Version
286
- version: '0.4'
287
- type: :development
285
+ version: 1.2.3
286
+ type: :runtime
288
287
  prerelease: false
289
- version_requirements: *70168047615400
288
+ version_requirements: *70330056779520
290
289
  - !ruby/object:Gem::Dependency
291
- name: shoulda
292
- requirement: &70168047614280 !ruby/object:Gem::Requirement
290
+ name: xapian-fu
291
+ requirement: &70330056778980 !ruby/object:Gem::Requirement
293
292
  none: false
294
293
  requirements:
295
- - - ! '>='
294
+ - - ~>
296
295
  - !ruby/object:Gem::Version
297
- version: '0'
298
- type: :development
296
+ version: '1.3'
297
+ type: :runtime
299
298
  prerelease: false
300
- version_requirements: *70168047614280
299
+ version_requirements: *70330056778980
301
300
  - !ruby/object:Gem::Dependency
302
- name: timecop
303
- requirement: &70168047612340 !ruby/object:Gem::Requirement
301
+ name: nokogiri
302
+ requirement: &70330056778500 !ruby/object:Gem::Requirement
304
303
  none: false
305
304
  requirements:
306
305
  - - ~>
307
306
  - !ruby/object:Gem::Version
308
- version: '0.3'
309
- type: :development
307
+ version: 1.5.0
308
+ type: :runtime
310
309
  prerelease: false
311
- version_requirements: *70168047612340
310
+ version_requirements: *70330056778500
312
311
  - !ruby/object:Gem::Dependency
313
- name: mocha
314
- requirement: &70168047611040 !ruby/object:Gem::Requirement
312
+ name: watchr
313
+ requirement: &70330056778020 !ruby/object:Gem::Requirement
315
314
  none: false
316
315
  requirements:
317
316
  - - ~>
318
317
  - !ruby/object:Gem::Version
319
- version: '0.9'
318
+ version: '0.7'
319
+ type: :runtime
320
+ prerelease: false
321
+ version_requirements: *70330056778020
322
+ - !ruby/object:Gem::Dependency
323
+ name: minitest
324
+ requirement: &70330056777540 !ruby/object:Gem::Requirement
325
+ none: false
326
+ requirements:
327
+ - - ~>
328
+ - !ruby/object:Gem::Version
329
+ version: 2.1.0
320
330
  type: :development
321
331
  prerelease: false
322
- version_requirements: *70168047611040
332
+ version_requirements: *70330056777540
323
333
  - !ruby/object:Gem::Dependency
324
- name: rack-test
325
- requirement: &70168047603520 !ruby/object:Gem::Requirement
334
+ name: mysql2
335
+ requirement: &70330056777020 !ruby/object:Gem::Requirement
326
336
  none: false
327
337
  requirements:
328
338
  - - ~>
329
339
  - !ruby/object:Gem::Version
330
- version: '0.5'
340
+ version: '0.3'
331
341
  type: :development
332
342
  prerelease: false
333
- version_requirements: *70168047603520
343
+ version_requirements: *70330056777020
334
344
  - !ruby/object:Gem::Dependency
335
- name: leftright
336
- requirement: &70168047602480 !ruby/object:Gem::Requirement
345
+ name: jeweler
346
+ requirement: &70330056776500 !ruby/object:Gem::Requirement
337
347
  none: false
338
348
  requirements:
339
349
  - - ~>
340
350
  - !ruby/object:Gem::Version
341
- version: '0.9'
351
+ version: '1.5'
342
352
  type: :development
343
353
  prerelease: false
344
- version_requirements: *70168047602480
354
+ version_requirements: *70330056776500
345
355
  - !ruby/object:Gem::Dependency
346
- name: stackdeck
347
- requirement: &70168047601060 !ruby/object:Gem::Requirement
356
+ name: jnunemaker-matchy
357
+ requirement: &70330056775920 !ruby/object:Gem::Requirement
348
358
  none: false
349
359
  requirements:
350
360
  - - ~>
351
361
  - !ruby/object:Gem::Version
352
- version: '0.2'
362
+ version: '0.4'
353
363
  type: :development
354
364
  prerelease: false
355
- version_requirements: *70168047601060
365
+ version_requirements: *70330056775920
356
366
  - !ruby/object:Gem::Dependency
357
- name: selenium-client
358
- requirement: &70168047599500 !ruby/object:Gem::Requirement
367
+ name: shoulda
368
+ requirement: &70330056775340 !ruby/object:Gem::Requirement
359
369
  none: false
360
370
  requirements:
361
371
  - - ~>
362
372
  - !ruby/object:Gem::Version
363
- version: 1.2.18
373
+ version: 2.11.3
364
374
  type: :development
365
375
  prerelease: false
366
- version_requirements: *70168047599500
376
+ version_requirements: *70330056775340
367
377
  - !ruby/object:Gem::Dependency
368
- name: johnson
369
- requirement: &70168047598100 !ruby/object:Gem::Requirement
378
+ name: timecop
379
+ requirement: &70330056764800 !ruby/object:Gem::Requirement
370
380
  none: false
371
381
  requirements:
372
- - - =
382
+ - - ~>
373
383
  - !ruby/object:Gem::Version
374
- version: 2.0.0.pre3
384
+ version: '0.3'
375
385
  type: :development
376
386
  prerelease: false
377
- version_requirements: *70168047598100
387
+ version_requirements: *70330056764800
378
388
  - !ruby/object:Gem::Dependency
379
- name: harmony
380
- requirement: &70168047597100 !ruby/object:Gem::Requirement
389
+ name: mocha
390
+ requirement: &70330056764140 !ruby/object:Gem::Requirement
381
391
  none: false
382
392
  requirements:
383
393
  - - ~>
384
394
  - !ruby/object:Gem::Version
385
- version: '0.5'
395
+ version: '0.9'
386
396
  type: :development
387
397
  prerelease: false
388
- version_requirements: *70168047597100
398
+ version_requirements: *70330056764140
389
399
  - !ruby/object:Gem::Dependency
390
- name: ruby-debug
391
- requirement: &70168047593280 !ruby/object:Gem::Requirement
400
+ name: rack-test
401
+ requirement: &70330056763640 !ruby/object:Gem::Requirement
392
402
  none: false
393
403
  requirements:
394
- - - ! '>='
404
+ - - ~>
395
405
  - !ruby/object:Gem::Version
396
- version: '0'
406
+ version: '0.5'
397
407
  type: :development
398
408
  prerelease: false
399
- version_requirements: *70168047593280
409
+ version_requirements: *70330056763640
400
410
  - !ruby/object:Gem::Dependency
401
- name: reek
402
- requirement: &70168047592140 !ruby/object:Gem::Requirement
411
+ name: leftright
412
+ requirement: &70330056762900 !ruby/object:Gem::Requirement
403
413
  none: false
404
414
  requirements:
405
- - - ! '>='
415
+ - - ~>
406
416
  - !ruby/object:Gem::Version
407
- version: '0'
417
+ version: '0.9'
408
418
  type: :development
409
419
  prerelease: false
410
- version_requirements: *70168047592140
420
+ version_requirements: *70330056762900
411
421
  - !ruby/object:Gem::Dependency
412
- name: locat
413
- requirement: &70168047590840 !ruby/object:Gem::Requirement
422
+ name: stackdeck
423
+ requirement: &70330056762260 !ruby/object:Gem::Requirement
414
424
  none: false
415
425
  requirements:
416
- - - ! '>='
426
+ - - ~>
417
427
  - !ruby/object:Gem::Version
418
- version: '0'
428
+ version: '0.2'
419
429
  type: :development
420
430
  prerelease: false
421
- version_requirements: *70168047590840
431
+ version_requirements: *70330056762260
422
432
  description: Spontaneous is a next-generation Ruby CMS
423
433
  email: garry@magnetised.net
424
434
  executables:
@@ -429,7 +439,6 @@ extra_rdoc_files:
429
439
  - LICENSE
430
440
  files:
431
441
  - Gemfile
432
- - Gemfile.lock
433
442
  - LICENSE
434
443
  - README
435
444
  - Rakefile
@@ -439,8 +448,9 @@ files:
439
448
  - application/css/developer.scss
440
449
  - application/css/editing.scss
441
450
  - application/css/login.scss
442
- - application/css/min/54ee0ed3c7fac7632bd5c020d69e9a2503e0c88c.css
443
- - application/css/min/c256adc144e2bdd0b0539356b04eb62db01e1dc3.css
451
+ - application/css/min/565d4c25e82148acb01c45c8d675b37a08676d77.css
452
+ - application/css/min/84dbe894ea96eafd321c30823d630817bfc4b03b.css
453
+ - application/css/min/d1b54ff4847c613618267ca1c15658e2aee0a4e5.css
444
454
  - application/css/popover.scss
445
455
  - application/css/schema_error.scss
446
456
  - application/css/spontaneous.scss
@@ -459,28 +469,30 @@ files:
459
469
  - application/js/content_area.js
460
470
  - application/js/dialogue.js
461
471
  - application/js/dom.js
462
- - application/js/edit_dialogue.js
463
472
  - application/js/edit_panel.js
464
473
  - application/js/editing.js
465
474
  - application/js/entry.js
475
+ - application/js/event_source.js
466
476
  - application/js/extensions.js
467
477
  - application/js/field.js
468
478
  - application/js/field_preview.js
469
479
  - application/js/field_types/date_field.js
470
480
  - application/js/field_types/file_field.js
471
481
  - application/js/field_types/image_field.js
482
+ - application/js/field_types/long_string_field.js
472
483
  - application/js/field_types/markdown_field.js
473
484
  - application/js/field_types/string_field.js
485
+ - application/js/field_types/webvideo_field.js
474
486
  - application/js/image.js
475
487
  - application/js/init.js
476
488
  - application/js/load.js
477
489
  - application/js/location.js
478
490
  - application/js/login.js
479
- - application/js/min/492a209de8ee955fa9c729a765377495001e11b1.js
480
- - application/js/min/80f684d77c940887a1d4a63e3a96102e993baa98.js
491
+ - application/js/min/2a0c2962537a3181fedfff5c92596ba6d3122dc9.js
492
+ - application/js/min/4cf1c493d3379ecba5287758c61238034c0893f9.js
493
+ - application/js/min/78ac6b99d96750bb6b9f9aad4cb9cd91cd03f391.js
481
494
  - application/js/min/b8abf302a824c35385ff517b34111e1710ff3b37.js
482
- - application/js/min/c7140ec9475e5bf868b901e0621338d7d162358b.js
483
- - application/js/min/f07f2bd6630ee31e1c2288ec223383d8f0658ba6.js
495
+ - application/js/min/c8efb9b9f7c3f6613fcebc6be60f605b6570a382.js
484
496
  - application/js/page.js
485
497
  - application/js/page_browser.js
486
498
  - application/js/page_entry.js
@@ -501,7 +513,6 @@ files:
501
513
  - application/js/upload.js
502
514
  - application/js/upload_manager.js
503
515
  - application/js/user.js
504
- - application/js/vendor/.DS_Store
505
516
  - application/js/vendor/JS.Class-2.1.5/CHANGELOG
506
517
  - application/js/vendor/JS.Class-2.1.5/MIT-LICENSE
507
518
  - application/js/vendor/JS.Class-2.1.5/README
@@ -524,44 +535,19 @@ files:
524
535
  - application/js/vendor/JS.Class-2.1.5/min/stack_trace.js
525
536
  - application/js/vendor/JS.Class-2.1.5/min/state.js
526
537
  - application/js/vendor/JS.Class-2.1.5/min/stdlib.js
527
- - application/js/vendor/JS.Class-2.1.5/src/command.js
528
- - application/js/vendor/JS.Class-2.1.5/src/comparable.js
529
- - application/js/vendor/JS.Class-2.1.5/src/constant_scope.js
530
- - application/js/vendor/JS.Class-2.1.5/src/core.js
531
- - application/js/vendor/JS.Class-2.1.5/src/decorator.js
532
- - application/js/vendor/JS.Class-2.1.5/src/enumerable.js
533
- - application/js/vendor/JS.Class-2.1.5/src/forwardable.js
534
- - application/js/vendor/JS.Class-2.1.5/src/hash.js
535
- - application/js/vendor/JS.Class-2.1.5/src/linked_list.js
536
- - application/js/vendor/JS.Class-2.1.5/src/loader.js
537
- - application/js/vendor/JS.Class-2.1.5/src/method_chain.js
538
- - application/js/vendor/JS.Class-2.1.5/src/observable.js
539
- - application/js/vendor/JS.Class-2.1.5/src/package.js
540
- - application/js/vendor/JS.Class-2.1.5/src/proxy.js
541
- - application/js/vendor/JS.Class-2.1.5/src/ruby.js
542
- - application/js/vendor/JS.Class-2.1.5/src/set.js
543
- - application/js/vendor/JS.Class-2.1.5/src/stack_trace.js
544
- - application/js/vendor/JS.Class-2.1.5/src/state.js
545
- - application/js/vendor/JS.Class-2.1.5/src/stdlib.js
546
538
  - application/js/vendor/crypto-2.3.0-crypto.js
547
539
  - application/js/vendor/crypto-2.3.0-sha1.js
548
540
  - application/js/vendor/diff_match_patch.js
549
- - application/js/vendor/jquery-1.4.2.min.js
550
- - application/js/vendor/jquery-1.4.3.min.js
551
- - application/js/vendor/jquery-1.5.1.min.js
552
- - application/js/vendor/jquery-1.5.1rc1.min.js
553
541
  - application/js/vendor/jquery-1.6.2.min.js
554
- - application/js/vendor/jquery-ui-1.8.6.custom.min.js
542
+ - application/js/vendor/jquery-1.7.1.min.js
543
+ - application/js/vendor/jquery-ui-1.8.16.custom.min.js
555
544
  - application/js/vendor/jquery-ui-1.8.9.custom.min.js
556
- - application/js/vendor/jquery-ui-1.8.custom.min.js
557
- - application/js/vendor/jquery.hotkeys-0.7.9.js
558
- - application/js/vendor/jquery.hotkeys-0.7.9.min.js
559
- - application/js/vendor/jsdiff.js
560
545
  - application/js/views.js
561
546
  - application/js/views/box_view.js
562
547
  - application/js/views/page_piece_view.js
563
548
  - application/js/views/page_view.js
564
549
  - application/js/views/piece_view.js
550
+ - application/static/diagonal-texture.png
565
551
  - application/static/editing-0-noise.png
566
552
  - application/static/editing-1-noise.png
567
553
  - application/static/editing-texture-1.png
@@ -570,6 +556,7 @@ files:
570
556
  - application/static/editing-toolbar-shadow-top.png
571
557
  - application/static/favicon.ico
572
558
  - application/static/inner-glow.png
559
+ - application/static/item-buttons-highlight.png
573
560
  - application/static/item-buttons.png
574
561
  - application/static/location-arrow.png
575
562
  - application/static/logo-400px-transparent.png
@@ -577,19 +564,22 @@ files:
577
564
  - application/static/orange-down-arrow.png
578
565
  - application/static/page-browser-next.png
579
566
  - application/static/paper-texture-dark.png
567
+ - application/static/plus-box.png
568
+ - application/static/plus_alt.svg
580
569
  - application/static/px.gif
581
570
  - application/static/select-arrow-root.png
582
571
  - application/static/select-arrow.png
583
572
  - application/static/slot-down-arrow.png
573
+ - application/static/slot-up-arrow.png
584
574
  - application/static/splash.png
585
575
  - application/static/spontaneous.png
586
576
  - application/static/spot.png
587
577
  - application/static/spot.svg
588
578
  - application/static/texture.png
589
- - application/views/index.erubis
590
- - application/views/login.erubis
579
+ - application/views/index.erb
580
+ - application/views/login.erb
591
581
  - application/views/schema_modification_error.html.erb
592
- - application/views/unsupported.erubis
582
+ - application/views/unsupported.erb
593
583
  - bin/limit-upload
594
584
  - bin/spot
595
585
  - bin/unlimit-upload
@@ -604,20 +594,25 @@ files:
604
594
  - db/migrations/20110521114145_remove_slots_and_entries.rb
605
595
  - db/migrations/20110604192145_rename_schema_id_columns.rb
606
596
  - db/migrations/20110805141925_rename_site_to_state.rb
597
+ - db/migrations/20120106171423_visibility_path.rb
598
+ - db/migrations/20120107124541_owner_id.rb
599
+ - docs/recipe-interface-screenshot.png
607
600
  - lib/cutaneous.rb
608
601
  - lib/cutaneous/context_helper.rb
609
- - lib/cutaneous/first_pass_parser.rb
610
- - lib/cutaneous/first_pass_renderer.rb
611
- - lib/cutaneous/parser_core.rb
612
602
  - lib/cutaneous/preview_context.rb
613
603
  - lib/cutaneous/preview_renderer.rb
614
604
  - lib/cutaneous/publish_context.rb
605
+ - lib/cutaneous/publish_renderer.rb
606
+ - lib/cutaneous/publish_template.rb
607
+ - lib/cutaneous/publish_token_parser.rb
615
608
  - lib/cutaneous/renderer.rb
616
609
  - lib/cutaneous/request_context.rb
617
- - lib/cutaneous/second_pass_parser.rb
618
- - lib/cutaneous/second_pass_renderer.rb
610
+ - lib/cutaneous/request_renderer.rb
611
+ - lib/cutaneous/request_template.rb
612
+ - lib/cutaneous/request_token_parser.rb
613
+ - lib/cutaneous/token_parser.rb
619
614
  - lib/sequel/plugins/content_table_inheritance.rb
620
- - lib/sequel/plugins/yajl_serialization.rb
615
+ - lib/sequel/plugins/scoped_table_name.rb
621
616
  - lib/spontaneous.rb
622
617
  - lib/spontaneous/application.rb
623
618
  - lib/spontaneous/application/feature.rb
@@ -650,6 +645,7 @@ files:
650
645
  - lib/spontaneous/extensions/hash.rb
651
646
  - lib/spontaneous/extensions/json.rb
652
647
  - lib/spontaneous/extensions/kernel.rb
648
+ - lib/spontaneous/extensions/nil.rb
653
649
  - lib/spontaneous/extensions/object.rb
654
650
  - lib/spontaneous/extensions/object_space.rb
655
651
  - lib/spontaneous/extensions/string.rb
@@ -658,8 +654,11 @@ files:
658
654
  - lib/spontaneous/field_types/date_field.rb
659
655
  - lib/spontaneous/field_types/field.rb
660
656
  - lib/spontaneous/field_types/image_field.rb
657
+ - lib/spontaneous/field_types/location_field.rb
658
+ - lib/spontaneous/field_types/long_string_field.rb
661
659
  - lib/spontaneous/field_types/markdown_field.rb
662
660
  - lib/spontaneous/field_types/string_field.rb
661
+ - lib/spontaneous/field_types/webvideo_field.rb
663
662
  - lib/spontaneous/generators.rb
664
663
  - lib/spontaneous/generators/page.rb
665
664
  - lib/spontaneous/generators/page/inline.html.cut
@@ -677,15 +676,17 @@ files:
677
676
  - lib/spontaneous/generators/site/config/environments/development.rb.tt
678
677
  - lib/spontaneous/generators/site/config/environments/production.rb.tt
679
678
  - lib/spontaneous/generators/site/config/front.ru
679
+ - lib/spontaneous/generators/site/config/indexes.rb.tt
680
680
  - lib/spontaneous/generators/site/config/user_levels.yml
681
681
  - lib/spontaneous/generators/site/lib/site.rb.tt
682
682
  - lib/spontaneous/generators/site/lib/tasks/site.rake.tt
683
- - lib/spontaneous/generators/site/public/css/site.css
683
+ - lib/spontaneous/generators/site/public/css/site.scss
684
684
  - lib/spontaneous/generators/site/public/favicon.ico
685
685
  - lib/spontaneous/generators/site/public/js/.empty_directory
686
686
  - lib/spontaneous/generators/site/public/js/site.js
687
687
  - lib/spontaneous/generators/site/public/robots.txt
688
688
  - lib/spontaneous/generators/site/schema/.map
689
+ - lib/spontaneous/generators/site/schema/box.rb.tt
689
690
  - lib/spontaneous/generators/site/schema/page.rb.tt
690
691
  - lib/spontaneous/generators/site/schema/piece.rb.tt
691
692
  - lib/spontaneous/generators/site/templates/layouts/standard.html.cut.tt
@@ -695,6 +696,7 @@ files:
695
696
  - lib/spontaneous/loader.rb
696
697
  - lib/spontaneous/logger.rb
697
698
  - lib/spontaneous/media.rb
699
+ - lib/spontaneous/media/file.rb
698
700
  - lib/spontaneous/page.rb
699
701
  - lib/spontaneous/page_controller.rb
700
702
  - lib/spontaneous/page_piece.rb
@@ -705,10 +707,10 @@ files:
705
707
  - lib/spontaneous/permissions/user.rb
706
708
  - lib/spontaneous/permissions/user_level.rb
707
709
  - lib/spontaneous/piece.rb
708
- - lib/spontaneous/plugins.rb
709
710
  - lib/spontaneous/plugins/aliases.rb
710
711
  - lib/spontaneous/plugins/allowed_types.rb
711
712
  - lib/spontaneous/plugins/application/facets.rb
713
+ - lib/spontaneous/plugins/application/features.rb
712
714
  - lib/spontaneous/plugins/application/paths.rb
713
715
  - lib/spontaneous/plugins/application/render.rb
714
716
  - lib/spontaneous/plugins/application/serialisation.rb
@@ -717,6 +719,7 @@ files:
717
719
  - lib/spontaneous/plugins/controllers.rb
718
720
  - lib/spontaneous/plugins/entries.rb
719
721
  - lib/spontaneous/plugins/entry.rb
722
+ - lib/spontaneous/plugins/field/editor_class.rb
720
723
  - lib/spontaneous/plugins/fields.rb
721
724
  - lib/spontaneous/plugins/instance_code.rb
722
725
  - lib/spontaneous/plugins/layouts.rb
@@ -734,11 +737,16 @@ files:
734
737
  - lib/spontaneous/plugins/schema_id.rb
735
738
  - lib/spontaneous/plugins/schema_title.rb
736
739
  - lib/spontaneous/plugins/serialisation.rb
740
+ - lib/spontaneous/plugins/site/features.rb
737
741
  - lib/spontaneous/plugins/site/instance.rb
742
+ - lib/spontaneous/plugins/site/level.rb
738
743
  - lib/spontaneous/plugins/site/map.rb
739
744
  - lib/spontaneous/plugins/site/publishing.rb
740
745
  - lib/spontaneous/plugins/site/revisions.rb
746
+ - lib/spontaneous/plugins/site/schema.rb
747
+ - lib/spontaneous/plugins/site/search.rb
741
748
  - lib/spontaneous/plugins/site/selectors.rb
749
+ - lib/spontaneous/plugins/site/storage.rb
742
750
  - lib/spontaneous/plugins/site_map.rb
743
751
  - lib/spontaneous/plugins/styles.rb
744
752
  - lib/spontaneous/plugins/supertype.rb
@@ -747,53 +755,81 @@ files:
747
755
  - lib/spontaneous/prototypes/field_prototype.rb
748
756
  - lib/spontaneous/prototypes/layout_prototype.rb
749
757
  - lib/spontaneous/prototypes/style_prototype.rb
750
- - lib/spontaneous/proxy_object.rb
751
758
  - lib/spontaneous/publishing.rb
752
- - lib/spontaneous/publishing/fire_and_forget.rb
753
759
  - lib/spontaneous/publishing/immediate.rb
760
+ - lib/spontaneous/publishing/simultaneous.rb
754
761
  - lib/spontaneous/publishing/threaded.rb
755
762
  - lib/spontaneous/rack.rb
756
763
  - lib/spontaneous/rack/around_back.rb
757
764
  - lib/spontaneous/rack/around_front.rb
758
765
  - lib/spontaneous/rack/around_preview.rb
759
766
  - lib/spontaneous/rack/assets.rb
767
+ - lib/spontaneous/rack/authentication.rb
760
768
  - lib/spontaneous/rack/back.rb
769
+ - lib/spontaneous/rack/cacheable_file.rb
770
+ - lib/spontaneous/rack/cookie_authentication.rb
771
+ - lib/spontaneous/rack/css.rb
772
+ - lib/spontaneous/rack/event_source.rb
761
773
  - lib/spontaneous/rack/front.rb
774
+ - lib/spontaneous/rack/helpers.rb
762
775
  - lib/spontaneous/rack/http.rb
763
776
  - lib/spontaneous/rack/media.rb
764
777
  - lib/spontaneous/rack/public.rb
778
+ - lib/spontaneous/rack/query_authentication.rb
765
779
  - lib/spontaneous/rack/reloader.rb
766
780
  - lib/spontaneous/rack/static.rb
781
+ - lib/spontaneous/rack/user_helpers.rb
767
782
  - lib/spontaneous/render.rb
768
- - lib/spontaneous/render/context.rb
783
+ - lib/spontaneous/render/context_base.rb
769
784
  - lib/spontaneous/render/development_renderer.rb
770
785
  - lib/spontaneous/render/engine.rb
771
786
  - lib/spontaneous/render/format.rb
772
787
  - lib/spontaneous/render/format/html.rb
788
+ - lib/spontaneous/render/helpers.rb
789
+ - lib/spontaneous/render/helpers/html_helper.rb
790
+ - lib/spontaneous/render/helpers/script_helper.rb
791
+ - lib/spontaneous/render/helpers/stylesheet_helper.rb
792
+ - lib/spontaneous/render/preview_context.rb
773
793
  - lib/spontaneous/render/preview_renderer.rb
794
+ - lib/spontaneous/render/publish_context.rb
774
795
  - lib/spontaneous/render/published_renderer.rb
775
796
  - lib/spontaneous/render/publishing_renderer.rb
797
+ - lib/spontaneous/render/render_cache.rb
776
798
  - lib/spontaneous/render/renderer.rb
799
+ - lib/spontaneous/render/request_context.rb
777
800
  - lib/spontaneous/revision.rb
778
801
  - lib/spontaneous/schema.rb
779
802
  - lib/spontaneous/schema/schema_modification.rb
780
803
  - lib/spontaneous/schema/uid.rb
804
+ - lib/spontaneous/schema/uid_map.rb
805
+ - lib/spontaneous/search.rb
806
+ - lib/spontaneous/search/compound_indexer.rb
807
+ - lib/spontaneous/search/database.rb
808
+ - lib/spontaneous/search/field.rb
809
+ - lib/spontaneous/search/index.rb
810
+ - lib/spontaneous/search/results.rb
781
811
  - lib/spontaneous/server.rb
782
812
  - lib/spontaneous/site.rb
783
813
  - lib/spontaneous/state.rb
814
+ - lib/spontaneous/storage.rb
815
+ - lib/spontaneous/storage/backend.rb
816
+ - lib/spontaneous/storage/cloud.rb
817
+ - lib/spontaneous/storage/local.rb
784
818
  - lib/spontaneous/style.rb
785
819
  - lib/spontaneous/tasks.rb
786
820
  - lib/spontaneous/tasks/database.rake
787
821
  - lib/spontaneous/version.rb
788
- - spontaneous.gemspec.tmpl
822
+ - spontaneous.gemspec
789
823
  - test/disabled/test_slots.rb
790
- - test/experimental/test_formats.rb
791
- - test/experimental/test_plugins.rb
824
+ - test/experimental/test_cutaneous.rb
825
+ - test/experimental/test_features.rb
792
826
  - test/fixtures/application/css/test.less
793
827
  - test/fixtures/application/js/test.js
794
828
  - test/fixtures/application/static/favicon.ico
795
829
  - test/fixtures/application/static/test.html
796
- - test/fixtures/application/views/index.erubis
830
+ - test/fixtures/application/views/index.erb
831
+ - test/fixtures/back/public/css/sass_include.scss
832
+ - test/fixtures/back/public/css/sass_template.scss
797
833
  - test/fixtures/back/public/test.html
798
834
  - test/fixtures/back/templates/layouts/standard.html.cut
799
835
  - test/fixtures/config/config/environment.rb
@@ -847,6 +883,7 @@ files:
847
883
  - test/fixtures/example_application/templates/project/inline.html.cut
848
884
  - test/fixtures/example_application/templates/project_image.html.cut
849
885
  - test/fixtures/example_application/templates/text.html.cut
886
+ - test/fixtures/fields/youtube_api_response.xml
850
887
  - test/fixtures/images/rose.greyscale.jpg
851
888
  - test/fixtures/images/rose.jpg
852
889
  - test/fixtures/images/size.gif
@@ -858,11 +895,19 @@ files:
858
895
  - test/fixtures/layouts/layouts/custom1.xml.cut
859
896
  - test/fixtures/layouts/layouts/custom2.html.cut
860
897
  - test/fixtures/layouts/layouts/custom3.html.cut
898
+ - test/fixtures/layouts/layouts/custom4.html.cut
861
899
  - test/fixtures/layouts/layouts/standard.html.cut
862
900
  - test/fixtures/media/101/003/rose.jpg
863
901
  - test/fixtures/permissions/config/user_levels.yml
864
902
  - test/fixtures/permissions/media/image.jpg
865
903
  - test/fixtures/plugins/schema_plugin/init.rb
904
+ - test/fixtures/plugins/schema_plugin/public/css/plugin.css
905
+ - test/fixtures/plugins/schema_plugin/public/js/plugin.js
906
+ - test/fixtures/plugins/schema_plugin/public/static.html
907
+ - test/fixtures/plugins/schema_plugin/public/subdir/image.gif
908
+ - test/fixtures/plugins/schema_plugin/public/subdir/include1.scss
909
+ - test/fixtures/plugins/schema_plugin/public/subdir/sass.scss
910
+ - test/fixtures/plugins/schema_plugin/public/subdir/sass/include2.scss
866
911
  - test/fixtures/plugins/schema_plugin/schema/external.rb
867
912
  - test/fixtures/plugins/schema_plugin/templates/external.html.cut
868
913
  - test/fixtures/plugins/schema_plugin/templates/from_plugin.html.cut
@@ -875,6 +920,14 @@ files:
875
920
  - test/fixtures/schema/before.yml
876
921
  - test/fixtures/schema/resolvable.yml
877
922
  - test/fixtures/schema/schema.yml
923
+ - test/fixtures/schema_modification/config/database.yml
924
+ - test/fixtures/schema_modification/config/environment.rb
925
+ - test/fixtures/schema_modification/schema/box.rb
926
+ - test/fixtures/schema_modification/schema/custom_box.rb
927
+ - test/fixtures/schema_modification/schema/page.rb
928
+ - test/fixtures/schema_modification/schema/piece.rb
929
+ - test/fixtures/search/config/database.yml
930
+ - test/fixtures/search/config/indexes.rb
878
931
  - test/fixtures/serialisation/class_hash.yaml.erb
879
932
  - test/fixtures/serialisation/root_hash.yaml.erb
880
933
  - test/fixtures/sharding/rose.jpg
@@ -885,6 +938,8 @@ files:
885
938
  - test/fixtures/sharding/xae
886
939
  - test/fixtures/sharding/xaf
887
940
  - test/fixtures/sharding/xag
941
+ - test/fixtures/storage/cloud/environment.rb
942
+ - test/fixtures/storage/default/environment.rb
888
943
  - test/fixtures/styles/box_a.html.cut
889
944
  - test/fixtures/styles/box_a/runny.html.cut
890
945
  - test/fixtures/styles/named2.html.cut
@@ -917,9 +972,15 @@ files:
917
972
  - test/fixtures/templates/content/template.html.cut
918
973
  - test/fixtures/templates/default_style_class.html.cut
919
974
  - test/fixtures/templates/direct.html.cut
975
+ - test/fixtures/templates/engine/braces.html.cut
976
+ - test/fixtures/templates/engine/multiline.html.cut
920
977
  - test/fixtures/templates/extended/grandparent.html.cut
921
978
  - test/fixtures/templates/extended/main.html.cut
922
979
  - test/fixtures/templates/extended/parent.html.cut
980
+ - test/fixtures/templates/extended/partial.html.cut
981
+ - test/fixtures/templates/extended/partial_with_locals.html.cut
982
+ - test/fixtures/templates/extended/with_includes.html.cut
983
+ - test/fixtures/templates/extended/with_includes_and_locals.html.cut
923
984
  - test/fixtures/templates/layouts/entries.html.cut
924
985
  - test/fixtures/templates/layouts/page_style.html.cut
925
986
  - test/fixtures/templates/layouts/params.html.cut
@@ -927,10 +988,13 @@ files:
927
988
  - test/fixtures/templates/layouts/standard_page.html.cut
928
989
  - test/fixtures/templates/layouts/subdir_style.html.cut
929
990
  - test/fixtures/templates/layouts/template_params.html.cut
991
+ - test/fixtures/templates/layouts/variables.html.cut
930
992
  - test/fixtures/templates/page_class/inline_style.html.cut
931
993
  - test/fixtures/templates/preview_render/inline.html.cut
932
- - test/fixtures/templates/publishing/layouts/dynamic.html.cut
933
- - test/fixtures/templates/publishing/layouts/static.html.cut
994
+ - test/fixtures/templates/preview_render/variables.html.cut
995
+ - test/fixtures/templates/publishing/templates/layouts/dynamic.html.cut
996
+ - test/fixtures/templates/publishing/templates/layouts/dynamic.rtf.cut
997
+ - test/fixtures/templates/publishing/templates/layouts/static.html.cut
934
998
  - test/fixtures/templates/template_class/anonymous_style.html.cut
935
999
  - test/fixtures/templates/template_class/another_template.html.cut
936
1000
  - test/fixtures/templates/template_class/complex_template.html.cut
@@ -964,7 +1028,9 @@ files:
964
1028
  - test/unit/test_content_inheritance.rb
965
1029
  - test/unit/test_extensions.rb
966
1030
  - test/unit/test_fields.rb
1031
+ - test/unit/test_formats.rb
967
1032
  - test/unit/test_generators.rb
1033
+ - test/unit/test_helpers.rb
968
1034
  - test/unit/test_image_size.rb
969
1035
  - test/unit/test_images.rb
970
1036
  - test/unit/test_layouts.rb
@@ -973,17 +1039,20 @@ files:
973
1039
  - test/unit/test_page.rb
974
1040
  - test/unit/test_permissions.rb
975
1041
  - test/unit/test_piece.rb
1042
+ - test/unit/test_plugins.rb
976
1043
  - test/unit/test_prototype_set.rb
977
1044
  - test/unit/test_prototypes.rb
978
1045
  - test/unit/test_render.rb
979
1046
  - test/unit/test_schema.rb
1047
+ - test/unit/test_search.rb
980
1048
  - test/unit/test_serialisation.rb
981
1049
  - test/unit/test_site.rb
1050
+ - test/unit/test_storage.rb
982
1051
  - test/unit/test_structure.rb
983
1052
  - test/unit/test_styles.rb
1053
+ - test/unit/test_table_scoping.rb
984
1054
  - test/unit/test_templates.rb
985
1055
  - test/unit/test_type_hierarchy.rb
986
- has_rdoc: true
987
1056
  homepage: http://spontaneouscms.org
988
1057
  licenses: []
989
1058
  post_install_message:
@@ -996,10 +1065,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
996
1065
  requirements:
997
1066
  - - ! '>='
998
1067
  - !ruby/object:Gem::Version
999
- version: '0'
1000
- segments:
1001
- - 0
1002
- hash: -2032741075988683927
1068
+ version: 1.9.2
1003
1069
  required_rubygems_version: !ruby/object:Gem::Requirement
1004
1070
  none: false
1005
1071
  requirements:
@@ -1008,7 +1074,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1008
1074
  version: 1.3.1
1009
1075
  requirements: []
1010
1076
  rubyforge_project: spontaneous
1011
- rubygems_version: 1.6.2
1077
+ rubygems_version: 1.8.10
1012
1078
  signing_key:
1013
1079
  specification_version: 2
1014
1080
  summary: Spontaneous is a next-generation Ruby CMS