zena 1.0.0 → 1.1.0

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 (245) hide show
  1. data/History.txt +28 -0
  2. data/README.rdoc +6 -6
  3. data/Rakefile +3 -0
  4. data/app/controllers/users_controller.rb +4 -2
  5. data/app/models/acl.rb +6 -0
  6. data/app/models/cached_page.rb +2 -1
  7. data/app/models/document.rb +3 -4
  8. data/app/models/node.rb +8 -5
  9. data/app/models/site.rb +1 -1
  10. data/app/models/template.rb +2 -2
  11. data/app/models/user.rb +5 -3
  12. data/app/views/acls/_add.rhtml +2 -1
  13. data/app/views/acls/_form.rhtml +15 -7
  14. data/app/views/acls/_li.rhtml +2 -0
  15. data/app/views/acls/index.rhtml +3 -1
  16. data/app/views/acls/show.html.erb +1 -1
  17. data/app/views/links/destroy.rjs +16 -2
  18. data/app/views/versions/destroy.rjs +1 -1
  19. data/app/views/zafu/default/Node-admin.zafu +1 -1
  20. data/bin/zena +5 -3
  21. data/bricks/acls/lib/bricks/acls.rb +11 -4
  22. data/bricks/acls/zena/migrate/20110627193757_add_allowed_mode_and_format_to_acl.rb +11 -0
  23. data/bricks/acls/zena/test/integration/acl_integration_test.rb +42 -0
  24. data/bricks/acls/zena/test/sites/erebus/acls.yml +8 -0
  25. data/bricks/mongrel/zena/deploy.rb +19 -0
  26. data/bricks/single/lib/bricks/single.rb +15 -0
  27. data/bricks/single/zena/init.rb +1 -0
  28. data/bricks/sphinx/zena/tasks.rb +1 -1
  29. data/bricks/static/lib/bricks/static.rb +151 -0
  30. data/bricks/static/zena/init.rb +1 -0
  31. data/bricks/static/zena/migrate/20110702010330_add_static_to_idx_templates.rb +12 -0
  32. data/bricks/static/zena/skins/blog/Image-edit.zafu +6 -0
  33. data/bricks/static/zena/skins/blog/Image.zafu +19 -0
  34. data/bricks/static/zena/skins/blog/Node-+index.zafu +1 -0
  35. data/bricks/static/zena/skins/blog/Node-+notFound.zafu +7 -0
  36. data/bricks/static/zena/skins/blog/Node-+search.zafu +19 -0
  37. data/bricks/static/zena/skins/blog/Node.zafu +66 -0
  38. data/bricks/static/zena/skins/blog/Post.zafu +12 -0
  39. data/bricks/static/zena/skins/blog/Project--kml.zafu +30 -0
  40. data/bricks/static/zena/skins/blog/Project.zafu +45 -0
  41. data/bricks/static/zena/skins/blog/comments.zafu +30 -0
  42. data/bricks/static/zena/skins/blog/dict.yml +11 -0
  43. data/bricks/static/zena/skins/blog/img/dateBg.jpg +0 -0
  44. data/bricks/static/zena/skins/blog/img/header.png +0 -0
  45. data/bricks/static/zena/skins/blog/img/mapPin.png +0 -0
  46. data/bricks/static/zena/skins/blog/img/menu.gif +0 -0
  47. data/bricks/static/zena/skins/blog/img/menuover.gif +0 -0
  48. data/bricks/static/zena/skins/blog/img/style.css +110 -0
  49. data/bricks/static/zena/test/integration/static_integration_test.rb +30 -0
  50. data/bricks/static/zena/test/unit/static_test.rb +33 -0
  51. data/bricks/zena/zena/migrate/01_base.rb +1 -2
  52. data/bricks/zena/zena/migrate/20110623072048_fix_cached_path_index.rb +10 -0
  53. data/bricks/zena/zena/migrate/20110710113731_remove_icon_field.rb +18 -0
  54. data/config/bricks.yml +4 -0
  55. data/config/deploy.rb +17 -2
  56. data/config/gems.yml +9 -7
  57. data/config/selenium.yml +38 -0
  58. data/lib/bricks/requirements_validation.rb +8 -2
  59. data/lib/gettext_strings.rb +2 -1
  60. data/lib/tasks/zena.rake +5 -0
  61. data/lib/zena/app.rb +12 -0
  62. data/lib/zena/console.rb +9 -1
  63. data/lib/zena/core_ext/string.rb +7 -2
  64. data/lib/zena/deploy.rb +60 -6
  65. data/lib/zena/deploy/app_init.rhtml +56 -0
  66. data/lib/zena/deploy/haproxy.cnf.rhtml +34 -0
  67. data/lib/zena/deploy/httpd.rhtml +6 -0
  68. data/lib/zena/deploy/start_stop.rhtml +35 -0
  69. data/lib/zena/info.rb +1 -1
  70. data/lib/zena/remote/connection.rb +1 -1
  71. data/lib/zena/site_worker.rb +9 -5
  72. data/lib/zena/use.rb +1 -1
  73. data/lib/zena/use/action.rb +2 -2
  74. data/lib/zena/use/ajax.rb +22 -9
  75. data/lib/zena/use/conditional.rb +5 -0
  76. data/lib/zena/use/context.rb +6 -1
  77. data/lib/zena/use/dates.rb +17 -2
  78. data/lib/zena/use/display.rb +14 -3
  79. data/lib/zena/use/forms.rb +37 -47
  80. data/lib/zena/use/html_tags.rb +3 -0
  81. data/lib/zena/use/node_context.rb +17 -17
  82. data/lib/zena/use/rendering.rb +1 -1
  83. data/lib/zena/use/urls.rb +11 -2
  84. data/lib/zena/use/zafu_attributes.rb +1 -0
  85. data/lib/zena/use/zafu_safe_definitions.rb +16 -1
  86. data/lib/zena/use/zafu_templates.rb +39 -24
  87. data/lib/zena/use/zazen.rb +1 -0
  88. data/locale/de/LC_MESSAGES/zena.mo +0 -0
  89. data/locale/de/zena.po +105 -89
  90. data/locale/en/LC_MESSAGES/zena.mo +0 -0
  91. data/locale/en/zena.mo +0 -0
  92. data/locale/en/zena.po +188 -253
  93. data/locale/fr/LC_MESSAGES/zena.mo +0 -0
  94. data/locale/fr/zena.mo +0 -0
  95. data/locale/fr/zena.po +200 -257
  96. data/locale/zena.pot +95 -85
  97. data/public/javascripts/zena.js +2 -2
  98. data/test/fixtures/files/{Node-test.zafu → TestNode.zafu} +206 -4
  99. data/test/functional/nodes_controller_test.rb +2 -2
  100. data/test/integration/navigation_test.rb +9 -3
  101. data/test/integration/query_node/basic.yml +4 -4
  102. data/test/integration/query_node/filters.yml +2 -2
  103. data/test/integration/zafu_compiler/ajax.yml +6 -6
  104. data/test/integration/zafu_compiler/basic.yml +1 -1
  105. data/test/integration/zafu_compiler/calendar.yml +4 -3
  106. data/test/integration/zafu_compiler/conditional.yml +3 -10
  107. data/test/integration/zafu_compiler/context.yml +1 -1
  108. data/test/integration/zafu_compiler/dates.yml +9 -1
  109. data/test/integration/zafu_compiler/display.yml +7 -1
  110. data/test/integration/zafu_compiler/eval.yml +12 -46
  111. data/test/integration/zafu_compiler/forms.yml +1 -1
  112. data/test/integration/zafu_compiler/query.yml +2 -2
  113. data/test/integration/zafu_compiler/relations.yml +19 -9
  114. data/test/integration/zafu_compiler/roles.yml +12 -0
  115. data/test/integration/zafu_compiler/safe_definitions.yml +1 -1
  116. data/test/integration/zafu_compiler/urls.yml +13 -5
  117. data/test/integration/zafu_compiler/version.yml +6 -0
  118. data/test/integration/zafu_compiler/zafu_attributes.yml +4 -4
  119. data/test/integration/zafu_compiler_test.rb +1 -1
  120. data/test/selenium.readme +8 -0
  121. data/test/selenium/Add/0setup.rsel +12 -0
  122. data/test/selenium/Add/add1.rsel +22 -0
  123. data/test/selenium/Add/add2.rsel +22 -0
  124. data/test/selenium/Add/add3.rsel +22 -0
  125. data/test/selenium/Drop/0setup.rsel +12 -0
  126. data/test/selenium/Drop/drop1.rsel +25 -0
  127. data/test/selenium/Drop/drop2.rsel +25 -0
  128. data/test/selenium/Drop/drop3.rsel +51 -0
  129. data/test/selenium/Drop/drop4.rsel +44 -0
  130. data/test/selenium/Drop/drop5.rsel +16 -0
  131. data/test/selenium/Edit/0setup.rsel +12 -0
  132. data/test/selenium/Edit/edit1.rsel +31 -0
  133. data/test/selenium/Edit/edit2.rsel +39 -0
  134. data/test/selenium/Edit/edit3.rsel +40 -0
  135. data/test/selenium/Form/0setup.rsel +12 -0
  136. data/test/selenium/Form/form1.rsel +9 -0
  137. data/test/selenium/Form/form2.rsel +9 -0
  138. data/test/selenium/Paginate/0setup.rsel +12 -0
  139. data/test/selenium/Paginate/paginate1.rsel +24 -0
  140. data/test/selenium/Toggle/0setup.rsel +12 -0
  141. data/test/selenium/Toggle/toggle1.rsel +21 -0
  142. data/test/sites/zena/nodes.yml +4 -4
  143. data/test/sites/zena/roles.yml +3 -2
  144. data/test/sites/zena/versions.yml +12 -11
  145. data/test/unit/core_ext_test.rb +23 -5
  146. data/test/unit/document_test.rb +6 -2
  147. data/test/unit/node_test.rb +2 -2
  148. data/test/unit/remote_test.rb +1 -2
  149. data/test/unit/role_test.rb +2 -2
  150. data/test/unit/user_test.rb +48 -1
  151. data/test/unit/virtual_class_test.rb +7 -7
  152. data/test/unit/zena/acts/secure_test.rb +1 -1
  153. data/test/unit/zena/use/rendering_test.rb +1 -1
  154. data/test/unit/zena/use/urls_test.rb +3 -3
  155. data/zena.gemspec +65 -101
  156. metadata +67 -103
  157. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run 2.tmCommand +0 -24
  158. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Context.tmCommand +0 -58
  159. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Focused Should.tmCommand +0 -88
  160. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run.tmCommand +0 -27
  161. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/YAML to Shoulda.tmCommand +0 -23
  162. data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Context.tmPreferences +0 -19
  163. data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Should.tmPreferences +0 -19
  164. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory attributes for.tmSnippet +0 -16
  165. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory build.tmSnippet +0 -16
  166. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory.tmSnippet +0 -16
  167. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define with class.tmSnippet +0 -18
  168. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define.tmSnippet +0 -18
  169. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_next.tmSnippet +0 -16
  170. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_sequence.tmSnippet +0 -18
  171. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_bad_value.tmSnippet +0 -16
  172. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_contains.tmSnippet +0 -16
  173. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_does_not_contain.tmSnippet +0 -16
  174. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_good_value.tmSnippet +0 -16
  175. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_same_elements.tmSnippet +0 -16
  176. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_save.tmSnippet +0 -16
  177. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_sent_email.tmSnippet +0 -18
  178. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_valid.tmSnippet +0 -16
  179. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/association.tmSnippet +0 -17
  180. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/attribute.tmSnippet +0 -17
  181. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/before_should block.tmSnippet +0 -18
  182. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block get.tmSnippet +0 -22
  183. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block post.tmSnippet +0 -23
  184. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block with setup.tmSnippet +0 -25
  185. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/setup.tmSnippet +0 -18
  186. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block with before proc.tmSnippet +0 -18
  187. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block.tmSnippet +0 -18
  188. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_allow_values_for.tmSnippet +0 -16
  189. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_assign_to.tmSnippet +0 -16
  190. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful denied.tmSnippet +0 -20
  191. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful.tmSnippet +0 -20
  192. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_belong_to.tmSnippet +0 -16
  193. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change by.tmSnippet +0 -16
  194. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change from to.tmSnippet +0 -16
  195. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_at_least.tmSnippet +0 -16
  196. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_in_range.tmSnippet +0 -16
  197. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_is.tmSnippet +0 -16
  198. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_value_in_range.tmSnippet +0 -16
  199. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_eventually.tmSnippet +0 -18
  200. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_filter_params.tmSnippet +0 -16
  201. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_and_belong_to_many.tmSnippet +0 -16
  202. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_class_methods.tmSnippet +0 -16
  203. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_column.tmSnippet +0 -16
  204. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_columns.tmSnippet +0 -16
  205. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_index.tmSnippet +0 -16
  206. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_indices.tmSnippet +0 -16
  207. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_instance_methods.tmSnippet +0 -16
  208. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_many.tmSnippet +0 -16
  209. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_named_scope.tmSnippet +0 -16
  210. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_one.tmSnippet +0 -16
  211. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_readonly_attributes.tmSnippet +0 -16
  212. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_mass_assignment_of.tmSnippet +0 -16
  213. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_values_for.tmSnippet +0 -16
  214. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_assign_to.tmSnippet +0 -16
  215. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_change.tmSnippet +0 -16
  216. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_set_the_flash.tmSnippet +0 -16
  217. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_redirect_to.tmSnippet +0 -16
  218. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_a_form.tmSnippet +0 -16
  219. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_template.tmSnippet +0 -16
  220. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_with_layout.tmSnippet +0 -16
  221. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_without_layout.tmSnippet +0 -16
  222. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with.tmSnippet +0 -16
  223. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with_content_type.tmSnippet +0 -16
  224. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_return_from_session.tmSnippet +0 -16
  225. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_route.tmSnippet +0 -16
  226. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_set_the_flash_to.tmSnippet +0 -16
  227. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_acceptance_of.tmSnippet +0 -16
  228. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_numericality_of.tmSnippet +0 -16
  229. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_presence_of.tmSnippet +0 -16
  230. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of with scope.tmSnippet +0 -16
  231. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of.tmSnippet +0 -16
  232. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
  233. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/run_script.rb +0 -104
  234. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
  235. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/test.rb +0 -17
  236. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/todo.txt +0 -13
  237. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/bin/yaml_to_shoulda.rb +0 -25
  238. data/vendor/TextMate/Ruby Shoulda.tmbundle/Syntaxes/Ruby on Rails (Shoulda).tmLanguage +0 -166
  239. data/vendor/TextMate/Ruby Shoulda.tmbundle/info.plist +0 -304
  240. data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +0 -37
  241. data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +0 -52
  242. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
  243. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +0 -118
  244. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
  245. data/vendor/TextMate/Zena.tmbundle/info.plist +0 -17
