zena 1.0.0 → 1.1.0

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