zena 1.0.0.beta3 → 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (418) hide show
  1. data/History.txt +29 -0
  2. data/Rakefile +2 -0
  3. data/TODO_ZENA_1_0 +13 -23
  4. data/app/controllers/columns_controller.rb +1 -1
  5. data/app/controllers/comments_controller.rb +4 -3
  6. data/app/controllers/documents_controller.rb +8 -11
  7. data/app/controllers/nodes_controller.rb +39 -21
  8. data/app/controllers/users_controller.rb +8 -3
  9. data/app/controllers/versions_controller.rb +2 -2
  10. data/app/controllers/virtual_classes_controller.rb +17 -11
  11. data/app/helpers/documents_helper.rb +0 -3
  12. data/app/helpers/users_helper.rb +17 -0
  13. data/app/models/cache.rb +36 -31
  14. data/app/models/column.rb +48 -5
  15. data/app/models/comment.rb +14 -5
  16. data/app/models/data_entry.rb +2 -2
  17. data/app/models/document.rb +23 -33
  18. data/app/models/idx_nodes_datetime.rb +4 -0
  19. data/app/models/idx_nodes_float.rb +4 -0
  20. data/app/models/idx_project.rb +3 -0
  21. data/app/models/node.rb +372 -308
  22. data/app/models/page.rb +1 -31
  23. data/app/models/relation.rb +4 -4
  24. data/app/models/relation_proxy.rb +128 -17
  25. data/app/models/role.rb +27 -2
  26. data/app/models/site.rb +64 -56
  27. data/app/models/template.rb +11 -12
  28. data/app/models/text_document.rb +6 -7
  29. data/app/models/user.rb +95 -46
  30. data/app/models/version.rb +2 -2
  31. data/app/models/virtual_class.rb +418 -73
  32. data/app/views/columns/_form.html.erb +1 -1
  33. data/app/views/columns/_li.html.erb +1 -1
  34. data/app/views/comments/_form.rhtml +1 -1
  35. data/app/views/comments/_li.rhtml +1 -1
  36. data/app/views/comments/_li_simple.rhtml +1 -1
  37. data/app/views/groups/_form.rhtml +1 -1
  38. data/app/views/links/_li.rhtml +1 -1
  39. data/app/views/nodes/_groups.rhtml +1 -1
  40. data/app/views/nodes/_import_results.rhtml +1 -1
  41. data/app/views/nodes/_parent.rhtml +1 -1
  42. data/app/views/nodes/_results.rhtml +1 -1
  43. data/app/views/nodes/create.rjs +4 -2
  44. data/app/views/relations/_li.erb +2 -2
  45. data/app/views/templates/document_create_tabs/_file.rhtml +1 -1
  46. data/app/views/templates/document_create_tabs/_template.rhtml +2 -2
  47. data/app/views/templates/document_create_tabs/_text_document.rhtml +2 -2
  48. data/app/views/templates/edit_tabs/_help.rhtml +1 -1
  49. data/app/views/templates/edit_tabs/_title.rhtml +0 -3
  50. data/app/views/users/_form.rhtml +2 -6
  51. data/app/views/users/_li.rhtml +1 -3
  52. data/app/views/users/create.rjs +4 -4
  53. data/app/views/users/preferences.html.erb +1 -4
  54. data/app/views/versions/custom_tab.rhtml +5 -0
  55. data/app/views/virtual_classes/_form.erb +20 -10
  56. data/app/views/virtual_classes/_li.erb +21 -8
  57. data/app/views/zafu/default/Node-+search.zafu +1 -1
  58. data/app/views/zafu/default/Node.zafu +3 -3
  59. data/bricks/captcha/lib/bricks/captcha.rb +1 -1
  60. data/bricks/mongrel/zena/deploy.rb +14 -0
  61. data/bricks/{data2pdf → pdf}/.document +0 -0
  62. data/bricks/pdf/README +33 -0
  63. data/bricks/{data2pdf → pdf}/Rakefile +0 -0
  64. data/bricks/pdf/VERSION +1 -0
  65. data/bricks/pdf/lib/bricks/pdf.rb +110 -0
  66. data/bricks/pdf/lib/bricks/pdf/engine/prince.rb +38 -0
  67. data/bricks/pdf/lib/bricks/pdf/engine/xhtml2pdf.rb +9 -0
  68. data/bricks/pdf/lib/bricks/pdf/install.rb +121 -0
  69. data/bricks/pdf/test/engines/test_prince.rb +15 -0
  70. data/bricks/pdf/test/engines/test_xhtml2pdf.rb +15 -0
  71. data/bricks/{data2pdf → pdf}/test/fixtures/application.css +0 -0
  72. data/bricks/{data2pdf → pdf}/test/fixtures/contact.html +0 -0
  73. data/bricks/{data2pdf → pdf}/test/fixtures/pisa-default.css +0 -0
  74. data/bricks/{data2pdf → pdf}/test/fixtures/sheet1.css +0 -0
  75. data/bricks/{data2pdf → pdf}/test/fixtures/sheet2.css +0 -0
  76. data/bricks/{data2pdf → pdf}/test/fixtures/simple-html.html +0 -0
  77. data/bricks/{data2pdf → pdf}/test/fixtures/simple-text.txt +0 -0
  78. data/bricks/{data2pdf → pdf}/test/helper.rb +4 -5
  79. data/bricks/pdf/test/shoulda_macros/shoulda_pdf.rb +72 -0
  80. data/bricks/pdf/zena/init.rb +5 -0
  81. data/bricks/pdf/zena/tasks.rb +17 -0
  82. data/bricks/sphinx/lib/{use_sphinx.rb → bricks/sphinx.rb} +1 -1
  83. data/bricks/tags/zena/init.rb +2 -2
  84. data/bricks/tags/zena/test/zafu/tags.yml +4 -4
  85. data/bricks/zena/zena/migrate/01_base.rb +482 -0
  86. data/config/bricks.yml +22 -6
  87. data/config/gems.yml +8 -6
  88. data/db/20100628074512_zena0x_to1x.rb +6 -1
  89. data/db/fix/024_correct_vclass_kpath.rb +11 -0
  90. data/db/fix/025_move_tag_into_vclass.rb +13 -0
  91. data/db/{migrate → fix}/026_rename_templates.rb +0 -0
  92. data/db/{migrate → fix}/045_avoid_star_in_templates.rb +0 -0
  93. data/db/{migrate → fix}/046_fix_zazen_image_tag.rb +0 -0
  94. data/db/{migrate → fix}/047_change_default_link_id_to_zero.rb +1 -3
  95. data/db/{migrate → fix}/049_fix_publish_from_is_null.rb +0 -0
  96. data/db/{migrate → fix}/20090924141459_zafu_fix_sept09.rb +0 -0
  97. data/db/{migrate → fix}/20091013100351_rename_publish_group_to_drive_group.rb +1 -3
  98. data/db/{migrate → fix}/20091124161608_rebuild_fullpath.rb +0 -1
  99. data/db/{migrate → fix}/20100115134729_rebuild_fullpath_after_fix.rb +0 -0
  100. data/db/{migrate → fix}/20100526090140_renamed_contact_model_to_base_contact.rb +2 -4
  101. data/db/{migrate → fix/old_migrations}/001_create_base.rb +0 -1
  102. data/db/{migrate → fix/old_migrations}/002_add_time_zone_to_users.rb +0 -0
  103. data/db/{migrate → fix/old_migrations}/003_add_custom_base_flag.rb +0 -0
  104. data/db/{migrate → fix/old_migrations}/004_rename_template_skin.rb +0 -0
  105. data/db/{migrate → fix/old_migrations}/005_create_cached_pages.rb +0 -0
  106. data/db/{migrate → fix/old_migrations}/006_create_sites.rb +0 -0
  107. data/db/{migrate → fix/old_migrations}/007_replace_id_by_zip.rb +0 -0
  108. data/db/{migrate → fix/old_migrations}/008_user_status.rb +0 -0
  109. data/db/{migrate → fix/old_migrations}/009_fulltext.rb +0 -0
  110. data/db/fix/old_migrations/010_create_template_content.rb +17 -0
  111. data/db/{migrate → fix/old_migrations}/011_project_to_section.rb +0 -0
  112. data/db/{migrate → fix/old_migrations}/012_add_project_id.rb +0 -0
  113. data/db/{migrate → fix/old_migrations}/013_remove_defaults.rb +0 -0
  114. data/db/{migrate → fix/old_migrations}/014_add_sort_field.rb +0 -0
  115. data/db/{migrate → fix/old_migrations}/015_add_dyn_attributes.rb +0 -0
  116. data/db/{migrate → fix/old_migrations}/016_remove_translations.rb +0 -0
  117. data/db/{migrate → fix/old_migrations}/017_rename_authorize.rb +0 -0
  118. data/db/{migrate → fix/old_migrations}/018_add_auth_option.rb +0 -0
  119. data/db/{migrate → fix/old_migrations}/019_remove_user_status.rb +0 -0
  120. data/db/{migrate → fix/old_migrations}/020_create_participation.rb +0 -0
  121. data/db/{migrate → fix/old_migrations}/021_create_relations.rb +0 -0
  122. data/db/{migrate → fix/old_migrations}/022_create_virtual_classes.rb +0 -0
  123. data/db/{migrate → fix/old_migrations}/023_ip_on_anonymous_comment.rb +0 -0
  124. data/db/{migrate → fix/old_migrations}/027_add_country_to_contacts.rb +0 -0
  125. data/db/{migrate → fix/old_migrations}/028_change_size_of_conten_type_field.rb +0 -0
  126. data/db/{migrate → fix/old_migrations}/029_create_data_entries.rb +0 -0
  127. data/db/{migrate → fix/old_migrations}/030_redit_auto_publish_site_settings.rb +0 -0
  128. data/db/{migrate → fix/old_migrations}/031_create_iformats.rb +0 -0
  129. data/db/{migrate → fix/old_migrations}/032_caches_context_as_hash.rb +0 -0
  130. data/db/{migrate → fix/old_migrations}/033_documents_kpath_change.rb +0 -0
  131. data/db/{migrate → fix/old_migrations}/034_change_file_storage.rb +0 -0
  132. data/db/{migrate → fix/old_migrations}/035_add_status_to_link.rb +0 -0
  133. data/db/{migrate → fix/old_migrations}/036_add_flag_fields_on_nodes.rb +0 -0
  134. data/db/{migrate → fix/old_migrations}/037_add_auto_create_discussion_to_v_class.rb +0 -0
  135. data/db/{migrate → fix/old_migrations}/038_create_site_attributes.rb +0 -0
  136. data/db/{migrate → fix/old_migrations}/039_default_position.rb +0 -0
  137. data/db/{migrate → fix/old_migrations}/040_second_value_for_data_entry.rb +0 -0
  138. data/db/{migrate → fix/old_migrations}/041_add_attributes_to_v_class.rb +0 -0
  139. data/db/{migrate → fix/old_migrations}/042_fix_position_should_be_float.rb +0 -0
  140. data/db/{migrate → fix/old_migrations}/043_move_user_lang_into_participation.rb +0 -0
  141. data/db/{migrate → fix/old_migrations}/044_remove_monolingual_site_option.rb +0 -0
  142. data/db/{migrate → fix/old_migrations}/048_link_source_target_can_be_null.rb +0 -0
  143. data/db/{migrate → fix/old_migrations}/050_date_in_links.rb +0 -0
  144. data/db/{migrate → fix/old_migrations}/051_add_exif_tags_to_images.rb +0 -0
  145. data/db/{migrate → fix/old_migrations}/20090825201159_insert_zero_link.rb +0 -0
  146. data/db/{migrate → fix/old_migrations}/20090825201200_merge_bricks_migrations_with_std_migrations.rb +0 -0
  147. data/db/{migrate → fix/old_migrations}/20090927125912_allow_null_in_text_fields.rb +0 -0
  148. data/db/{migrate → fix/old_migrations}/20090928133440_no_more_private_nodes.rb +0 -0
  149. data/db/{migrate → fix/old_migrations}/20090928143754_version_status_change.rb +0 -0
  150. data/db/{migrate → fix/old_migrations}/20091001084025_change_status_values_for_comments.rb +0 -0
  151. data/db/{migrate → fix/old_migrations}/20091009084057_add_vhash_in_node.rb +0 -0
  152. data/db/{migrate → fix/old_migrations}/20091014130833_fix_template_title.rb +0 -0
  153. data/db/{migrate → fix/old_migrations}/20091014183726_merge_participation_into_users.rb +0 -0
  154. data/db/{migrate → fix/old_migrations}/20091018200734_add_popup_info_to_image_format.rb +0 -0
  155. data/db/{migrate → fix/old_migrations}/20091026161708_add_persistence_token.rb +0 -0
  156. data/db/{migrate → fix/old_migrations}/20091101184952_add_session_table.rb +0 -0
  157. data/db/{migrate → fix/old_migrations}/20091123175137_add_single_access_token.rb +0 -0
  158. data/db/{migrate → fix/old_migrations}/20100125062254_add_dynamo_to_version.rb +0 -0
  159. data/db/{migrate → fix/old_migrations}/20100201133242_remove_default_status_on_version.rb +0 -0
  160. data/db/{migrate → fix/old_migrations}/20100208194210_create_attachments.rb +0 -0
  161. data/db/{migrate → fix/old_migrations}/20100210112319_change_dynamo_to_property.rb +0 -0
  162. data/db/{migrate → fix/old_migrations}/20100320145726_transform_template_contents_into_index.rb +0 -0
  163. data/db/{migrate → fix/old_migrations}/20100328125634_change_skin_name_to_id.rb +0 -0
  164. data/db/{migrate → fix/old_migrations}/20100417061257_add_properties_to_sites.rb +0 -0
  165. data/db/{migrate → fix/old_migrations}/20100419163149_rename_name_to_node_name.rb +0 -0
  166. data/db/{migrate → fix/old_migrations}/20100422091606_change_v_class_table_into_roles.rb +0 -0
  167. data/db/{migrate → fix/old_migrations}/20100422094048_node_habtm_roles.rb +0 -0
  168. data/db/{migrate → fix/old_migrations}/20100422115935_create_columns.rb +0 -0
  169. data/db/{migrate → fix/old_migrations}/20100513181529_add_site_id_to_columns.rb +0 -0
  170. data/db/{migrate → fix/old_migrations}/20100519091711_add_index_definition_to_columns.rb +0 -0
  171. data/db/{migrate → fix/old_migrations}/20100519091940_create_idx_nodes_string.rb +0 -0
  172. data/db/{migrate → fix/old_migrations}/20100519232432_create_idx_nodes_ml_string.rb +0 -0
  173. data/db/{migrate → fix/old_migrations}/20100525113858_add_porperties_to_users.rb +0 -0
  174. data/db/{migrate → fix/old_migrations}/20100527130937_change_column_index_to_string.rb +0 -0
  175. data/db/{migrate → fix/old_migrations}/20100531135128_add_fulltext_builder_fields.rb +0 -0
  176. data/db/{migrate → fix/old_migrations}/20100915062903_add_api_group_id_to_site.rb +0 -0
  177. data/db/fix/old_migrations/20100923154807_remove_base_contact.rb +84 -0
  178. data/db/fix/old_migrations/20100926192223_remove_su_user.rb +8 -0
  179. data/db/fix/old_migrations/20100927141658_add_eval_attributes_to_v_class.rb +12 -0
  180. data/db/fix/old_migrations/20100928185257_add_obvious_idx.rb +52 -0
  181. data/db/fix/old_migrations/20100929143111_remove_node_name.rb +11 -0
  182. data/db/fix/old_migrations/20101006090454_store_properties_in_long_text.rb +9 -0
  183. data/db/fix/old_migrations/20101014185753_remove_user_prototype_id.rb +9 -0
  184. data/db/fix/old_migrations/20101101084318_create_scope_index.rb +35 -0
  185. data/db/fix/old_migrations/20101109074232_create_idx_nodes_tables.rb +65 -0
  186. data/db/fix/old_migrations/20101110184235_add_role_update_to_site.rb +9 -0
  187. data/db/fix/old_migrations/20101116103920_change_scope_index.rb +31 -0
  188. data/db/fix/old_migrations/20101123125822_add_integer_idx.rb +17 -0
  189. data/db/fix/old_migrations/20101130134522_add_index_field.rb +13 -0
  190. data/db/fix/old_migrations/20101213133816_add_group_to_relation.rb +9 -0
  191. data/db/init/base/help.fr.zml +1 -1
  192. data/db/init/base/skins/default.zml +0 -1
  193. data/db/init/base/skins/default/Node-+search.zafu +1 -1
  194. data/db/init/base/skins/default/Node-tree.zafu +3 -3
  195. data/db/init/base/skins/default/Node.zafu +3 -3
  196. data/lib/bricks/loader.rb +4 -1
  197. data/lib/bricks/requirements_validation.rb +11 -6
  198. data/lib/log_recorder/lib/log_recorder.rb +2 -2
  199. data/lib/tasks/zena.rake +25 -15
  200. data/lib/zena.rb +42 -9
  201. data/lib/zena/acts/enrollable.rb +81 -99
  202. data/lib/zena/acts/secure.rb +27 -23
  203. data/lib/zena/acts/secure_node.rb +10 -55
  204. data/lib/zena/acts/serializable.rb +9 -10
  205. data/lib/zena/app.rb +0 -2
  206. data/lib/zena/code_syntax.rb +1 -1
  207. data/lib/zena/controller/test_case.rb +0 -5
  208. data/lib/zena/core_ext/string.rb +48 -20
  209. data/lib/zena/db.rb +10 -442
  210. data/lib/zena/db_helper/abstract_db.rb +184 -0
  211. data/lib/zena/db_helper/mysql.rb +150 -0
  212. data/lib/zena/db_helper/postgresql.rb +79 -0
  213. data/lib/zena/db_helper/sqlite3.rb +135 -0
  214. data/lib/zena/deploy.rb +4 -1
  215. data/lib/zena/deploy/httpd.rhtml +3 -3
  216. data/lib/zena/deploy/vhost.rhtml +1 -1
  217. data/lib/zena/foxy_parser.rb +37 -18
  218. data/lib/zena/info.rb +3 -13
  219. data/lib/zena/migrator.rb +0 -1
  220. data/lib/zena/parser/zafu_rules.rb +9 -4
  221. data/lib/zena/parser/zazen_rules.rb +5 -5
  222. data/lib/zena/parser/zena_rules.rb +1 -1
  223. data/lib/zena/remote/interface.rb +1 -1
  224. data/lib/zena/site_worker.rb +3 -3
  225. data/lib/zena/test_controller.rb +10 -10
  226. data/lib/zena/use/action.rb +66 -6
  227. data/lib/zena/use/ajax.rb +39 -13
  228. data/lib/zena/use/ancestry.rb +210 -0
  229. data/lib/zena/use/authlogic.rb +30 -1
  230. data/lib/zena/use/calendar.rb +158 -0
  231. data/lib/zena/use/conditional.rb +3 -2
  232. data/lib/zena/use/context.rb +42 -12
  233. data/lib/zena/use/dates.rb +15 -14
  234. data/lib/zena/use/display.rb +54 -7
  235. data/lib/zena/use/error_rendering.rb +1 -0
  236. data/lib/zena/use/field_index.rb +20 -0
  237. data/lib/zena/use/fixtures.rb +12 -9
  238. data/lib/zena/use/forms.rb +230 -106
  239. data/lib/zena/use/fulltext.rb +28 -14
  240. data/lib/zena/use/html_tags.rb +1 -24
  241. data/lib/zena/use/i18n.rb +69 -14
  242. data/lib/zena/use/kpath.rb +60 -0
  243. data/lib/zena/use/ml_index.rb +6 -4
  244. data/lib/zena/use/node_context.rb +63 -0
  245. data/lib/zena/use/prop_eval.rb +90 -0
  246. data/lib/zena/use/query_builder.rb +159 -29
  247. data/lib/zena/use/query_comment.rb +1 -1
  248. data/lib/zena/use/query_node.rb +147 -56
  249. data/lib/zena/use/recursion.rb +2 -2
  250. data/lib/zena/use/relations.rb +31 -19
  251. data/lib/zena/use/rendering.rb +111 -121
  252. data/lib/zena/use/scope_index.rb +230 -0
  253. data/lib/zena/use/search.rb +7 -7
  254. data/lib/zena/use/urls.rb +87 -25
  255. data/lib/zena/use/version_hash.rb +113 -113
  256. data/lib/zena/use/workflow.rb +5 -1
  257. data/lib/zena/use/zafu_attributes.rb +11 -14
  258. data/lib/zena/use/zafu_eval.rb +1 -1
  259. data/lib/zena/use/zafu_safe_definitions.rb +91 -9
  260. data/lib/zena/use/zafu_templates.rb +146 -102
  261. data/lib/zena/use/zazen.rb +5 -4
  262. data/lib/zena/zafu_compiler.rb +1 -0
  263. data/locale/en/LC_MESSAGES/zena.mo +0 -0
  264. data/locale/en/zena.po +0 -1
  265. data/locale/fr/LC_MESSAGES/zena.mo +0 -0
  266. data/locale/fr/zena.mo +0 -0
  267. data/locale/fr/zena.po +4 -4
  268. data/misc/zena +35 -0
  269. data/misc/zena_init +41 -0
  270. data/public/images/ext/{basecontact.png → contact.png} +0 -0
  271. data/public/javascripts/zena.js +35 -7
  272. data/public/stylesheets/admin.css +5 -2
  273. data/public/stylesheets/default.css +2 -1
  274. data/public/stylesheets/popup.css +1 -1
  275. data/public/stylesheets/zena.css +2 -2
  276. data/test/custom_queries/complex.host.yml +12 -5
  277. data/test/fixtures/files/Node-test.zafu +3 -3
  278. data/test/fixtures/files/translations_fr.yml +4 -2
  279. data/test/functional/documents_controller_test.rb +31 -0
  280. data/test/functional/nodes_controller_commit_test.rb +1 -5
  281. data/test/functional/nodes_controller_test.rb +92 -12
  282. data/test/functional/user_sessions_controller_test.rb +2 -2
  283. data/test/functional/users_controller_test.rb +31 -29
  284. data/test/functional/versions_controller_test.rb +2 -2
  285. data/test/functional/virtual_classes_controller_test.rb +2 -2
  286. data/test/integration/multiple_hosts_test.rb +19 -8
  287. data/test/integration/navigation_test.rb +91 -12
  288. data/test/integration/query_node/basic.yml +40 -37
  289. data/test/integration/query_node/complex.yml +23 -18
  290. data/test/integration/query_node/dates.yml +3 -3
  291. data/test/integration/query_node/errors.yml +7 -1
  292. data/test/integration/query_node/filters.yml +41 -35
  293. data/test/integration/query_node/idx_fields.yml +11 -0
  294. data/test/integration/query_node/idx_key_value.yml +77 -0
  295. data/test/integration/query_node/idx_scope.yml +33 -0
  296. data/test/integration/query_node/relations.yml +13 -13
  297. data/test/integration/query_node_test.rb +6 -10
  298. data/test/integration/zafu_compiler/action.yml +19 -6
  299. data/test/integration/zafu_compiler/ajax.yml +111 -51
  300. data/test/integration/zafu_compiler/apphelper.yml +1 -1
  301. data/test/integration/zafu_compiler/asset.yml +1 -1
  302. data/test/integration/zafu_compiler/basic.yml +42 -52
  303. data/test/integration/zafu_compiler/calendar.yml +3 -3
  304. data/test/integration/zafu_compiler/complex.yml +16 -16
  305. data/test/integration/zafu_compiler/complex_ok.yml +2 -2
  306. data/test/integration/zafu_compiler/conditional.yml +42 -33
  307. data/test/integration/zafu_compiler/data.yml +3 -3
  308. data/test/integration/zafu_compiler/dates.yml +25 -10
  309. data/test/integration/zafu_compiler/display.yml +49 -12
  310. data/test/integration/zafu_compiler/errors.yml +26 -6
  311. data/test/integration/zafu_compiler/eval.yml +4 -4
  312. data/test/integration/zafu_compiler/forms.yml +89 -15
  313. data/test/integration/zafu_compiler/i18n.yml +23 -18
  314. data/test/integration/zafu_compiler/idx_scope.yml +7 -0
  315. data/test/integration/zafu_compiler/later.yml +10 -16
  316. data/test/integration/zafu_compiler/off/off.yml +2 -2
  317. data/test/integration/zafu_compiler/query.yml +207 -0
  318. data/test/integration/zafu_compiler/recursion.yml +2 -2
  319. data/test/integration/zafu_compiler/relations.yml +144 -168
  320. data/test/integration/zafu_compiler/roles.yml +86 -10
  321. data/test/integration/zafu_compiler/rubyless.yml +49 -6
  322. data/test/integration/zafu_compiler/safe_definitions.yml +35 -6
  323. data/test/integration/zafu_compiler/search.yml +1 -1
  324. data/test/integration/zafu_compiler/security.yml +37 -0
  325. data/test/integration/zafu_compiler/urls.yml +50 -40
  326. data/test/integration/zafu_compiler/user.yml +21 -6
  327. data/test/integration/zafu_compiler/version.yml +6 -6
  328. data/test/integration/zafu_compiler/zafu_attributes.yml +43 -34
  329. data/test/integration/zafu_compiler/zazen.yml +10 -10
  330. data/test/integration/zafu_compiler_test.rb +19 -13
  331. data/test/sites/complex/nodes.yml +0 -2
  332. data/test/sites/complex/roles.yml +9 -1
  333. data/test/sites/complex/sites.yml +0 -1
  334. data/test/sites/complex/users.yml +2 -5
  335. data/test/sites/ocean/nodes.yml +2 -5
  336. data/test/sites/ocean/roles.yml +8 -0
  337. data/test/sites/ocean/sites.yml +0 -1
  338. data/test/sites/ocean/users.yml +0 -13
  339. data/test/sites/zena/columns.yml +27 -5
  340. data/test/sites/zena/idx_projects.yml +5 -0
  341. data/test/sites/zena/nodes.yml +8 -32
  342. data/test/sites/zena/relations.yml +5 -0
  343. data/test/sites/zena/roles.yml +25 -3
  344. data/test/sites/zena/sites.yml +2 -2
  345. data/test/sites/zena/users.yml +1 -21
  346. data/test/sites/zena/versions.yml +35 -12
  347. data/test/test_helper.rb +7 -0
  348. data/test/unit/after_commit_test.rb +7 -7
  349. data/test/unit/cache_test.rb +32 -0
  350. data/test/unit/cached_page_test.rb +1 -1
  351. data/test/unit/column_test.rb +31 -7
  352. data/test/unit/comment_test.rb +2 -2
  353. data/test/unit/core_ext_test.rb +38 -7
  354. data/test/unit/document_test.rb +14 -42
  355. data/test/unit/node_test.rb +311 -324
  356. data/test/unit/note_test.rb +23 -31
  357. data/test/unit/page_test.rb +16 -58
  358. data/test/unit/project_test.rb +2 -2
  359. data/test/unit/relation_proxy_test.rb +148 -21
  360. data/test/unit/relation_test.rb +23 -3
  361. data/test/unit/remote_test.rb +15 -9
  362. data/test/unit/role_test.rb +9 -0
  363. data/test/unit/site_test.rb +49 -47
  364. data/test/unit/skin_test.rb +16 -0
  365. data/test/unit/template_test.rb +60 -69
  366. data/test/unit/text_document_test.rb +15 -14
  367. data/test/unit/user_test.rb +101 -41
  368. data/test/unit/version_test.rb +4 -4
  369. data/test/unit/virtual_class_test.rb +577 -36
  370. data/test/unit/workflow_test.rb +58 -21
  371. data/test/unit/zena/acts/enrollable_test.rb +36 -127
  372. data/test/unit/zena/acts/secure_test.rb +6 -22
  373. data/test/unit/zena/acts/serializable_test.rb +18 -0
  374. data/test/unit/zena/db_test.rb +14 -14
  375. data/test/unit/zena/parser/zafu.yml +5 -3
  376. data/test/unit/zena/use/ancestry_test.rb +198 -0
  377. data/test/unit/zena/use/calendar_test.rb +8 -8
  378. data/test/unit/zena/use/dates_test.rb +2 -0
  379. data/test/unit/zena/use/fulltext_test.rb +9 -1
  380. data/test/unit/zena/use/html_tags_test.rb +2 -16
  381. data/test/unit/zena/use/i18n_test.rb +2 -2
  382. data/test/unit/zena/use/kpath_test.rb +13 -0
  383. data/test/unit/zena/use/ml_index_test.rb +60 -12
  384. data/test/unit/zena/use/prop_eval_test.rb +170 -0
  385. data/test/unit/zena/use/query_node_test.rb +9 -2
  386. data/test/unit/zena/use/rendering_test.rb +98 -1
  387. data/test/unit/zena/use/scope_index_test.rb +464 -0
  388. data/test/unit/zena/use/urls_test.rb +23 -13
  389. data/test/unit/zena/use/version_hash_test.rb +2 -2
  390. data/test/unit/zena/use/zafu_template_test.rb +21 -8
  391. data/test/unit/zena/use/zazen_test.rb +47 -47
  392. data/zena.gemspec +177 -143
  393. metadata +222 -141
  394. data/app/models/base_contact.rb +0 -79
  395. data/app/models/book.rb +0 -242
  396. data/app/models/contact_content.rb +0 -70
  397. data/app/models/contact_version.rb +0 -40
  398. data/app/models/reference.rb +0 -18
  399. data/app/views/templates/edit_tabs/_basecontact.rhtml +0 -8
  400. data/bricks/data2pdf/README +0 -19
  401. data/bricks/data2pdf/VERSION +0 -1
  402. data/bricks/data2pdf/lib/data2pdf.rb +0 -60
  403. data/bricks/data2pdf/lib/engines/prince.rb +0 -39
  404. data/bricks/data2pdf/lib/engines/xhtml2pdf.rb +0 -41
  405. data/bricks/data2pdf/lib/install.rb +0 -111
  406. data/bricks/data2pdf/test/engines/test_prince.rb +0 -14
  407. data/bricks/data2pdf/test/engines/test_xhtml2pdf.rb +0 -14
  408. data/bricks/data2pdf/test/shoulda_macros/shoulda_data2pdf.rb +0 -91
  409. data/bricks/data2pdf/test/unit/test_rendering.rb +0 -37
  410. data/config/routes.rb +0 -3
  411. data/db/migrate/010_create_template_content.rb +0 -17
  412. data/db/migrate/024_correct_vclass_kpath.rb +0 -13
  413. data/db/migrate/025_move_tag_into_vclass.rb +0 -15
  414. data/lib/version_off.rb +0 -323
  415. data/lib/zena/use/node_name.rb +0 -94
  416. data/test/integration/query_node/properties.yml +0 -41
  417. data/test/unit/base_contact_test.rb +0 -242
  418. data/test/unit/node_name_test.rb +0 -137