@@ -11,6 +11,7 @@ Letter:
11
11
  # We build a 'search' property that is indexed to do funky searching without
12
12
  # fulltext
13
13
  prop_eval: "{'search' => %Q{#{title} paper:#{paper}}, 'search_mono' => %Q{#{paper} mono}}"
14
+ icon: '/images/page.png'
14
15
 
15
16
  Post:
16
17
  kpath: NNP
@@ -30,8 +31,8 @@ Contact:
30
31
  prop_eval: "{'title' => \"#{first_name} #{name}\"}"
31
32
  idx_scope: "{'reference' => 'references', 'contact' => 'project'}"
32
33
 
33
- Tracker:
34
- kpath: NPA
34
+ TestNode:
35
+ kpath: NPE
35
36
  real_class: Page
36
37
  create_group: admin
37
38
 
@@ -348,6 +348,7 @@ opening_en:
348
348
  user: tiger
349
349
  comment: english opening
350
350
  number: 2
351
+ updated_at: 2006-04-15
351
352
  prop:
352
353
  title: parc opening
353
354
  date: 2006-03-15
@@ -363,6 +364,7 @@ opening_red_fr:
363
364
  lang: fr
364
365
  status: red
365
366
  number: 3
367
+ updated_at: 2006-04-16
366
368
  prop:
367
369
  date: 2006-03-15
368
370
  comment: new redaction for opening
@@ -379,13 +381,13 @@ status_fr:
379
381
  summary: status summary
380
382
  text: status text
381
383
 
382
- track_en:
383
- node: track
384
+ test_en:
385
+ node: test
384
386
  user: tiger
385
387
  prop:
386
388
  comment: small presentation
387
- title: Keeping things clean !
388
- summary: This page is a *Tracker*. It stores open Bugs, tasks and actions.
389
+ title: Kill the bugs
390
+ summary: "<a href='?test=all'>View all ajax tests</a>."
389
391
 
390
392
  strange_en_red:
391
393
  node: strange
@@ -651,16 +653,15 @@ Node_popup_layout_zafu_en:
651
653
  content_type: text/zafu
652
654
  ext: zafu
653
655
 
654
- Node_test_en:
655
- node: Node_test_zafu
656
+ TestNode_en:
657
+ node: TestNode_zafu
656
658
  user: tiger
657
659
  prop:
658
- text: "[FILE:test/fixtures/files/Node-test.zafu]"
659
- title: Node-test
660
+ text: "[FILE:test/fixtures/files/TestNode.zafu]"
661
+ title: TestNode
660
662
  format: html
661
- tkpath: N
662
- mode: test
663
- target_klass: Node
663
+ tkpath: NPE
664
+ target_klass: TestNode
664
665
  content_type: text/zafu
665
666
  ext: zafu
666
667
 