@@ -3,6 +3,8 @@ require 'test_helper'
3
3
  class UrlsTest < Zena::View::TestCase
4
4
  include Zena::Use::Urls::ViewMethods
5
5
 
6
+ attr_reader :params
7
+
6
8
  def test_zen_path
7
9
  login(:ant)
8
10
  node = secure!(Node) { nodes(:zena) }
@@ -18,11 +20,19 @@ class UrlsTest < Zena::View::TestCase
18
20
  assert_equal '/en/section12_test.html', zen_path(node, :mode=>'test')
19
21
  assert_match %r{/tt/section12_test.jpg}, zen_path(node, :mode=>'test', :prefix=>'tt', :format=>'jpg')
20
22
  node = secure!(Node) { nodes(:cleanWater) }
21
- assert_equal '/en/projects/cleanWater', zen_path(node)
22
- assert_equal '/en/projects/cleanWater_test', zen_path(node, :mode=>'test')
23
+ assert_equal '/en/projects-list/Clean-Water-project', zen_path(node)
24
+ assert_equal '/en/projects-list/Clean-Water-project_test', zen_path(node, :mode=>'test')
25
+ node = secure!(Node) { nodes(:status) }
26
+ assert_equal '/en/projects-list/Clean-Water-project/page22.html', zen_path(node)
27
+ assert_equal '/en/projects-list/Clean-Water-project/page22_test.html', zen_path(node, :mode=>'test')
28
+ end
29
+
30
+ def test_zen_path_query_params
31
+ login(:anon)
23
32
  node = secure!(Node) { nodes(:status) }