@@ -28,7 +28,7 @@ class StringExtTest < Test::Unit::TestCase
28
28
 
29
29
  assert_equal "/a/b/c", ''.abs_path('/a/b/c')
30
30
  end
31
-
31
+
32
32
  context 'A string with accents' do
33
33
  subject do
34
34
  "aïl en août"
@@ -41,8 +41,26 @@ class StringExtTest < Test::Unit::TestCase
41
41
  should 'recover original name on from_filename' do
42
42
  assert_equal subject, String.from_filename(subject.to_filename)
43
43
  end
44
+
45
+ should 'transform on urlencode' do
46
+ assert_equal 'a%C3%AFl%20en%20ao%C3%BBt', subject.urlencode
47
+ end
48
+ end # A string with accents
49
+
50
+ context 'A string with plus and dollar signs' do
51
+ subject do
52
+ "$default/Node-+index"
53
+ end
54
+
55
+ should 'keep plus on to_filename' do
56
+ assert_equal '$default%2FNode-+index', subject.to_filename
57
+ end
58
+
59
+ should 'recover original name on from_filename' do
60
+ assert_equal subject, String.from_filename(subject.to_filename)
61
+ end
44
62
  end # A string with accents
45
-
63
+
46
64
  context 'A long string' do
47
65
  subject do
48
66
  "12345678901234567890"
@@ -51,15 +69,15 @@ class StringExtTest < Test::Unit::TestCase
51
69
  should 'limit size on limit' do
52
70
  assert_equal '123456789012345…', subject.limit(15)
53
71
  end
54
-
72
+
55
73
  should 'append readmore argument on limit' do
56
74
  assert_equal '123456789012345 <a href="">read more</a>', subject.limit(15, ' <a href="">read more</a>')
57
75
  end
58
-
76
+
59
77
  should 'not append readmore argument if limit is not reached' do
60
78
  assert_equal '12345678901234567890', subject.limit(25, ' <a href="">read more</a>')
61
79
  end
62
-
80
+
63
81
  should 'not raise on negative limit' do
64
82
  assert_equal ' <a href="">read more</a>', subject.limit(-35, ' <a href="">read more</a>')
65
83
  end
@@ -257,9 +257,13 @@ class DocumentTest < Zena::Unit::TestCase
257
257
  assert_equal 'hopla', subject.title
258
258
  end
259
259
 
260
- should 'not change filename and filepath' do
260
+ should 'change filename' do
261
+ assert subject.update_attributes(:title => 'hopla')
262
+ assert_equal 'hopla.jpg', subject.filename
263
+ end
264
+
265
+ should 'not change filepath' do
261
266
  assert subject.update_attributes(:title => 'hopla')
262
- assert_equal 'bird.jpg', subject.filename
263
267
  assert_match /bird\.jpg$/, subject.filepath
264
268
  end
265
269
 
@@ -1415,8 +1415,8 @@ done: \"I am done\""
1415
1415
  end
1416
1416
 
1417
1417
  should 'parse pseudo ids in links' do
1418
- assert_transforms "Hi !30!:21 !30!:37 !30/nice bird!:21 !30_pv/hello ladies!:21",
1419
- "Hi !30!::clean+ !:bird!::clean !:bird/nice bird!:21 !30_pv/hello ladies!:21"
1418
+ assert_transforms "Hi !30!:18 !30!:34 !30/nice bird!:21 !30_pv/hello ladies!:21",
1419
+ "Hi !30!::list+ !:bird!::list !:bird/nice bird!:21 !30_pv/hello ladies!:21"
1420
1420
  end
1421
1421
 
1422
1422
  should 'not alter existing code without pseudo ids' do
@@ -256,14 +256,13 @@ class RemoteTest < Zena::Integration::TestCase
256
256
 
257
257
  should 'map missing attributes as first queries' do
258
258
  assert_equal 'Clean Water project', subject.icon_for.title
259
- assert_equal ["crocodiles", "Keeping things clean !", "Nice Bananas", "status title"], subject.project.pages.map(&:title)
259
+ assert_equal ["crocodiles", "Nice Bananas", "status title"], subject.project.pages.map(&:title)
260
260
  end
261
261
 
262
262
  should 'map missing attributes as queries' do
263
263
  assert_equal "crocodiles", subject.project.page.title