24
- assert_equal '/en/projects/cleanWater/page22.html', zen_path(node)
25
- assert_equal '/en/projects/cleanWater/page22_test.html', zen_path(node, :mode=>'test')
33
+ assert_equal '/en/projects-list/Clean-Water-project/page22.html?p=5', zen_path(node, :p => 5)
34
+ @params = {'p' => 'Pepe', 'a' => {'b' => 'Bee'}}
35
+ assert_equal '/en/projects-list/Clean-Water-project/page22.html?a%5Bb%5D=Bee&p=Pepe', zen_path(node, :encode_params => 'p,a')
26
36
  end
27
37
 
28
38
  def test_zen_path_cache_stamp
@@ -36,7 +46,7 @@ class UrlsTest < Zena::View::TestCase
36
46
 
37
47
  login(:anon)
38
48
  node = secure!(Node) { nodes(:cleanWater) }
39
- assert_equal '/en/projects/cleanWater.jpg', zen_path(node, :format => 'jpg')
49
+ assert_equal '/en/projects-list/Clean-Water-project.jpg', zen_path(node, :format => 'jpg')
40
50
  end
41
51
 
42
52
  def test_make_cachestamp
@@ -84,9 +94,9 @@ class UrlsTest < Zena::View::TestCase
84
94
  assert_equal "/en/section12.kls.html", zen_path(node, :asset=>'kls')
85
95
  assert_equal "/tt/section12.foo.jpg?1144713600", zen_path(node, :mode=>'test', :prefix=>'tt', :format=>'jpg', :asset => 'foo')
86
96
  node = secure!(Node) { nodes(:cleanWater) }
87
- assert_equal "/en/projects/cleanWater.kls", zen_path(node, :asset => 'kls')
97
+ assert_equal "/en/projects-list/Clean-Water-project.kls", zen_path(node, :asset => 'kls')
88
98
  node = secure!(Node) { nodes(:status) }
89
- assert_equal "/en/projects/cleanWater/page22.abcd.png?1144713600", zen_path(node, :asset => 'abcd', :format => 'png')
99
+ assert_equal "/en/projects-list/Clean-Water-project/page22.abcd.png?1144713600", zen_path(node, :asset => 'abcd', :format => 'png')
90
100
  end
91
101
 
92
102
  def test_zen_url
@@ -99,15 +109,15 @@ class UrlsTest < Zena::View::TestCase
99
109
  def test_data_path_for_public_documents
100
110
  login(:ant)
101
111
  node = secure!(Node) { nodes(:water_pdf) }
102
- assert_equal "/en/projects/cleanWater/document25.pdf", data_path(node)
112
+ assert_equal "/en/projects-list/Clean-Water-project/document25.pdf", data_path(node)
103
113
  node = secure!(Node) { nodes(:status) }
104
- assert_equal "/oo/projects/cleanWater/page22.html", data_path(node)
114
+ assert_equal "/oo/projects-list/Clean-Water-project/page22.html", data_path(node)
105
115
 
106
116
  login(:anon)
107
117
  node = secure!(Node) { nodes(:water_pdf) }
108
- assert_equal "/en/projects/cleanWater/document25.pdf", data_path(node)
118
+ assert_equal "/en/projects-list/Clean-Water-project/document25.pdf", data_path(node)
109
119
  node = secure!(Node) { nodes(:status) }
110
- assert_equal "/en/projects/cleanWater/page22.html", data_path(node)
120
+ assert_equal "/en/projects-list/Clean-Water-project/page22.html", data_path(node)
111
121
  end
112
122
 
113
123
  def test_data_path_for_non_public_documents
@@ -115,9 +125,9 @@ class UrlsTest < Zena::View::TestCase
115
125
  node = secure!(Node) { nodes(:water_pdf) }
116
126
  assert node.update_attributes( :rgroup_id => groups_id(:workers), :inherit => 0 )
117
127
  assert !node.public?
118
- assert_equal "/oo/projects/cleanWater/document25.pdf", data_path(node)
128
+ assert_equal "/oo/projects-list/Clean-Water-project/document25.pdf", data_path(node)
119
129
  node = secure!(Node) { nodes(:status) }
120
- assert_equal "/oo/projects/cleanWater/page22.html", data_path(node)
130
+ assert_equal "/oo/projects-list/Clean-Water-project/page22.html", data_path(node)
121
131
 
122
132
  login(:anon)
123
133
  assert_raise(ActiveRecord::RecordNotFound) { secure!(Node) { nodes(:water_pdf) } }
@@ -41,7 +41,7 @@ class VersionHashTest < Zena::Unit::TestCase
41
41
  setup do
42
42
  login(:tiger)
43
43
  visitor.lang = 'de'
44
- @attributes = {'title' => 'Tigris Tigris'}
44
+ @attributes = {'name' => 'Tigris'}
45
45
  end
46
46
 
47
47
  subject do
@@ -66,7 +66,7 @@ class VersionHashTest < Zena::Unit::TestCase
66
66
 
67
67
  context 'with auto publish' do
68
68
  setup do
69
- @attributes = {'title' => 'Tigris Tigris', :v_status => Zena::Status[:pub]}
69
+ @attributes = {'name' => 'Tigris Tigris', :v_status => Zena::Status[:pub]}
70
70
  end
71
71
 
72
72
  should 'set a readers and writers entry for the current lang' do
@@ -10,7 +10,8 @@ class ZafuTemplateTest < Zena::View::TestCase
10
10
 
11
11
  should 'receive page_numbers' do
12
12
  s = ""
13
- page_numbers(2, 3, ',') {|p,j| s << "#{j}#{p}"}
13
+ # page, join, display
14
+ page_numbers(2, 3, ',') {|p,j,d| s << "#{j}#{p}"}
14
15
  assert_equal "1,2,3", s
15
16
  s = ""
16
17
  page_numbers(2, 30, ',') {|p,j| s << "#{j}#{p}"}
@@ -19,8 +20,8 @@ class ZafuTemplateTest < Zena::View::TestCase
19
20
  page_numbers(14, 30, ',') {|p,j| s << "#{j}#{p}"}
20
21
  assert_equal "10,11,12,13,14,15,16,17,18,19", s
21
22
  s = ""
22
- page_numbers(28, 30, ' | ') {|p,j| s << "#{j}#{p}"}
23
- assert_equal "21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30", s
23
+ page_numbers(24, 30, ' | ', 6) {|p,j,d| s << "#{j}#{d}"}
24
+ assert_equal " | 23 | 24 | 25 | 26 | ", s
24
25
  end
25
26
  end # Without a logged in user
26
27
 
@@ -31,7 +32,7 @@ class ZafuTemplateTest < Zena::View::TestCase
31
32
  end
32
33
 
33
34
  should 'find best template based on class' do
34
- assert_match %r{default/Node}, @controller.send(:template_url)
35
+ assert_match %r{Default skin/Node}, @controller.send(:template_url)
35
36
  end
36
37
 
37
38
  context 'with an admin visitor' do
@@ -41,7 +42,7 @@ class ZafuTemplateTest < Zena::View::TestCase
41
42
 
42
43
  should 'use visitor chosen dev skin' do
43
44
  visitor.dev_skin_id = nodes_zip(:wikiSkin)
44
- assert_match %r{/wikiSkin/Node}, @controller.send(:template_url)
45
+ assert_match %r{/wiki skin/Node}, @controller.send(:template_url)
45
46
  end
46
47
 
47
48
  should 'use rescue skin' do
@@ -51,9 +52,9 @@ class ZafuTemplateTest < Zena::View::TestCase
51
52
 
52
53
  should 'use any skin' do
53
54
  visitor.dev_skin_id = User::ANY_SKIN_ID
54
- assert_match %r{/default/Node}, @controller.send(:template_url)
55
+ assert_match %r{/Default skin/Node}, @controller.send(:template_url)
55
56
  visiting(:wiki)
56
- assert_match %r{/wikiSkin/Node}, @controller.send(:template_url)
57
+ assert_match %r{/wiki skin/Node}, @controller.send(:template_url)
57
58
  end
58
59
 
59
60
  should 'not insert dev_box for non html content' do
@@ -74,9 +75,21 @@ class ZafuTemplateTest < Zena::View::TestCase
74
75
 
75
76
  should 'not use visitor skin mode' do
76
77
  visitor.dev_skin_id = nodes_zip(:wikiSkin)
77
- assert_match %r{/default/Node}, @controller.send(:template_url)
78
+ assert_match %r{/Default skin/Node}, @controller.send(:template_url)
78
79
  end
79
80
  end # without an admin visitor
81
+
82
+ context 'on get_template_text' do
83
+ should 'find template' do
84
+ assert_match %r{include template='Node'}, get_template_text('Project', nodes_id(:default)).first
85
+ end
86
+ end # on get_template_text
87
+
88
+ context 'on get_template_text with fullpath' do
89
+ should 'find template' do
90
+ assert_match %r{include template='Node'}, get_template_text('/Default skin/Project').first
91
+ end
92
+ end # on get_template_text
80
93
  #def test_template_url_virtual_class
81
94
  # without_files('zafu') do
82
95
  # node = @controller.send(:secure,Node) { nodes(:opening) }
@@ -17,9 +17,9 @@ class ZazenTest < Zena::View::TestCase
17
17
  end
18
18
 
19
19
  def test_image_title
20
- assert_match %r{<div class='img_with_title'><img[^>]*><div class='img_title'><p>blah <a href=.*projects/cleanWater.*Clean Water.*/a></p></div></div>},
20
+ assert_match %r{<div class='img_with_title'><img[^>]*><div class='img_title'><p>blah <a href=.*projects-list/Clean-Water-project.*Clean Water.*/a></p></div></div>},
21
21
  zazen("!30/blah \"\":21!")
22
- assert_match %r{<div class='img_with_title'><img.*class.*pv.*><div class='img_title'><p>blah <a href=.*projects/cleanWater.*Clean Water.*/a></p></div></div>},
22
+ assert_match %r{<div class='img_with_title'><img.*class.*pv.*><div class='img_title'><p>blah <a href=.*projects-list/Clean-Water-project.*Clean Water.*/a></p></div></div>},
23
23
  zazen("!30_pv/blah \"\":21!")
24
24
  assert_match %r{<div class='img_with_title'><img.*class.*std.*><div class='img_title'><p>Photo taken from.*</p></div></div>}, zazen("!30/!")
25
25
 
@@ -27,36 +27,36 @@ class ZazenTest < Zena::View::TestCase
27
27
 
28
28
  def test_make_link
29
29
  # * ["":34] creates a link to node 34 with node's title.
30
- assert_equal '<p><a href="/en/projects/cleanWater">Clean Water project</a></p>', zazen('"":21')
30
+ assert_equal '<p><a href="/en/projects-list/Clean-Water-project">Clean Water project</a></p>', zazen('"":21')
31
31
  # * ["title":34] creates a link to node 34 with the given title.
32
- assert_equal '<p><a href="/en/projects/cleanWater">hello</a></p>', zazen('"hello":21')
32
+ assert_equal '<p><a href="/en/projects-list/Clean-Water-project">hello</a></p>', zazen('"hello":21')
33
33
  # * ["":034] if the node id starts with '0', creates a popup link.
34
- assert_match %r{/en/projects/cleanWater.*window.open.*hello}, zazen('"hello":021')
34
+ assert_match %r{/en/projects-list/Clean-Water-project.*window.open.*hello}, zazen('"hello":021')
35
35
  end
36
36
 
37
37
  def test_make_link_sharp
38
38
  assert_equal '<p><a href="#node34">hello</a></p>', zazen('"hello":34#')
39
39
  assert_equal '<p><a href="#node34">hello</a></p>', zazen('"hello":34#[id]')
40
40
  assert_equal '<p><a href="#node34">hello</a></p>', zazen('"hello":34#[zip]')
41
- assert_equal '<p><a href="#news">hello</a></p>', zazen('"hello":34#[node_name]')
41
+ assert_equal '<p><a href="#News-list">hello</a></p>', zazen('"hello":34#[title]')
42
42
  # * ["":34#[parent/]] if the node id starts with '0', creates a popup link.
43
43
  assert_equal '<p><a href="/en/page32.html#node34">hello</a></p>', zazen('"hello":34#[parent/]')
44
44
  assert_equal '<p><a href="/en/page32.html#node34">hello</a></p>', zazen('"hello":34#[parent/id]')
45
45
  assert_equal '<p><a href="/en/page32.html#node34">hello</a></p>', zazen('"hello":34#[parent/zip]')
46
- assert_equal '<p><a href="/en/page32.html#news">hello</a></p>', zazen('"hello":34#[parent/node_name]')
46
+ assert_equal '<p><a href="/en/page32.html#News-list">hello</a></p>', zazen('"hello":34#[parent/title]')
47
47
  end
48
48
 
49
49
  def test_make_image
50
50
  # * [!24!] inline image 24. (default format is 'pv' defined in #ImageBuilder). Options are :
51
- assert_equal "<p><img src='/en/projects/cleanWater/image24_std.jpg?929831698949' width='545' height='400' alt='it&apos;s a lake' class='std'/></p>", zazen('!24!')
51
+ assert_equal "<p><img src='/en/projects-list/Clean-Water-project/image24_std.jpg?929831698949' width='545' height='400' alt='it&apos;s a lake' class='std'/></p>", zazen('!24!')
52
52
  # ** [!024!] inline image, default format, link to full image.
53
- assert_equal "<p><a class='popup' href='/en/projects/cleanWater/image24.jpg?1144713600' target='_blank'><img src='/en/projects/cleanWater/image24_std.jpg?929831698949' width='545' height='400' alt='it&apos;s a lake' class='std'/></a></p>", zazen('!024!')
53
+ assert_equal "<p><a class='popup' href='/en/projects-list/Clean-Water-project/image24.jpg?1144713600' target='_blank'><img src='/en/projects-list/Clean-Water-project/image24_std.jpg?929831698949' width='545' height='400' alt='it&apos;s a lake' class='std'/></a></p>", zazen('!024!')
54
54
  end
55
55
 
56
56
  def test_make_image_with_document
57
- assert_match %r{<p><a.*href=.*en/projects/cleanWater/document25\.pdf.*img src='/images/ext/pdf.png' width='32' height='32' alt='pdf document' class='doc'/></a></p>}, zazen('!25!')
58
- assert_match %r{<p><a.*href=.*en/projects/cleanWater/document25\.pdf.*img src='/images/ext/pdf.png' width='32' height='32' alt='pdf document' class='doc'/></a></p>}, zazen('!025!') # same as '!25!'
59
- assert_match %r{<p><a.*href=.*en/projects/cleanWater/document25\.pdf.*img src='/images/ext/pdf_pv.png' width='70' height='70' alt='pdf document' class='doc'/></a></p>}, zazen('!25_pv!')
57
+ assert_match %r{<p><a.*href=.*en/projects-list/Clean-Water-project/document25\.pdf.*img src='/images/ext/pdf.png' width='32' height='32' alt='pdf document' class='doc'/></a></p>}, zazen('!25!')
58
+ assert_match %r{<p><a.*href=.*en/projects-list/Clean-Water-project/document25\.pdf.*img src='/images/ext/pdf.png' width='32' height='32' alt='pdf document' class='doc'/></a></p>}, zazen('!025!') # same as '!25!'
59
+ assert_match %r{<p><a.*href=.*en/projects-list/Clean-Water-project/document25\.pdf.*img src='/images/ext/pdf_pv.png' width='70' height='70' alt='pdf document' class='doc'/></a></p>}, zazen('!25_pv!')
60
60
  end
61
61
 
62
62
  def test_make_bad_image
@@ -65,26 +65,26 @@ class ZazenTest < Zena::View::TestCase
65
65
 
66
66
  def test_make_image_align
67
67
  # ** [!<.24!] or [!<24!] inline image surrounded with <p class='float_left'></p>
68
- assert_match %r{class='img_left'.*img.*/en/projects/cleanWater/image24_std.jpg.*class='std'}, zazen('!<.24!')
69
- assert_match %r{class='img_left'.*img.*/en/projects/cleanWater/image24_std.jpg.*class='std'}, zazen('!<24!')
68
+ assert_match %r{class='img_left'.*img.*/en/projects-list/Clean-Water-project/image24_std.jpg.*class='std'}, zazen('!<.24!')
69
+ assert_match %r{class='img_left'.*img.*/en/projects-list/Clean-Water-project/image24_std.jpg.*class='std'}, zazen('!<24!')
70
70
  # ** [!>.24!] inline image surrounded with <p class='float_right'></p>
71
- assert_match %r{class='img_right'.*img.*/en/projects/cleanWater/image24_std.jpg.*class='std'}, zazen('!>.24!')
72
- assert_match %r{class='img_right'.*img.*/en/projects/cleanWater/image24_std.jpg.*class='std'}, zazen('!>24!')
71
+ assert_match %r{class='img_right'.*img.*/en/projects-list/Clean-Water-project/image24_std.jpg.*class='std'}, zazen('!>.24!')
72
+ assert_match %r{class='img_right'.*img.*/en/projects-list/Clean-Water-project/image24_std.jpg.*class='std'}, zazen('!>24!')
73
73
  # ** [!=.24!] inline image with <p class='center'></p>
74
- assert_match %r{class='img_center'.*img.*/en/projects/cleanWater/image24_std.jpg.*class='std'}, zazen('!=.24!')
75
- assert_match %r{class='img_center'.*img.*/en/projects/cleanWater/image24_std.jpg.*class='std'}, zazen('!=24!')
74
+ assert_match %r{class='img_center'.*img.*/en/projects-list/Clean-Water-project/image24_std.jpg.*class='std'}, zazen('!=.24!')
75
+ assert_match %r{class='img_center'.*img.*/en/projects-list/Clean-Water-project/image24_std.jpg.*class='std'}, zazen('!=24!')
76
76
  end
77
77
 
78
78
  def test_make_iformat
79
79
  # ** [!24_pv!] inline image transformed to format 'pv'. Formats are defined in #ImageBuilder.
80
- assert_match %r{.*img.*/en/projects/cleanWater/image24.jpg.*600.*440.*class='full'}, zazen('!24_full!')
81
- assert_match %r{.*img.*/en/projects/cleanWater/image24_tiny.jpg.*16.*16.*class='tiny'}, zazen('!24_tiny!')
80
+ assert_match %r{.*img.*/en/projects-list/Clean-Water-project/image24.jpg.*600.*440.*class='full'}, zazen('!24_full!')
81
+ assert_match %r{.*img.*/en/projects-list/Clean-Water-project/image24_tiny.jpg.*16.*16.*class='tiny'}, zazen('!24_tiny!')
82
82
  end