264
264
  assert_equal ["crocodiles",
265
265
  "it's a lake",
266
- "Keeping things clean !",
267
266
  "The lake we love",
268
267
  "Nice Bananas",
269
268
  "parc opening",
@@ -169,8 +169,8 @@ class RoleTest < Zena::Unit::TestCase
169
169
  end
170
170
 
171
171
  should 'export sub classes' do
172
- assert_equal(%w{Tracker Project Section Tag}, subject.keys.select{|k| k=~/\A[A-Z]/})
173
- assert_equal('VirtualClass', subject['Tracker']['type'])
172
+ assert_equal(%w{TestNode Project Section Tag}, subject.keys.select{|k| k=~/\A[A-Z]/})
173
+ assert_equal('VirtualClass', subject['TestNode']['type'])
174
174
  end
175
175
 
176
176
  context 'with linked roles' do
@@ -88,7 +88,55 @@ class UserTest < Zena::Unit::TestCase
88
88
  should 'use missing attributes from prototype' do
89
89
  assert_equal 'Iping', subject.node.prop['address']
90
90
  end
91
+
92
+ context 'with a node id' do
93
+ subject do
94
+ attrs = {
95
+ 'lang' => 'fr',
96
+ 'time_zone' => 'Europe/Zurich',
97
+ 'status' => '50',
98
+ 'password' => 'secret',
99
+ 'login' => 'bolomey',
100
+ 'group_ids' => [groups_id(:public), ''],
101
+ 'node_attributes' => {
102
+ 'id' => nodes_zip(:ant)
103
+ }
104
+ }
105
+ secure(User) { User.create(attrs) }
106
+ end
107
+
108
+ should 'link to provided node' do
109
+ assert_difference('User.count', 1) do
110
+ assert_difference('Node.count', 0) do
111
+ assert_equal 'Solenopsis Invicta', subject.node.title
112
+ end
113
+ end
114
+ end
115
+ end # with a node id
116
+
91
117
  end # Creating a new User
118
+
119
+ context 'Updating a user' do
120
+ setup do
121
+ login(:lion)
122
+ end
123
+
124
+ subject do
125
+ users(:ant)
126
+ end
127
+
128
+ context 'by changing node_id' do
129
+ setup do
130
+ subject.update_attributes('node_attributes' => {'id' => nodes_zip(:lion) })
131
+ end
132
+
133
+ should 'update link' do
134
+ assert_equal nodes_id(:lion), users(:ant).node_id
135
+ end
136
+ end # by changing node_id
137
+
138
+ end # Updating a user
139
+
92
140
 
93
141
  context 'Setting node attributes' do
94
142
  setup do
@@ -120,7 +168,6 @@ class UserTest < Zena::Unit::TestCase
120
168
  assert_not_equal @first.object_id, @second.object_id
121
169
  end
122
170
  end # more then once
123
-
124
171
  end # Setting node attributes
125
172
 
126
173
  context 'On a user' do
@@ -123,10 +123,10 @@ class VirtualClassTest < Zena::Unit::TestCase
123
123
  def test_node_classes_read_group
124
124
  login(:anon)
125
125
  classes_for_form = Node.classes_for_form
126
- assert !classes_for_form.include?(["    Tracker", "Tracker"])
126
+ assert !classes_for_form.include?(["    TestNode", "TestNode"])
127
127
  login(:lion)
128
128
  classes_for_form = Node.classes_for_form
129
- assert classes_for_form.include?(["    Tracker", "Tracker"])
129
+ assert classes_for_form.include?(["    TestNode", "TestNode"])
130
130
  end
131
131
 
132
132
  def test_vkind_of
@@ -166,7 +166,7 @@ class VirtualClassTest < Zena::Unit::TestCase
166
166
  def test_superclass
167
167
  assert_equal VirtualClass['Note'], roles(:Post).superclass
168
168
  assert_equal VirtualClass['Note'], roles(:Letter).superclass
169
- assert_equal VirtualClass['Page'], roles(:Tracker).superclass
169
+ assert_equal VirtualClass['Page'], roles(:TestNode).superclass
170
170
  end
171
171
 
172
172
  def test_new_conflict_virtual_kpath
@@ -572,7 +572,7 @@ class VirtualClassTest < Zena::Unit::TestCase
572
572
 
573
573
  context 'without base or filter' do
574
574
  should 'load all classes' do
575
- assert_equal %w{N ND NDI NDT NDTT NN NNL NNP NP NPA NPP NPPB NPS NPSS NPT NR NRC}, subject.map(&:kpath).reject{|k| k =~ /\ANU|\ANDD/}.sort
575
+ assert_equal %w{N ND NDI NDT NDTT NN NNL NNP NP NPE NPP NPPB NPS NPSS NPT NR NRC}, subject.map(&:kpath).reject{|k| k =~ /\ANU|\ANDD/}.sort
576
576
  end
577
577
  end # without base or filter
578
578
 
@@ -593,7 +593,7 @@ class VirtualClassTest < Zena::Unit::TestCase
593
593
  end
594
594
 
595
595
  should 'description' do
596
- assert_equal %w{N NN NNL NNP NP NPA NPP NPPB NPS NPSS NPT NR NRC}, subject.map(&:kpath).reject{|k| k =~ /\ANU/}.sort
596
+ assert_equal %w{N NN NNL NNP NP NPE NPP NPPB NPS NPSS NPT NR NRC}, subject.map(&:kpath).reject{|k| k =~ /\ANU/}.sort
597
597
  end
598
598
  end # with a filter
599
599
 
@@ -911,8 +911,8 @@ class VirtualClassTest < Zena::Unit::TestCase
911
911
  end
912
912
 
913
913
  should 'export sub classes' do
914
- assert_equal(%w{Tracker Project Section Tag}, subject.keys.select{|k| k=~/\A[A-Z]/})
915
- assert_equal('VirtualClass', subject['Tracker']['type'])
914
+ assert_equal(%w{TestNode Project Section Tag}, subject.keys.select{|k| k=~/\A[A-Z]/})
915
+ assert_equal('VirtualClass', subject['TestNode']['type'])
916
916
  assert_equal('Class', subject['Project']['type'])
917
917
  end
918
918
 
@@ -138,7 +138,7 @@ class SecureTest < Zena::Unit::TestCase
138
138
  end
139
139
 
140
140
  should 'see redactions if she is a member of the write group' do
141
- assert_equal 7, secure(Node) { Node.count(:conditions => ['parent_id = ?', nodes_id(:cleanWater)])}
141
+ assert_equal 6, secure(Node) { Node.count(:conditions => ['parent_id = ?', nodes_id(:cleanWater)])}
142
142
  end
143
143
 
144
144
  should 'not see the node even if she is the owner' do
@@ -18,7 +18,7 @@ class RenderingTest < Zena::View::TestCase
18
18
  end
19
19
 
20
20
  should 'return a relative path on admin_layout' do
21
- assert_equal "/test.host/zafu/Default skin/Node-%2BadminLayout/en/_main.erb", controller.admin_layout
21
+ assert_equal "/test.host/zafu/Default skin/Node-+adminLayout/en/_main.erb", controller.admin_layout
22
22
  end
23
23
  end # Rendering
24
24
 
@@ -2,11 +2,11 @@ require 'test_helper'
2
2
 
3
3
  class UrlsTest < Zena::View::TestCase
4
4
  include Zena::Use::Urls::ViewMethods
5
-
5
+
6
6
  def host_with_port
7
7
  "foo.com:123"
8
8
  end
9
-
9
+
10
10
  def http_protocol
11
11
  'https'
12
12
  end
@@ -116,7 +116,7 @@ class UrlsTest < Zena::View::TestCase
116
116
  node = secure!(Node) { nodes(:status) }
117
117
  assert_equal "/en/projects-list/Clean-Water-project/page22.abcd.png?1144713600", zen_path(node, :asset => 'abcd', :format => 'png')
118
118
  end
119
-
119
+
120
120
  def test_zen_url
121
121
  login(:anon)
122
122
  node = secure!(Node) { nodes(:zena) }
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"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Gaspard Bucher"]
12
- s.date = %q{2011-06-15}
12
+ s.date = %q{2011-07-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}
@@ -281,6 +281,7 @@ Gem::Specification.new do |s|
281
281
  "bricks/acls/lib/bricks/acls.rb",