83
83
 
84
84
  def test_all_options
85
85
  # ** all the options above can be used together as in [!>.26.std!] : inline image on the right, size 'med'.
86
- assert_match %r{class='img_right'.*img.*/en/projects/cleanWater/image24_mini.jpg.*32.*32.*class='mini'}, zazen('!>24_mini!')
87
- assert_match %r{class='img_right'.*img.*/en/projects/cleanWater/image24_mini.jpg.*32.*32.*class='mini'}, zazen('!>.24_mini!')
86
+ assert_match %r{class='img_right'.*img.*/en/projects-list/Clean-Water-project/image24_mini.jpg.*32.*32.*class='mini'}, zazen('!>24_mini!')
87
+ assert_match %r{class='img_right'.*img.*/en/projects-list/Clean-Water-project/image24_mini.jpg.*32.*32.*class='mini'}, zazen('!>.24_mini!')
88
88
  end
89
89
 
90
90
  def test_make_gallery
@@ -117,13 +117,13 @@ class ZazenTest < Zena::View::TestCase
117
117
 
118
118
  def test_image_as_link
119
119
  # * [!26!:37] you can use an image as the source for a link
120
- assert_zazen_match "p a[@href='/en/projects/cleanWater'] img.std[@src='/en/image30_std.jpg?929831698949'][@width='440'][@height='400']", '!30!:21'
120
+ assert_zazen_match "p a[@href='/en/projects-list/Clean-Water-project'] img.std[@src='/en/image30_std.jpg?929831698949'][@width='440'][@height='400']", '!30!:21'
121
121
  # * [!26!:www.example.com] use an image for an outgoing link
122
122
  assert_zazen_match "p a[@href='http://www.example.com'] img.std[@src='/en/image30_std.jpg?929831698949']", '!30!:http://www.example.com'
123
123
  end
124
124
 
125
125
  def test_full
126
- assert_zazen_match "div.img_left a[@href='/en/projects/cleanWater'][@onclick*=window.open] img.std[@src='/en/projects/cleanWater/image24_std.jpg?929831698949'][@width='545'][@height='400'][@alt*=lake]", '!<.24_3!:021'
126
+ assert_zazen_match "div.img_left a[@href='/en/projects-list/Clean-Water-project'][@onclick*=window.open] img.std[@src='/en/projects-list/Clean-Water-project/image24_std.jpg?929831698949'][@width='545'][@height='400'][@alt*=lake]", '!<.24_3!:021'
127
127
  end
128
128
 
129
129
  def test_empty_image_ref
@@ -137,8 +137,8 @@ class ZazenTest < Zena::View::TestCase
137
137
  end
138
138
 
139
139
  def test_pseudo_id
140
- assert_zazen_match "a[@href='/en/basecontact15.html'][text()='people/lion']", 'This is a "link"::lio.'
141
- assert_zazen_match "a[@href='/en/image30_pv.jpg?967816914293'][text()='projects/wiki/bird_pv.jpg']", 'This is a "link"::bir_pv.data.'
140
+ assert_zazen_match "a[@href='/en/contact15.html'][text()='people/Panthera Leo Verneyi']", 'This is a "link"::lio.'
141
+ assert_zazen_match "a[@href='/en/image30_pv.jpg?967816914293'][text()='projects list/a wiki with Zena/bird_pv.jpg']", 'This is a "link"::bir_pv.data.'
142
142
  end
143
143
 
144
144
  context 'An absolute pseudo path' do
@@ -147,21 +147,21 @@ class ZazenTest < Zena::View::TestCase
147
147
  end
148
148
 
149
149
  subject do
150
- '(/projects/wiki/bird)'
150
+ '(/projects list/a wiki with Zena/bird)'
151
151
  end
152
152
 
153
153
  should 'resolve as link without using the current node' do
154
- assert_equal '<p>Read <a href="/en/image30.html">projects/wiki/bird</a></p>', zazen(%Q{Read "":#{subject}})
154
+ assert_equal '<p>Read <a href="/en/image30.html">projects list/a wiki with Zena/bird</a></p>', zazen(%Q{Read "":#{subject}})
155
155
  end
156
156
 
157
157
  should 'resolve as image without using the current node' do
158
- assert_match %Q{img[@src='/en/image30_std.jpg?929831698949]}, zazen(%Q{See !#{subject}!})
158
+ assert_match %Q{img[@src='/en/image30_std.jpg?929831698949']}, zazen(%Q{See !#{subject}!})
159
159
  end
160
160
 
161
161
 
162
162
  context 'with mode' do
163
163
  subject do
164
- '(/projects/wiki/bird)_side'
164
+ '(/projects list/a wiki with Zena/bird)_side'
165
165
  end
166
166
 
167
167
  should 'resolve with mode in image tag' do
@@ -177,7 +177,7 @@ class ZazenTest < Zena::View::TestCase
177
177
  end
178
178
 
179
179
  should 'resolve with mode as link and image tag' do
180
- assert_equal "<p>See <a href=\"/en/image30_side.html\"><img src='/en/image30_side.jpg?100321116926' width='220' height='500' alt='bird' class='side'/></a></p>", zazen(%Q{See !:#{subject}!:#{subject}})
180
+ assert_equal "<p>See <a href=\"/en/image30_side.html\"><img src='/en/image30_side.jpg?100321116926' width='220' height='500' alt='bird' class='side'/></a></p>", zazen(%Q{See !#{subject}!:#{subject}})
181
181
  end
182
182
  end
183
183
  end # An absolute pseudo path
@@ -188,32 +188,32 @@ class ZazenTest < Zena::View::TestCase
188
188
  end
189
189
 
190
190
  subject do
191
- '(status)'
191
+ '(status title)'
192
192
  end
193
193
 
194
194
  context 'with different current nodes' do
195
195
  setup do
196
- lion = secure!(Node) { nodes(:lion) }
197
- lion.update_attributes(:title => 'status', :v_status => Zena::Status[:pub])
198
- @people = secure!(Node) { nodes(:people) }
199
- @cleanWater = secure!(Node) { nodes(:cleanWater) }
196
+ art = secure!(Node) { nodes(:art) }
197
+ art.update_attributes(:title => 'status title', :v_status => Zena::Status[:pub])
198
+ @collections = secure!(Node) { nodes(:collections) }
199
+ @cleanWater = secure!(Node) { nodes(:cleanWater) }
200
200
  end
201
201
 
202
202
  should 'resolve with current node' do
203
203
  @node = @cleanWater
204
- assert_equal '<p>Read <a href="/oo/projects/cleanWater/page22.html">projects/cleanWater/status</a></p>', zazen(%Q{Read "":#{subject}})
205
- @node = @people
206
- assert_equal '<p>Read <a href="/oo/basecontact15.html">people/status</a></p>', zazen(%Q{Read "":#{subject}})
204
+ assert_equal '<p>Read <a href="/oo/projects-list/Clean-Water-project/page22.html">projects list/Clean Water project/status title</a></p>', zazen(%Q{Read "":#{subject}})
205
+ @node = @collections
206
+ assert_equal '<p>Read <a href="/oo/tag33.html">Collections/status title</a></p>', zazen(%Q{Read "":#{subject}})
207
207
  end
208
208
  end
209
209
  end # A relative pseudo path
210
210
 
211
211
  def test_pseudo_id_numbers_only
212
212
  login(:lion)
213
- lion = secure!(Node) { nodes(:lion) }
214
- assert lion.update_attributes(:title => '1234', :v_status => Zena::Status[:pub])
213
+ art = secure!(Node) { nodes(:art) }
214
+ assert art.update_attributes(:title => '1234', :v_status => Zena::Status[:pub])
215
215
  login(:anon)
216
- assert_equal '<p>This is a <a href="/en/basecontact15.html">people/1234</a>.</p>', zazen('This is a "link"::123.')
216
+ assert_equal '<p>This is a <a href="/en/tag33.html">Collections/1234</a>.</p>', zazen('This is a "link"::123.')
217
217
  end
218
218
 
219
219
  def test_bad_pseudo_path
@@ -229,16 +229,16 @@ class ZazenTest < Zena::View::TestCase
229
229
  projects = secure!(Node) { nodes(:projects) }
230
230
  zena = secure!(Node) { nodes(:zena) }
231
231
  assert_equal "This \"is\":33 \"a\":#{nodes_zip(:wiki)} !#{nodes_zip(:bird_jpg)}! \"link\":#{nodes_zip(:lion)}.",
232
- zazen('This "is":33 "a":(projects/wiki) !(projects/wiki/bird)! "link"::lio.', :translate_ids => :zip, :node => zena)
232
+ zazen('This "is":33 "a":(projects list/a wiki with Zena) !(projects list/a wiki with Zena/bird)! "link"::lio.', :translate_ids => :zip, :node => zena)
233
233
 
234
- assert_equal 'This "is":(../collections/art) "a":(wiki) !(wiki/bird)! !{(wiki/bird)}! ![(wiki/bird)]! "link":(../people/lion).',
235
- zazen('This "is":33 "a":(/projects/wiki) !30! !{30}! ![30]! "link"::lio.', :translate_ids => :relative_path, :node => projects)
234
+ assert_equal 'This "is":(../Collections/Art) "a":(a wiki with Zena) !(a wiki with Zena/bird)! !{(a wiki with Zena/bird)}! ![(a wiki with Zena/bird)]! "link":(../people/Panthera Leo Verneyi).',
235
+ zazen('This "is":33 "a":(/projects list/a wiki with Zena) !30! !{30}! ![30]! "link"::lio.', :translate_ids => :relative_path, :node => projects)
236
236
 
237
237
  assert_equal "This \"is\":33 \"a\":#{nodes_zip(:wiki)} !#{nodes_zip(:bird_jpg)}! \"link\":#{nodes_zip(:lion)}.",
238
- zazen('This "is":(../collections/art) "a":(wiki) !(wiki/bird)! "link":(../people/lion).', :translate_ids => :zip, :node => projects)
238
+ zazen('This "is":(../Collections/Art) "a":(a wiki with Zena) !(a wiki with Zena/bird)! "link":(../people/Panthera Leo Verneyi).', :translate_ids => :zip, :node => projects)
239
239
 
240
240
  assert_equal "This \"is\":33 \"a\":#{nodes_zip(:wiki)} !#{nodes_zip(:bird_jpg)}! \"link\":#{nodes_zip(:lion)}.",
241
- zazen('This "is":(collections/art) "a":(/projects/wiki) !(/projects/wiki/bird)! "link":(people/lion).', :translate_ids => :zip, :node => zena)
241
+ zazen('This "is":(Collections/Art) "a":(/projects list/a wiki with Zena) !(/projects list/a wiki with Zena/bird)! "link":(people/Panthera Leo Verneyi).', :translate_ids => :zip, :node => zena)
242
242
  end
243
243
 
244
244
  def test_table_asset
data/zena.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{zena}
8
- s.version = "1.0.0.beta3"
8
+ s.version = "1.0.0.rc1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Gaspard Bucher"]
12
- s.date = %q{2010-09-17}
12
+ s.date = %q{2011-02-11}
13
13
  s.default_executable = %q{zena}
14
14
  s.description = %q{zena is a Ruby on Rails CMS (content managment system) with a focus on usability, ease of customization and web 2.0 goodness (application like behaviour).}
15
15
  s.email = %q{gaspard@teti.ch}
@@ -50,24 +50,24 @@ Gem::Specification.new do |s|
50
50
  "app/helpers/application_helper.rb",
51
51
  "app/helpers/documents_helper.rb",
52
52
  "app/helpers/nodes_helper.rb",
53
+ "app/helpers/users_helper.rb",
53
54
  "app/helpers/versions_helper.rb",
54
55
  "app/models/attachment.rb",
55
- "app/models/base_contact.rb",
56
- "app/models/book.rb",
57
56
  "app/models/cache.rb",
58
57
  "app/models/cached_page.rb",
59
58
  "app/models/column.rb",
60
59
  "app/models/comment.rb",
61
- "app/models/contact_content.rb",
62
- "app/models/contact_version.rb",
63
60
  "app/models/data_entry.rb",
64
61
  "app/models/discussion.rb",
65
62
  "app/models/document.rb",
66
63
  "app/models/document_content.rb",
67
64
  "app/models/dyn_attribute.rb",
68
65
  "app/models/group.rb",
66
+ "app/models/idx_nodes_datetime.rb",
67
+ "app/models/idx_nodes_float.rb",
69
68
  "app/models/idx_nodes_ml_string.rb",
70
69
  "app/models/idx_nodes_string.rb",
70
+ "app/models/idx_project.rb",
71
71
  "app/models/idx_template.rb",
72
72
  "app/models/iformat.rb",
73
73
  "app/models/image.rb",
@@ -77,7 +77,6 @@ Gem::Specification.new do |s|
77
77
  "app/models/note.rb",
78
78
  "app/models/page.rb",
79
79
  "app/models/project.rb",
80
- "app/models/reference.rb",
81
80
  "app/models/relation.rb",
82
81
  "app/models/relation_proxy.rb",
83
82
  "app/models/role.rb",
@@ -217,7 +216,6 @@ Gem::Specification.new do |s|
217
216
  "app/views/templates/drive_tabs/_drive.rhtml",
218
217
  "app/views/templates/drive_tabs/_help.rhtml",
219
218
  "app/views/templates/drive_tabs/_links.rhtml",
220
- "app/views/templates/edit_tabs/_basecontact.rhtml",
221
219
  "app/views/templates/edit_tabs/_custom.rhtml",
222
220
  "app/views/templates/edit_tabs/_document.rhtml",
223
221
  "app/views/templates/edit_tabs/_help.rhtml",
@@ -241,6 +239,7 @@ Gem::Specification.new do |s|
241
239
  "app/views/versions/_tr.rhtml",
242
240
  "app/views/versions/backup.rjs",
243
241
  "app/views/versions/css_preview.rjs",
242
+ "app/views/versions/custom_tab.rhtml",
244
243
  "app/views/versions/destroy.rjs",
245
244
  "app/views/versions/diff.rjs",
246
245
  "app/views/versions/edit.rhtml",
@@ -269,35 +268,36 @@ Gem::Specification.new do |s|
269
268
  "bricks/captcha/README",
270
269
  "bricks/captcha/lib/bricks/captcha.rb",
271
270
  "bricks/captcha/zena/init.rb",
272
- "bricks/data2pdf/.document",
273
- "bricks/data2pdf/README",
274
- "bricks/data2pdf/Rakefile",
275
- "bricks/data2pdf/VERSION",
276
- "bricks/data2pdf/lib/data2pdf.rb",
277
- "bricks/data2pdf/lib/engines/prince.rb",
278
- "bricks/data2pdf/lib/engines/xhtml2pdf.rb",
279
- "bricks/data2pdf/lib/install.rb",
280
- "bricks/data2pdf/test/engines/test_prince.rb",
281
- "bricks/data2pdf/test/engines/test_xhtml2pdf.rb",
282
- "bricks/data2pdf/test/fixtures/application.css",
283
- "bricks/data2pdf/test/fixtures/contact.html",
284
- "bricks/data2pdf/test/fixtures/pisa-default.css",
285
- "bricks/data2pdf/test/fixtures/sheet1.css",
286
- "bricks/data2pdf/test/fixtures/sheet2.css",
287
- "bricks/data2pdf/test/fixtures/simple-html.html",
288
- "bricks/data2pdf/test/fixtures/simple-text.txt",
289
- "bricks/data2pdf/test/helper.rb",
290
- "bricks/data2pdf/test/shoulda_macros/shoulda_data2pdf.rb",
291
- "bricks/data2pdf/test/unit/test_rendering.rb",
292
271
  "bricks/math/lib/bricks/math.rb",
293
272
  "bricks/math/zena/init.rb",
294
273
  "bricks/mongrel/README",
295
274
  "bricks/mongrel/zena/deploy.rb",
296
275
  "bricks/passenger/README",
297
276
  "bricks/passenger/zena/deploy.rb",
277
+ "bricks/pdf/.document",
278
+ "bricks/pdf/README",
279
+ "bricks/pdf/Rakefile",
280
+ "bricks/pdf/VERSION",
281
+ "bricks/pdf/lib/bricks/pdf.rb",
282
+ "bricks/pdf/lib/bricks/pdf/engine/prince.rb",
283
+ "bricks/pdf/lib/bricks/pdf/engine/xhtml2pdf.rb",
284
+ "bricks/pdf/lib/bricks/pdf/install.rb",
285
+ "bricks/pdf/test/engines/test_prince.rb",
286
+ "bricks/pdf/test/engines/test_xhtml2pdf.rb",
287
+ "bricks/pdf/test/fixtures/application.css",
288
+ "bricks/pdf/test/fixtures/contact.html",
289
+ "bricks/pdf/test/fixtures/pisa-default.css",
290
+ "bricks/pdf/test/fixtures/sheet1.css",
291
+ "bricks/pdf/test/fixtures/sheet2.css",
292
+ "bricks/pdf/test/fixtures/simple-html.html",
293
+ "bricks/pdf/test/fixtures/simple-text.txt",
294
+ "bricks/pdf/test/helper.rb",
295
+ "bricks/pdf/test/shoulda_macros/shoulda_pdf.rb",
296
+ "bricks/pdf/zena/init.rb",
297
+ "bricks/pdf/zena/tasks.rb",
298
298
  "bricks/sphinx/MIT-LICENSE",
299
299
  "bricks/sphinx/README",
300
- "bricks/sphinx/lib/use_sphinx.rb",
300
+ "bricks/sphinx/lib/bricks/sphinx.rb",
301
301
  "bricks/sphinx/zena/deploy.rb",
302
302
  "bricks/sphinx/zena/init.rb",
303
303
  "bricks/sphinx/zena/migrate/20091102171258_add_delta_for_sphinx.rb",
@@ -316,6 +316,7 @@ Gem::Specification.new do |s|
316
316
  "bricks/worker/zena/migrate/20091104191643_create_delayed_jobs_table.rb",
317
317
  "bricks/worker/zena/tasks.rb",
318
318
  "bricks/worker/zena/worker",
319
+ "bricks/zena/zena/migrate/01_base.rb",
319
320
  "config/boot.rb",
320
321
  "config/bricks.yml",
321
322
  "config/database_example.yml",
@@ -328,9 +329,110 @@ Gem::Specification.new do |s|
328
329
  "config/initializers/mime_types.rb",
329
330
  "config/initializers/zena.rb",
330
331
  "config/mongrel_upload_progress.conf",
331
- "config/routes.rb",
332
332
  "config/sphinx.yml",
333
333
  "db/20100628074512_zena0x_to1x.rb",
334
+ "db/fix/024_correct_vclass_kpath.rb",
335
+ "db/fix/025_move_tag_into_vclass.rb",
336
+ "db/fix/026_rename_templates.rb",
337
+ "db/fix/045_avoid_star_in_templates.rb",
338
+ "db/fix/046_fix_zazen_image_tag.rb",
339
+ "db/fix/047_change_default_link_id_to_zero.rb",
340
+ "db/fix/049_fix_publish_from_is_null.rb",
341
+ "db/fix/20090924141459_zafu_fix_sept09.rb",
342
+ "db/fix/20091013100351_rename_publish_group_to_drive_group.rb",
343
+ "db/fix/20091124161608_rebuild_fullpath.rb",
344
+ "db/fix/20100115134729_rebuild_fullpath_after_fix.rb",
345
+ "db/fix/20100526090140_renamed_contact_model_to_base_contact.rb",
346
+ "db/fix/old_migrations/001_create_base.rb",
347
+ "db/fix/old_migrations/002_add_time_zone_to_users.rb",
348
+ "db/fix/old_migrations/003_add_custom_base_flag.rb",
349
+ "db/fix/old_migrations/004_rename_template_skin.rb",
350
+ "db/fix/old_migrations/005_create_cached_pages.rb",
351
+ "db/fix/old_migrations/006_create_sites.rb",
352
+ "db/fix/old_migrations/007_replace_id_by_zip.rb",
353
+ "db/fix/old_migrations/008_user_status.rb",
354
+ "db/fix/old_migrations/009_fulltext.rb",
355
+ "db/fix/old_migrations/010_create_template_content.rb",
356
+ "db/fix/old_migrations/011_project_to_section.rb",
357
+ "db/fix/old_migrations/012_add_project_id.rb",
358
+ "db/fix/old_migrations/013_remove_defaults.rb",
359
+ "db/fix/old_migrations/014_add_sort_field.rb",
360
+ "db/fix/old_migrations/015_add_dyn_attributes.rb",
361
+ "db/fix/old_migrations/016_remove_translations.rb",
362
+ "db/fix/old_migrations/017_rename_authorize.rb",
363
+ "db/fix/old_migrations/018_add_auth_option.rb",
364
+ "db/fix/old_migrations/019_remove_user_status.rb",
365
+ "db/fix/old_migrations/020_create_participation.rb",
366
+ "db/fix/old_migrations/021_create_relations.rb",
367
+ "db/fix/old_migrations/022_create_virtual_classes.rb",
368
+ "db/fix/old_migrations/023_ip_on_anonymous_comment.rb",
369
+ "db/fix/old_migrations/027_add_country_to_contacts.rb",
370
+ "db/fix/old_migrations/028_change_size_of_conten_type_field.rb",
371
+ "db/fix/old_migrations/029_create_data_entries.rb",
372
+ "db/fix/old_migrations/030_redit_auto_publish_site_settings.rb",
373
+ "db/fix/old_migrations/031_create_iformats.rb",
374
+ "db/fix/old_migrations/032_caches_context_as_hash.rb",
375
+ "db/fix/old_migrations/033_documents_kpath_change.rb",
376
+ "db/fix/old_migrations/034_change_file_storage.rb",
377
+ "db/fix/old_migrations/035_add_status_to_link.rb",
378
+ "db/fix/old_migrations/036_add_flag_fields_on_nodes.rb",
379
+ "db/fix/old_migrations/037_add_auto_create_discussion_to_v_class.rb",
380
+ "db/fix/old_migrations/038_create_site_attributes.rb",
381
+ "db/fix/old_migrations/039_default_position.rb",
382
+ "db/fix/old_migrations/040_second_value_for_data_entry.rb",
383
+ "db/fix/old_migrations/041_add_attributes_to_v_class.rb",
384
+ "db/fix/old_migrations/042_fix_position_should_be_float.rb",
385
+ "db/fix/old_migrations/043_move_user_lang_into_participation.rb",
386
+ "db/fix/old_migrations/044_remove_monolingual_site_option.rb",
387
+ "db/fix/old_migrations/048_link_source_target_can_be_null.rb",
388
+ "db/fix/old_migrations/050_date_in_links.rb",
389
+ "db/fix/old_migrations/051_add_exif_tags_to_images.rb",
390
+ "db/fix/old_migrations/20090825201159_insert_zero_link.rb",
391
+ "db/fix/old_migrations/20090825201200_merge_bricks_migrations_with_std_migrations.rb",
392
+ "db/fix/old_migrations/20090927125912_allow_null_in_text_fields.rb",
393
+ "db/fix/old_migrations/20090928133440_no_more_private_nodes.rb",
394
+ "db/fix/old_migrations/20090928143754_version_status_change.rb",
395
+ "db/fix/old_migrations/20091001084025_change_status_values_for_comments.rb",
396
+ "db/fix/old_migrations/20091009084057_add_vhash_in_node.rb",
397
+ "db/fix/old_migrations/20091014130833_fix_template_title.rb",
398
+ "db/fix/old_migrations/20091014183726_merge_participation_into_users.rb",
399
+ "db/fix/old_migrations/20091018200734_add_popup_info_to_image_format.rb",
400
+ "db/fix/old_migrations/20091026161708_add_persistence_token.rb",
401
+ "db/fix/old_migrations/20091101184952_add_session_table.rb",
402
+ "db/fix/old_migrations/20091123175137_add_single_access_token.rb",
403
+ "db/fix/old_migrations/20100125062254_add_dynamo_to_version.rb",
404
+ "db/fix/old_migrations/20100201133242_remove_default_status_on_version.rb",
405
+ "db/fix/old_migrations/20100208194210_create_attachments.rb",
406
+ "db/fix/old_migrations/20100210112319_change_dynamo_to_property.rb",
407
+ "db/fix/old_migrations/20100320145726_transform_template_contents_into_index.rb",
408
+ "db/fix/old_migrations/20100328125634_change_skin_name_to_id.rb",
409
+ "db/fix/old_migrations/20100417061257_add_properties_to_sites.rb",
410
+ "db/fix/old_migrations/20100419163149_rename_name_to_node_name.rb",
411
+ "db/fix/old_migrations/20100422091606_change_v_class_table_into_roles.rb",
412
+ "db/fix/old_migrations/20100422094048_node_habtm_roles.rb",
413
+ "db/fix/old_migrations/20100422115935_create_columns.rb",
414
+ "db/fix/old_migrations/20100513181529_add_site_id_to_columns.rb",
415
+ "db/fix/old_migrations/20100519091711_add_index_definition_to_columns.rb",
416
+ "db/fix/old_migrations/20100519091940_create_idx_nodes_string.rb",
417
+ "db/fix/old_migrations/20100519232432_create_idx_nodes_ml_string.rb",
418
+ "db/fix/old_migrations/20100525113858_add_porperties_to_users.rb",
419
+ "db/fix/old_migrations/20100527130937_change_column_index_to_string.rb",
420
+ "db/fix/old_migrations/20100531135128_add_fulltext_builder_fields.rb",
421
+ "db/fix/old_migrations/20100915062903_add_api_group_id_to_site.rb",
422
+ "db/fix/old_migrations/20100923154807_remove_base_contact.rb",
423
+ "db/fix/old_migrations/20100926192223_remove_su_user.rb",
424
+ "db/fix/old_migrations/20100927141658_add_eval_attributes_to_v_class.rb",
425
+ "db/fix/old_migrations/20100928185257_add_obvious_idx.rb",
426
+ "db/fix/old_migrations/20100929143111_remove_node_name.rb",
427
+ "db/fix/old_migrations/20101006090454_store_properties_in_long_text.rb",
428
+ "db/fix/old_migrations/20101014185753_remove_user_prototype_id.rb",
429
+ "db/fix/old_migrations/20101101084318_create_scope_index.rb",
430
+ "db/fix/old_migrations/20101109074232_create_idx_nodes_tables.rb",
431
+ "db/fix/old_migrations/20101110184235_add_role_update_to_site.rb",
432
+ "db/fix/old_migrations/20101116103920_change_scope_index.rb",
433
+ "db/fix/old_migrations/20101123125822_add_integer_idx.rb",
434
+ "db/fix/old_migrations/20101130134522_add_index_field.rb",
435
+ "db/fix/old_migrations/20101213133816_add_group_to_relation.rb",
334
436
  "db/init/base/help.en.zml",
335
437
  "db/init/base/help.fr.zml",
336
438
  "db/init/base/skins.zml",
@@ -347,94 +449,6 @@ Gem::Specification.new do |s|
347
449
  "db/init/base/skins/default/favicon.png",
348
450
  "db/init/base/skins/default/notes.zafu",
349
451
  "db/init/base/skins/default/style.css",
350
- "db/migrate/001_create_base.rb",
351
- "db/migrate/002_add_time_zone_to_users.rb",
352
- "db/migrate/003_add_custom_base_flag.rb",
353
- "db/migrate/004_rename_template_skin.rb",
354
- "db/migrate/005_create_cached_pages.rb",
355
- "db/migrate/006_create_sites.rb",
356
- "db/migrate/007_replace_id_by_zip.rb",
357
- "db/migrate/008_user_status.rb",
358
- "db/migrate/009_fulltext.rb",
359
- "db/migrate/010_create_template_content.rb",
360
- "db/migrate/011_project_to_section.rb",
361
- "db/migrate/012_add_project_id.rb",
362
- "db/migrate/013_remove_defaults.rb",
363
- "db/migrate/014_add_sort_field.rb",
364
- "db/migrate/015_add_dyn_attributes.rb",
365
- "db/migrate/016_remove_translations.rb",
366
- "db/migrate/017_rename_authorize.rb",
367
- "db/migrate/018_add_auth_option.rb",
368
- "db/migrate/019_remove_user_status.rb",
369
- "db/migrate/020_create_participation.rb",
370
- "db/migrate/021_create_relations.rb",
371
- "db/migrate/022_create_virtual_classes.rb",
372
- "db/migrate/023_ip_on_anonymous_comment.rb",
373
- "db/migrate/024_correct_vclass_kpath.rb",
374
- "db/migrate/025_move_tag_into_vclass.rb",
375
- "db/migrate/026_rename_templates.rb",
376
- "db/migrate/027_add_country_to_contacts.rb",
377
- "db/migrate/028_change_size_of_conten_type_field.rb",
378
- "db/migrate/029_create_data_entries.rb",
379
- "db/migrate/030_redit_auto_publish_site_settings.rb",
380
- "db/migrate/031_create_iformats.rb",
381
- "db/migrate/032_caches_context_as_hash.rb",
382
- "db/migrate/033_documents_kpath_change.rb",
383
- "db/migrate/034_change_file_storage.rb",
384
- "db/migrate/035_add_status_to_link.rb",
385
- "db/migrate/036_add_flag_fields_on_nodes.rb",
386
- "db/migrate/037_add_auto_create_discussion_to_v_class.rb",
387
- "db/migrate/038_create_site_attributes.rb",
388
- "db/migrate/039_default_position.rb",
389
- "db/migrate/040_second_value_for_data_entry.rb",
390
- "db/migrate/041_add_attributes_to_v_class.rb",
391
- "db/migrate/042_fix_position_should_be_float.rb",
392
- "db/migrate/043_move_user_lang_into_participation.rb",
393
- "db/migrate/044_remove_monolingual_site_option.rb",
394
- "db/migrate/045_avoid_star_in_templates.rb",
395
- "db/migrate/046_fix_zazen_image_tag.rb",
396
- "db/migrate/047_change_default_link_id_to_zero.rb",
397
- "db/migrate/048_link_source_target_can_be_null.rb",
398
- "db/migrate/049_fix_publish_from_is_null.rb",
399
- "db/migrate/050_date_in_links.rb",
400
- "db/migrate/051_add_exif_tags_to_images.rb",
401
- "db/migrate/20090825201159_insert_zero_link.rb",
402
- "db/migrate/20090825201200_merge_bricks_migrations_with_std_migrations.rb",
403
- "db/migrate/20090924141459_zafu_fix_sept09.rb",
404
- "db/migrate/20090927125912_allow_null_in_text_fields.rb",
405
- "db/migrate/20090928133440_no_more_private_nodes.rb",
406
- "db/migrate/20090928143754_version_status_change.rb",
407
- "db/migrate/20091001084025_change_status_values_for_comments.rb",
408
- "db/migrate/20091009084057_add_vhash_in_node.rb",
409
- "db/migrate/20091013100351_rename_publish_group_to_drive_group.rb",
410
- "db/migrate/20091014130833_fix_template_title.rb",
411
- "db/migrate/20091014183726_merge_participation_into_users.rb",
412
- "db/migrate/20091018200734_add_popup_info_to_image_format.rb",
413
- "db/migrate/20091026161708_add_persistence_token.rb",
414
- "db/migrate/20091101184952_add_session_table.rb",
415
- "db/migrate/20091123175137_add_single_access_token.rb",
416
- "db/migrate/20091124161608_rebuild_fullpath.rb",
417
- "db/migrate/20100115134729_rebuild_fullpath_after_fix.rb",
418
- "db/migrate/20100125062254_add_dynamo_to_version.rb",
419
- "db/migrate/20100201133242_remove_default_status_on_version.rb",
420
- "db/migrate/20100208194210_create_attachments.rb",
421
- "db/migrate/20100210112319_change_dynamo_to_property.rb",
422
- "db/migrate/20100320145726_transform_template_contents_into_index.rb",
423
- "db/migrate/20100328125634_change_skin_name_to_id.rb",
424
- "db/migrate/20100417061257_add_properties_to_sites.rb",
425
- "db/migrate/20100419163149_rename_name_to_node_name.rb",
426
- "db/migrate/20100422091606_change_v_class_table_into_roles.rb",
427
- "db/migrate/20100422094048_node_habtm_roles.rb",
428
- "db/migrate/20100422115935_create_columns.rb",
429
- "db/migrate/20100513181529_add_site_id_to_columns.rb",
430
- "db/migrate/20100519091711_add_index_definition_to_columns.rb",
431
- "db/migrate/20100519091940_create_idx_nodes_string.rb",
432
- "db/migrate/20100519232432_create_idx_nodes_ml_string.rb",
433
- "db/migrate/20100525113858_add_porperties_to_users.rb",
434
- "db/migrate/20100526090140_renamed_contact_model_to_base_contact.rb",
435
- "db/migrate/20100527130937_change_column_index_to_string.rb",
436
- "db/migrate/20100531135128_add_fulltext_builder_fields.rb",
437
- "db/migrate/20100915062903_add_api_group_id_to_site.rb",
438
452
  "doc/README_FOR_APP",
439
453
  "doc/fixtures.graffle",
440
454
  "doc/fixtures.pdf",
@@ -471,7 +485,6 @@ Gem::Specification.new do |s|
471
485
  "lib/tasks/zena.rake",
472
486
  "lib/tasks/zena.rb",
473
487
  "lib/upload_progress_server.rb",
474
- "lib/version_off.rb",
475
488
  "lib/zazen_parser.rb",
476
489
  "lib/zena.rb",
477
490
  "lib/zena/acts/enrollable.rb",
@@ -489,6 +502,10 @@ Gem::Specification.new do |s|
489
502
  "lib/zena/core_ext/string.rb",
490
503
  "lib/zena/crypto_provider/initial.rb",
491
504
  "lib/zena/db.rb",
505
+ "lib/zena/db_helper/abstract_db.rb",
506
+ "lib/zena/db_helper/mysql.rb",
507
+ "lib/zena/db_helper/postgresql.rb",
508
+ "lib/zena/db_helper/sqlite3.rb",
492
509
  "lib/zena/deploy.rb",
493
510
  "lib/zena/deploy/awstats.conf.rhtml",
494
511
  "lib/zena/deploy/database.rhtml",
@@ -526,6 +543,7 @@ Gem::Specification.new do |s|
526
543
  "lib/zena/use.rb",
527
544
  "lib/zena/use/action.rb",
528
545
  "lib/zena/use/ajax.rb",
546
+ "lib/zena/use/ancestry.rb",
529
547
  "lib/zena/use/authlogic.rb",
530
548
  "lib/zena/use/calendar.rb",
531
549
  "lib/zena/use/conditional.rb",
@@ -534,6 +552,7 @@ Gem::Specification.new do |s|
534
552
  "lib/zena/use/display.rb",
535
553
  "lib/zena/use/dyn_attributes.rb",
536
554
  "lib/zena/use/error_rendering.rb",
555
+ "lib/zena/use/field_index.rb",
537
556
  "lib/zena/use/fixtures.rb",
538
557
  "lib/zena/use/forms.rb",
539
558
  "lib/zena/use/fulltext.rb",
@@ -541,9 +560,11 @@ Gem::Specification.new do |s|
541
560
  "lib/zena/use/html_tags.rb",
542
561
  "lib/zena/use/i18n.rb",
543
562
  "lib/zena/use/image_builder.rb",
563
+ "lib/zena/use/kpath.rb",
544
564
  "lib/zena/use/ml_index.rb",
545
565
  "lib/zena/use/nested_attributes_alias.rb",
546
- "lib/zena/use/node_name.rb",
566
+ "lib/zena/use/node_context.rb",
567
+ "lib/zena/use/prop_eval.rb",
547
568
  "lib/zena/use/query_builder.rb",
548
569
  "lib/zena/use/query_comment.rb",
549
570
  "lib/zena/use/query_node.rb",
@@ -551,6 +572,7 @@ Gem::Specification.new do |s|
551
572
  "lib/zena/use/refactor.rb",
552
573
  "lib/zena/use/relations.rb",
553
574
  "lib/zena/use/rendering.rb",
575
+ "lib/zena/use/scope_index.rb",
554
576
  "lib/zena/use/search.rb",
555
577
  "lib/zena/use/test_helper.rb",
556
578
  "lib/zena/use/upload.rb",
@@ -575,6 +597,8 @@ Gem::Specification.new do |s|
575
597
  "locale/fr/zena.mo",
576
598
  "locale/fr/zena.po",
577
599
  "locale/zena.pot",
600
+ "misc/zena",
601
+ "misc/zena_init",
578
602
  "old_zafu/action.rb",
579
603
  "old_zafu/ajax.rb",
580
604
  "old_zafu/attributes.rb",
@@ -1014,7 +1038,7 @@ Gem::Specification.new do |s|
1014
1038
  "public/images/error_delete.png",
1015
1039
  "public/images/error_go.png",
1016
1040
  "public/images/exclamation.png",
1017
- "public/images/ext/basecontact.png",
1041
+ "public/images/ext/contact.png",
1018
1042
  "public/images/ext/doc.png",
1019
1043
  "public/images/ext/doc_tiny.png",
1020
1044
  "public/images/ext/jpg.png",
@@ -1790,7 +1814,9 @@ Gem::Specification.new do |s|
1790
1814
  "test/integration/query_node/dates.yml",
1791
1815
  "test/integration/query_node/errors.yml",
1792
1816
  "test/integration/query_node/filters.yml",
1793
- "test/integration/query_node/properties.yml",
1817
+ "test/integration/query_node/idx_fields.yml",
1818
+ "test/integration/query_node/idx_key_value.yml",
1819
+ "test/integration/query_node/idx_scope.yml",
1794
1820
  "test/integration/query_node/relations.yml",
1795
1821
  "test/integration/query_node_test.rb",
1796
1822
  "test/integration/xml_api_test.rb",
@@ -1810,8 +1836,10 @@ Gem::Specification.new do |s|
1810
1836
  "test/integration/zafu_compiler/eval.yml",
1811
1837
  "test/integration/zafu_compiler/forms.yml",
1812
1838
  "test/integration/zafu_compiler/i18n.yml",
1839
+ "test/integration/zafu_compiler/idx_scope.yml",
1813
1840
  "test/integration/zafu_compiler/later.yml",
1814
1841
  "test/integration/zafu_compiler/off/off.yml",
1842
+ "test/integration/zafu_compiler/query.yml",
1815
1843
  "test/integration/zafu_compiler/recursion.yml",
1816
1844
  "test/integration/zafu_compiler/relations.yml",
1817
1845
  "test/integration/zafu_compiler/roles.yml",
@@ -1840,6 +1868,7 @@ Gem::Specification.new do |s|
1840
1868
  "test/sites/ocean/groups.yml",
1841
1869
  "test/sites/ocean/iformats.yml",
1842
1870
  "test/sites/ocean/nodes.yml",
1871
+ "test/sites/ocean/roles.yml",
1843
1872
  "test/sites/ocean/sites.yml",
1844
1873
  "test/sites/ocean/users.yml",
1845
1874
  "test/sites/ocean/versions.yml",
@@ -1848,6 +1877,7 @@ Gem::Specification.new do |s|
1848
1877
  "test/sites/zena/data_entries.yml",
1849
1878
  "test/sites/zena/discussions.yml",
1850
1879
  "test/sites/zena/groups.yml",
1880
+ "test/sites/zena/idx_projects.yml",
1851
1881
  "test/sites/zena/iformats.yml",
1852
1882
  "test/sites/zena/links.yml",
1853
1883
  "test/sites/zena/nodes.yml",
@@ -1860,7 +1890,6 @@ Gem::Specification.new do |s|
1860
1890
  "test/test_zena.rb",
1861
1891
  "test/unit/after_commit_test.rb",
1862
1892
  "test/unit/attachment_test.rb",
1863
- "test/unit/base_contact_test.rb",
1864
1893
  "test/unit/cache_test.rb",
1865
1894
  "test/unit/cached_page_test.rb",
1866
1895
  "test/unit/column_test.rb",
@@ -1879,7 +1908,6 @@ Gem::Specification.new do |s|
1879
1908
  "test/unit/link_test.rb",
1880
1909
  "test/unit/multi_version_test.rb",
1881
1910
  "test/unit/multiversion_test.rb",
1882
- "test/unit/node_name_test.rb",
1883
1911
  "test/unit/node_test.rb",
1884
1912
  "test/unit/note_test.rb",
1885
1913
  "test/unit/page_test.rb",
@@ -1913,6 +1941,7 @@ Gem::Specification.new do |s|
1913
1941
  "test/unit/zena/parser_test.rb",
1914
1942
  "test/unit/zena/unit/test_case_test.rb",
1915
1943
  "test/unit/zena/use/action_test.rb",
1944
+ "test/unit/zena/use/ancestry_test.rb",
1916
1945
  "test/unit/zena/use/calendar_test.rb",
1917
1946
  "test/unit/zena/use/dates_model_methods_test.rb",
1918
1947
  "test/unit/zena/use/dates_string_methods_test.rb",
@@ -1921,12 +1950,15 @@ Gem::Specification.new do |s|
1921
1950
  "test/unit/zena/use/fulltext_test.rb",
1922
1951
  "test/unit/zena/use/html_tags_test.rb",
1923
1952
  "test/unit/zena/use/i18n_test.rb",
1953
+ "test/unit/zena/use/kpath_test.rb",
1924
1954
  "test/unit/zena/use/ml_index_test.rb",
1925
1955
  "test/unit/zena/use/nested_attributes_alias_model_test.rb",
1926
1956
  "test/unit/zena/use/nested_attributes_alias_view_test.rb",
1957
+ "test/unit/zena/use/prop_eval_test.rb",
1927
1958
  "test/unit/zena/use/query_node_test.rb",
1928
1959
  "test/unit/zena/use/refactor_test.rb",
1929
1960
  "test/unit/zena/use/rendering_test.rb",
1961
+ "test/unit/zena/use/scope_index_test.rb",
1930
1962
  "test/unit/zena/use/upload_test.rb",
1931
1963
  "test/unit/zena/use/urls_test.rb",
1932
1964
  "test/unit/zena/use/version_hash_test.rb",
@@ -2066,7 +2098,7 @@ Gem::Specification.new do |s|
2066
2098
  s.rdoc_options = ["--charset=UTF-8"]
2067
2099
  s.require_paths = ["lib"]
2068
2100
  s.rubyforge_project = %q{zena}
2069
- s.rubygems_version = %q{1.3.6}
2101
+ s.rubygems_version = %q{1.3.7}
2070
2102
  s.summary = %q{CMS with super natural powers, based on Ruby on Rails}
2071
2103
  s.test_files = [
2072
2104
  "spec/controllers/versions_controller_spec.rb",
@@ -2102,7 +2134,6 @@ Gem::Specification.new do |s|
2102
2134
  "test/test_zena.rb",
2103
2135
  "test/unit/after_commit_test.rb",
2104
2136
  "test/unit/attachment_test.rb",
2105
- "test/unit/base_contact_test.rb",
2106
2137
  "test/unit/cache_test.rb",
2107
2138
  "test/unit/cached_page_test.rb",
2108
2139
  "test/unit/column_test.rb",
@@ -2121,7 +2152,6 @@ Gem::Specification.new do |s|
2121
2152
  "test/unit/link_test.rb",
2122
2153
  "test/unit/multi_version_test.rb",
2123
2154
  "test/unit/multiversion_test.rb",
2124
- "test/unit/node_name_test.rb",
2125
2155
  "test/unit/node_test.rb",
2126
2156
  "test/unit/note_test.rb",
2127
2157
  "test/unit/page_test.rb",
@@ -2150,6 +2180,7 @@ Gem::Specification.new do |s|
2150
2180
  "test/unit/zena/parser_test.rb",
2151
2181
  "test/unit/zena/unit/test_case_test.rb",
2152
2182
  "test/unit/zena/use/action_test.rb",
2183
+ "test/unit/zena/use/ancestry_test.rb",
2153
2184
  "test/unit/zena/use/calendar_test.rb",
2154
2185
  "test/unit/zena/use/dates_model_methods_test.rb",
2155
2186
  "test/unit/zena/use/dates_string_methods_test.rb",
@@ -2158,12 +2189,15 @@ Gem::Specification.new do |s|
2158
2189
  "test/unit/zena/use/fulltext_test.rb",
2159
2190
  "test/unit/zena/use/html_tags_test.rb",
2160
2191
  "test/unit/zena/use/i18n_test.rb",
2192
+ "test/unit/zena/use/kpath_test.rb",
2161
2193
  "test/unit/zena/use/ml_index_test.rb",
2162
2194
  "test/unit/zena/use/nested_attributes_alias_model_test.rb",
2163
2195
  "test/unit/zena/use/nested_attributes_alias_view_test.rb",
2196
+ "test/unit/zena/use/prop_eval_test.rb",
2164
2197
  "test/unit/zena/use/query_node_test.rb",
2165
2198
  "test/unit/zena/use/refactor_test.rb",
2166
2199
  "test/unit/zena/use/rendering_test.rb",
2200
+ "test/unit/zena/use/scope_index_test.rb",
2167
2201
  "test/unit/zena/use/upload_test.rb",
2168
2202
  "test/unit/zena/use/urls_test.rb",
2169
2203
  "test/unit/zena/use/version_hash_test.rb",
@@ -2176,16 +2210,16 @@ Gem::Specification.new do |s|
2176
2210
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
2177
2211
  s.specification_version = 3
2178
2212
 
2179
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
2213
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
2180
2214
  s.add_runtime_dependency(%q<ruby-recaptcha>, ["= 1.0.0"])
2181
2215
  s.add_runtime_dependency(%q<tzinfo>, [">= 0.3.12"])
2182
2216
  s.add_runtime_dependency(%q<rails>, ["= 2.3.8"])
2183
- s.add_runtime_dependency(%q<rubyless>, [">= 0.7.0"])
2184
- s.add_runtime_dependency(%q<property>, [">= 1.1.0"])
2217
+ s.add_runtime_dependency(%q<rubyless>, [">= 0.8.2"])
2218
+ s.add_runtime_dependency(%q<property>, [">= 2.1.2"])
2185
2219
  s.add_runtime_dependency(%q<uuidtools>, ["= 2.0.0"])
2186
2220
  s.add_runtime_dependency(%q<authlogic>, ["= 2.1.3"])
2187
- s.add_runtime_dependency(%q<zafu>, [">= 0.7.1"])
2188
- s.add_runtime_dependency(%q<shoulda>, [">= 2.10.2"])
2221
+ s.add_runtime_dependency(%q<zafu>, [">= 0.7.6"])
2222
+ s.add_runtime_dependency(%q<shoulda>, ["= 2.10.3"])
2189
2223
  s.add_runtime_dependency(%q<fast_gettext>, ["~> 0.4.16"])
2190
2224
  s.add_runtime_dependency(%q<syntax>, ["= 1.0.0"])
2191
2225
  s.add_runtime_dependency(%q<yamltest>, [">= 0.7.0"])
@@ -2197,17 +2231,17 @@ Gem::Specification.new do |s|
2197
2231
  s.add_runtime_dependency(%q<hpricot>, [">= 0"])
2198
2232
  s.add_runtime_dependency(%q<differ>, [">= 0.1.1"])
2199
2233
  s.add_runtime_dependency(%q<RedCloth>, ["= 3.0.4"])
2200
- s.add_runtime_dependency(%q<querybuilder>, [">= 0.9.0"])
2234
+ s.add_runtime_dependency(%q<querybuilder>, [">= 0.9.5"])
2201
2235
  else
2202
2236
  s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.0"])
2203
2237
  s.add_dependency(%q<tzinfo>, [">= 0.3.12"])
2204
2238
  s.add_dependency(%q<rails>, ["= 2.3.8"])
2205
- s.add_dependency(%q<rubyless>, [">= 0.7.0"])
2206
- s.add_dependency(%q<property>, [">= 1.1.0"])
2239
+ s.add_dependency(%q<rubyless>, [">= 0.8.2"])
2240
+ s.add_dependency(%q<property>, [">= 2.1.2"])
2207
2241
  s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
2208
2242
  s.add_dependency(%q<authlogic>, ["= 2.1.3"])
2209
- s.add_dependency(%q<zafu>, [">= 0.7.1"])
2210
- s.add_dependency(%q<shoulda>, [">= 2.10.2"])
2243
+ s.add_dependency(%q<zafu>, [">= 0.7.6"])
2244
+ s.add_dependency(%q<shoulda>, ["= 2.10.3"])
2211
2245
  s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
2212
2246
  s.add_dependency(%q<syntax>, ["= 1.0.0"])
2213
2247
  s.add_dependency(%q<yamltest>, [">= 0.7.0"])
@@ -2219,18 +2253,18 @@ Gem::Specification.new do |s|
2219
2253
  s.add_dependency(%q<hpricot>, [">= 0"])
2220
2254
  s.add_dependency(%q<differ>, [">= 0.1.1"])
2221
2255
  s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
2222
- s.add_dependency(%q<querybuilder>, [">= 0.9.0"])
2256
+ s.add_dependency(%q<querybuilder>, [">= 0.9.5"])
2223
2257
  end
2224
2258
  else
2225
2259
  s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.0"])
2226
2260
  s.add_dependency(%q<tzinfo>, [">= 0.3.12"])
2227
2261
  s.add_dependency(%q<rails>, ["= 2.3.8"])
2228
- s.add_dependency(%q<rubyless>, [">= 0.7.0"])
2229
- s.add_dependency(%q<property>, [">= 1.1.0"])
2262
+ s.add_dependency(%q<rubyless>, [">= 0.8.2"])
2263
+ s.add_dependency(%q<property>, [">= 2.1.2"])
2230
2264
  s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
2231
2265
  s.add_dependency(%q<authlogic>, ["= 2.1.3"])
2232
- s.add_dependency(%q<zafu>, [">= 0.7.1"])
2233
- s.add_dependency(%q<shoulda>, [">= 2.10.2"])
2266
+ s.add_dependency(%q<zafu>, [">= 0.7.6"])
2267
+ s.add_dependency(%q<shoulda>, ["= 2.10.3"])
2234
2268
  s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
2235
2269
  s.add_dependency(%q<syntax>, ["= 1.0.0"])
2236
2270
  s.add_dependency(%q<yamltest>, [">= 0.7.0"])
@@ -2242,7 +2276,7 @@ Gem::Specification.new do |s|
2242
2276
  s.add_dependency(%q<hpricot>, [">= 0"])
2243
2277
  s.add_dependency(%q<differ>, [">= 0.1.1"])
2244
2278
  s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
2245
- s.add_dependency(%q<querybuilder>, [">= 0.9.0"])
2279
+ s.add_dependency(%q<querybuilder>, [">= 0.9.5"])
2246
2280
  end
2247
2281
  end
2248
2282