282
282
  "bricks/acls/zena/init.rb",
283
283
  "bricks/acls/zena/migrate/20110509141600_create_acls.rb",
284
+ "bricks/acls/zena/migrate/20110627193757_add_allowed_mode_and_format_to_acl.rb",
284
285
  "bricks/acls/zena/test/integration/acl_integration_test.rb",
285
286
  "bricks/acls/zena/test/sites/erebus/acls.yml",
286
287
  "bricks/acls/zena/test/sites/erebus/groups.yml",
@@ -324,6 +325,8 @@ Gem::Specification.new do |s|
324
325
  "bricks/pdf/test/shoulda_macros/shoulda_pdf.rb",
325
326
  "bricks/pdf/zena/init.rb",
326
327
  "bricks/pdf/zena/tasks.rb",
328
+ "bricks/single/lib/bricks/single.rb",
329
+ "bricks/single/zena/init.rb",
327
330
  "bricks/sphinx/MIT-LICENSE",
328
331
  "bricks/sphinx/README",
329
332
  "bricks/sphinx/lib/bricks/sphinx.rb",
@@ -332,6 +335,28 @@ Gem::Specification.new do |s|
332
335
  "bricks/sphinx/zena/migrate/20091102171258_add_delta_for_sphinx.rb",
333
336
  "bricks/sphinx/zena/sphinx.yml.erb",
334
337
  "bricks/sphinx/zena/tasks.rb",
338
+ "bricks/static/lib/bricks/static.rb",
339
+ "bricks/static/zena/init.rb",
340
+ "bricks/static/zena/migrate/20110702010330_add_static_to_idx_templates.rb",
341
+ "bricks/static/zena/skins/blog/Image-edit.zafu",
342
+ "bricks/static/zena/skins/blog/Image.zafu",
343
+ "bricks/static/zena/skins/blog/Node-+index.zafu",
344
+ "bricks/static/zena/skins/blog/Node-+notFound.zafu",
345
+ "bricks/static/zena/skins/blog/Node-+search.zafu",
346
+ "bricks/static/zena/skins/blog/Node.zafu",
347
+ "bricks/static/zena/skins/blog/Post.zafu",
348
+ "bricks/static/zena/skins/blog/Project--kml.zafu",
349
+ "bricks/static/zena/skins/blog/Project.zafu",
350
+ "bricks/static/zena/skins/blog/comments.zafu",
351
+ "bricks/static/zena/skins/blog/dict.yml",
352
+ "bricks/static/zena/skins/blog/img/dateBg.jpg",
353
+ "bricks/static/zena/skins/blog/img/header.png",
354
+ "bricks/static/zena/skins/blog/img/mapPin.png",
355
+ "bricks/static/zena/skins/blog/img/menu.gif",
356
+ "bricks/static/zena/skins/blog/img/menuover.gif",
357
+ "bricks/static/zena/skins/blog/img/style.css",
358
+ "bricks/static/zena/test/integration/static_integration_test.rb",
359
+ "bricks/static/zena/test/unit/static_test.rb",
335
360
  "bricks/tags/README",
336
361
  "bricks/tags/lib/bricks/tags.rb",
337
362
  "bricks/tags/zena/init.rb",
@@ -354,6 +379,8 @@ Gem::Specification.new do |s|
354
379
  "bricks/zena/zena/migrate/02_zerox1_schema.rb",
355
380
  "bricks/zena/zena/migrate/03_zerox1_data.rb",
356
381
  "bricks/zena/zena/migrate/20110315161158_add_reverse_scope_to_roles.rb",
382
+ "bricks/zena/zena/migrate/20110623072048_fix_cached_path_index.rb",
383
+ "bricks/zena/zena/migrate/20110710113731_remove_icon_field.rb",
357
384
  "config/boot.rb",
358
385
  "config/bricks.yml",
359
386
  "config/database_example.yml",
@@ -366,6 +393,7 @@ Gem::Specification.new do |s|
366
393
  "config/initializers/mime_types.rb",
367
394
  "config/initializers/zena.rb",
368
395
  "config/mongrel_upload_progress.conf",
396
+ "config/selenium.yml",
369
397
  "config/sphinx.yml",
370
398
  "db/fix/024_correct_vclass_kpath.rb",
371
399
  "db/fix/025_move_tag_into_vclass.rb",
@@ -545,12 +573,15 @@ Gem::Specification.new do |s|
545
573
  "lib/zena/db_helper/postgresql.rb",
546
574
  "lib/zena/db_helper/sqlite3.rb",
547
575
  "lib/zena/deploy.rb",
576
+ "lib/zena/deploy/app_init.rhtml",
548
577
  "lib/zena/deploy/awstats.conf.rhtml",
549
578
  "lib/zena/deploy/database.rhtml",
579
+ "lib/zena/deploy/haproxy.cnf.rhtml",
550
580
  "lib/zena/deploy/httpd.rhtml",
551
581
  "lib/zena/deploy/logrotate_app.rhtml",
552
582
  "lib/zena/deploy/logrotate_host.rhtml",
553
583
  "lib/zena/deploy/start.html",
584
+ "lib/zena/deploy/start_stop.rhtml",
554
585
  "lib/zena/deploy/stats.vhost.rhtml",
555
586
  "lib/zena/deploy/template.rb",
556
587
  "lib/zena/deploy/vhost.rhtml",
@@ -1822,7 +1853,7 @@ Gem::Specification.new do |s|
1822
1853
  "script/set_revision",
1823
1854
  "spec/controllers/versions_controller_spec.rb",
1824
1855
  "test/custom_queries/complex.host.yml",
1825
- "test/fixtures/files/Node-test.zafu",
1856
+ "test/fixtures/files/TestNode.zafu",
1826
1857
  "test/fixtures/files/bird.jpg",
1827
1858
  "test/fixtures/files/bomb.png",
1828
1859
  "test/fixtures/files/exif_sample.jpg",
@@ -1923,6 +1954,28 @@ Gem::Specification.new do |s|
1923
1954
  "test/integration/zafu_compiler/zafu_attributes.yml",
1924
1955
  "test/integration/zafu_compiler/zazen.yml",
1925
1956
  "test/integration/zafu_compiler_test.rb",
1957
+ "test/selenium.readme",
1958
+ "test/selenium/Add/0setup.rsel",
1959
+ "test/selenium/Add/add1.rsel",
1960
+ "test/selenium/Add/add2.rsel",
1961
+ "test/selenium/Add/add3.rsel",
1962
+ "test/selenium/Drop/0setup.rsel",
1963
+ "test/selenium/Drop/drop1.rsel",
1964
+ "test/selenium/Drop/drop2.rsel",
1965
+ "test/selenium/Drop/drop3.rsel",
1966
+ "test/selenium/Drop/drop4.rsel",
1967
+ "test/selenium/Drop/drop5.rsel",
1968
+ "test/selenium/Edit/0setup.rsel",
1969
+ "test/selenium/Edit/edit1.rsel",
1970
+ "test/selenium/Edit/edit2.rsel",
1971
+ "test/selenium/Edit/edit3.rsel",
1972
+ "test/selenium/Form/0setup.rsel",
1973
+ "test/selenium/Form/form1.rsel",
1974
+ "test/selenium/Form/form2.rsel",
1975
+ "test/selenium/Paginate/0setup.rsel",
1976
+ "test/selenium/Paginate/paginate1.rsel",
1977
+ "test/selenium/Toggle/0setup.rsel",
1978
+ "test/selenium/Toggle/toggle1.rsel",
1926
1979
  "test/sites/README",
1927
1980
  "test/sites/complex/columns.yml",
1928
1981
  "test/sites/complex/complex.png",
@@ -2035,95 +2088,6 @@ Gem::Specification.new do |s|
2035
2088
  "test/unit/zena/use/zafu_template_test.rb",
2036
2089
  "test/unit/zena/use/zazen_test.rb",
2037
2090
  "test/unit/zena/workflow/status_version_test.rb",
2038
- "vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run 2.tmCommand",
2039
- "vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Context.tmCommand",
2040
- "vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Focused Should.tmCommand",
2041
- "vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run.tmCommand",
2042
- "vendor/TextMate/Ruby Shoulda.tmbundle/Commands/YAML to Shoulda.tmCommand",
2043
- "vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Context.tmPreferences",
2044
- "vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Should.tmPreferences",
2045
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory attributes for.tmSnippet",
2046
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory build.tmSnippet",
2047
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory.tmSnippet",
2048
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define with class.tmSnippet",
2049
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define.tmSnippet",
2050
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_next.tmSnippet",
2051
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_sequence.tmSnippet",
2052
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_bad_value.tmSnippet",
2053
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_contains.tmSnippet",
2054
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_does_not_contain.tmSnippet",
2055
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_good_value.tmSnippet",
2056
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_same_elements.tmSnippet",
2057
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_save.tmSnippet",
2058
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_sent_email.tmSnippet",
2059
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_valid.tmSnippet",
2060
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/association.tmSnippet",
2061
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/attribute.tmSnippet",
2062
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/before_should block.tmSnippet",
2063
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block get.tmSnippet",
2064
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block post.tmSnippet",
2065
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block with setup.tmSnippet",
2066
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/setup.tmSnippet",
2067
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block with before proc.tmSnippet",
2068
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block.tmSnippet",
2069
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_allow_values_for.tmSnippet",
2070
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_assign_to.tmSnippet",
2071
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful denied.tmSnippet",
2072
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful.tmSnippet",
2073
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_belong_to.tmSnippet",
2074
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change by.tmSnippet",
2075
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change from to.tmSnippet",
2076
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_at_least.tmSnippet",
2077
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_in_range.tmSnippet",
2078
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_is.tmSnippet",
2079
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_value_in_range.tmSnippet",
2080
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_eventually.tmSnippet",
2081
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_filter_params.tmSnippet",
2082
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_and_belong_to_many.tmSnippet",
2083
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_class_methods.tmSnippet",
2084
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_column.tmSnippet",
2085
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_columns.tmSnippet",
2086
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_index.tmSnippet",
2087
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_indices.tmSnippet",
2088
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_instance_methods.tmSnippet",
2089
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_many.tmSnippet",
2090
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_named_scope.tmSnippet",
2091
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_one.tmSnippet",
2092
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_readonly_attributes.tmSnippet",
2093
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_mass_assignment_of.tmSnippet",
2094
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_values_for.tmSnippet",
2095
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_assign_to.tmSnippet",
2096
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_change.tmSnippet",
2097
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_set_the_flash.tmSnippet",
2098
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_redirect_to.tmSnippet",
2099
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_a_form.tmSnippet",
2100
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_template.tmSnippet",
2101
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_with_layout.tmSnippet",
2102
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_without_layout.tmSnippet",
2103
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with.tmSnippet",
2104
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with_content_type.tmSnippet",
2105
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_return_from_session.tmSnippet",
2106
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_route.tmSnippet",
2107
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_set_the_flash_to.tmSnippet",
2108
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_acceptance_of.tmSnippet",
2109
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_numericality_of.tmSnippet",
2110
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_presence_of.tmSnippet",
2111
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of with scope.tmSnippet",
2112
- "vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of.tmSnippet",
2113
- "vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/catch_exception.rb",
2114
- "vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/run_script.rb",
2115
- "vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/stdin_dialog.rb",
2116
- "vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/test.rb",
2117
- "vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/todo.txt",
2118
- "vendor/TextMate/Ruby Shoulda.tmbundle/Support/bin/yaml_to_shoulda.rb",
2119
- "vendor/TextMate/Ruby Shoulda.tmbundle/Syntaxes/Ruby on Rails (Shoulda).tmLanguage",
2120
- "vendor/TextMate/Ruby Shoulda.tmbundle/info.plist",
2121
- "vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand",
2122
- "vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand",
2123
- "vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb",
2124
- "vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb",
2125
- "vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb",
2126
- "vendor/TextMate/Zena.tmbundle/info.plist",
2127
2091
  "vendor/apache2_upload_progress/MIT-LICENSE",
2128
2092
  "vendor/apache2_upload_progress/README",
2129
2093
  "vendor/apache2_upload_progress/mod_upload_progress.c",
@@ -2293,11 +2257,11 @@ Gem::Specification.new do |s|
2293
2257
  s.add_runtime_dependency(%q<tzinfo>, ["= 0.3.26"])
2294
2258
  s.add_runtime_dependency(%q<rails>, ["= 2.3.11"])
2295
2259
  s.add_runtime_dependency(%q<httparty>, ["= 0.7.8"])
2296
- s.add_runtime_dependency(%q<rubyless>, ["= 0.8.4"])
2260
+ s.add_runtime_dependency(%q<rubyless>, ["= 0.8.5"])
2297
2261
  s.add_runtime_dependency(%q<property>, ["= 2.2.0"])
2298
2262
  s.add_runtime_dependency(%q<uuidtools>, ["= 2.0.0"])
2299
2263
  s.add_runtime_dependency(%q<authlogic>, ["= 2.1.3"])
2300
- s.add_runtime_dependency(%q<zafu>, ["= 0.8.0"])
2264
+ s.add_runtime_dependency(%q<zafu>, ["= 0.8.2"])
2301
2265
  s.add_runtime_dependency(%q<shoulda>, ["= 2.10.3"])
2302
2266
  s.add_runtime_dependency(%q<fast_gettext>, ["~> 0.4.16"])
2303
2267
  s.add_runtime_dependency(%q<syntax>, ["= 1.0.0"])
@@ -2310,17 +2274,17 @@ Gem::Specification.new do |s|
2310
2274
  s.add_runtime_dependency(%q<hpricot>, [">= 0"])
2311
2275
  s.add_runtime_dependency(%q<differ>, ["= 0.1.2"])
2312
2276
  s.add_runtime_dependency(%q<RedCloth>, ["= 3.0.4"])
2313
- s.add_runtime_dependency(%q<querybuilder>, ["= 1.0.0"])
2277
+ s.add_runtime_dependency(%q<querybuilder>, ["= 1.0.1"])
2314
2278
  else
2315
2279
  s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
2316
2280
  s.add_dependency(%q<tzinfo>, ["= 0.3.26"])
2317
2281
  s.add_dependency(%q<rails>, ["= 2.3.11"])
2318
2282
  s.add_dependency(%q<httparty>, ["= 0.7.8"])
2319
- s.add_dependency(%q<rubyless>, ["= 0.8.4"])
2283
+ s.add_dependency(%q<rubyless>, ["= 0.8.5"])
2320
2284
  s.add_dependency(%q<property>, ["= 2.2.0"])
2321
2285
  s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
2322
2286
  s.add_dependency(%q<authlogic>, ["= 2.1.3"])
2323
- s.add_dependency(%q<zafu>, ["= 0.8.0"])
2287
+ s.add_dependency(%q<zafu>, ["= 0.8.2"])
2324
2288
  s.add_dependency(%q<shoulda>, ["= 2.10.3"])
2325
2289
  s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
2326
2290
  s.add_dependency(%q<syntax>, ["= 1.0.0"])
@@ -2333,18 +2297,18 @@ Gem::Specification.new do |s|
2333
2297
  s.add_dependency(%q<hpricot>, [">= 0"])
2334
2298
  s.add_dependency(%q<differ>, ["= 0.1.2"])
2335
2299
  s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
2336
- s.add_dependency(%q<querybuilder>, ["= 1.0.0"])
2300
+ s.add_dependency(%q<querybuilder>, ["= 1.0.1"])
2337
2301
  end
2338
2302
  else
2339
2303
  s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
2340
2304
  s.add_dependency(%q<tzinfo>, ["= 0.3.26"])
2341
2305
  s.add_dependency(%q<rails>, ["= 2.3.11"])
2342
2306
  s.add_dependency(%q<httparty>, ["= 0.7.8"])
2343
- s.add_dependency(%q<rubyless>, ["= 0.8.4"])
2307
+ s.add_dependency(%q<rubyless>, ["= 0.8.5"])
2344
2308
  s.add_dependency(%q<property>, ["= 2.2.0"])
2345
2309
  s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
2346
2310
  s.add_dependency(%q<authlogic>, ["= 2.1.3"])
2347
- s.add_dependency(%q<zafu>, ["= 0.8.0"])
2311
+ s.add_dependency(%q<zafu>, ["= 0.8.2"])
2348
2312
  s.add_dependency(%q<shoulda>, ["= 2.10.3"])
2349
2313
  s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
2350
2314
  s.add_dependency(%q<syntax>, ["= 1.0.0"])
@@ -2357,7 +2321,7 @@ Gem::Specification.new do |s|
2357
2321
  s.add_dependency(%q<hpricot>, [">= 0"])
2358
2322
  s.add_dependency(%q<differ>, ["= 0.1.2"])
2359
2323
  s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
2360
- s.add_dependency(%q<querybuilder>, ["= 1.0.0"])
2324
+ s.add_dependency(%q<querybuilder>, ["= 1.0.1"])
2361
2325
  end
2362
2326
  end
2363
2327