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
@@ -1,16 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>content</key>
6
- <string>should_validate_uniqueness_of :${1:method}${2:, :${3:method}${4:, :${5:method}}}</string>
7
- <key>name</key>
8
- <string>should_validate_uniqueness_of</string>
9
- <key>scope</key>
10
- <string>source.ruby.rails.shoulda</string>
11
- <key>tabTrigger</key>
12
- <string>shvuo</string>
13
- <key>uuid</key>
14
- <string>B318649B-FA23-4BC3-8405-295D6E8D461C</string>
15
- </dict>
16
- </plist>
@@ -1,39 +0,0 @@
1
- STDOUT.sync = true
2
- STDERR.sync = true
3
-
4
- require 'pathname'
5
-
6
- at_exit do
7
- if (e = $!) && !e.instance_of?(SystemExit)
8
- require "#{ENV['TM_SUPPORT_PATH']}/lib/escape"
9
- require "cgi"
10
- io = IO.for_fd(ENV['TM_ERROR_FD'].to_i)
11
-
12
- io.write "<div id='exception_report' class='framed'>\n"
13
- io.write "<p id='exception'><strong>#{e.class.name}:</strong> #{CGI.escapeHTML e.message.sub(/`(\w+)'/, '‘\1’').sub(/ -- /, ' — ')}</p>\n"
14
-
15
- io.write "<blockquote><table border='0' cellspacing='0' cellpadding='0'>\n"
16
-
17
- e.backtrace.each do |b|
18
- if b =~ /(.*?):(\d+)(?::in\s*`(.*?)')?/ then
19
- file, line, method = $1, $2, $3
20
-
21
- url, display_name = '', 'untitled document';
22
- if file != '-' && File.exists?(file) then
23
- file = Pathname.new(file).realpath.to_s
24
- url = '&url=file://' + e_url(file)
25
- display_name = File.basename(file)
26
- end
27
-
28
- io << "<tr><td><a class='near' href='txmt://open?line=#{line + url}'>"
29
- io << (method ? "method #{CGI::escapeHTML method}" : '<em>at top level</em>')
30
- io << "</a></td>\n<td>in <strong>#{CGI::escapeHTML display_name}</strong> at line #{line}</td></tr>\n"
31
- end
32
- end
33
-
34
- io.write "</table></blockquote></div>"
35
- io.flush
36
-
37
- exit!
38
- end
39
- end
@@ -1,104 +0,0 @@
1
- require "#{ENV['TM_SUPPORT_PATH']}/lib/scriptmate"
2
- require 'cgi'
3
-
4
- $SCRIPTMATE_VERSION = "$Revision: 6354 $"
5
-
6
- class RubyScript < UserScript
7
- def lang; 'Ruby' end
8
- def executable; @hashbang || ENV['TM_RUBY'] || 'ruby' end
9
- def args; ['-rcatch_exception', '-rstdin_dialog'] end
10
- def version_string
11
- ruby_path = %x{ #{executable} -e 'require "rbconfig"; print Config::CONFIG["bindir"] + "/" + Config::CONFIG["ruby_install_name"]'}
12
- res = "Ruby r" + %x{ #{executable} -e 'print RUBY_VERSION' }
13
- res + " (#{ruby_path})"
14
- end
15
- def test_script?
16
- @path =~ /(?:\b|_)(?:tc|ts|test)(?:\b|_)/ or
17
- @content =~ /\brequire\b.+(?:test\/unit|test_helper)/
18
- end
19
- def filter_cmd(cmd)
20
- if test_script?
21
- path_ary = @path.split('/')
22
- if index = path_ary.rindex('test')
23
- test_path = File.join(*path_ary[0..index])
24
- lib_path = File.join( *( path_ary[0..-2] +
25
- ['..'] * (path_ary.length - index - 1) ) +
26
- ['lib'] )
27
- if File.exist? lib_path
28
- cmd.insert(1, "-I#{e_sh lib_path}:#{e_sh test_path}")
29
- end
30
- end
31
- end
32
- cmd
33
- end
34
- end
35
-
36
- class RubyMate < ScriptMate
37
- def base_path
38
- @base_path ||= begin
39
- path_ary = @command.path.split('/')
40
- if index = path_ary.rindex('test')
41
- File.join(*path_ary[0..(index -1)])
42
- else
43
- @command.path
44
- end
45
- end
46
- end
47
-
48
- def absolute_path(path)
49
- if path =~ %r{\A/}
50
- path
51
- else
52
- "#{base_path}/#{path}"
53
- end
54
- end
55
-
56
- def full_method_name(file, method)
57
- if absolute_path(file) == @command.path
58
- method
59
- else
60
- "#{File.basename(file)} #{method}"
61
- end
62
- end
63
-
64
- def filter_stdout(str)
65
- if @command.test_script? and str =~ /\A[.EF]+\Z/
66
- # ...F....E....
67
- htmlize(str).gsub(/[EF]+/, "<span style=\"color: red\">\\&</span>") + "<br style=\"display: none\"/>"
68
- else
69
- if @command.test_script?
70
- str.map do |line|
71
-
72
- if line =~ /^(\s+)(\S.*?):(\d+)(?::in\s*`(.*?)')?/
73
- indent, file, line, method = $1, $2, $3, $4
74
-
75
- unless file == "-"
76
- indent += ' ' if file.sub!(/^\[/, "")
77
- end
78
-
79
- method = 'should...' if method =~ /^__bind/
80
-
81
- if file =~ %r{gems.*lib/shoulda}
82
- # do not show shoulda Library stuff
83
- ''
84
- else
85
- "<span><a class='near' href=\"txmt://open?url=file://#{e_url(absolute_path(file))}&amp;line=#{line}\">#{full_method_name(file, method)}</a></span>:#{line}<br/>"
86
- end
87
- elsif line =~ /([\w\_]+).*\[([\w\_\/\.]+)\:(\d+)\]/
88
- method, file, line = $1, $2, $3
89
- "<span><a class='near' href=\"txmt://open?url=file://#{e_url(absolute_path(file))}&amp;line=#{line}\">#{full_method_name(file, method)}</a></span>:#{line}<br/>"
90
- elsif line =~ /^\d+ tests, \d+ assertions, (\d+) failures, (\d+) errors/
91
- "<span style=\"color: #{$1 + $2 == "00" ? "green" : "red"}\">#{$&}</span><br/>"
92
- else
93
- htmlize(line)
94
- end
95
- end.join
96
- else
97
- htmlize(str)
98
- end
99
- end
100
- end
101
- end
102
-
103
- script = RubyScript.new(STDIN.read)
104
- RubyMate.new(script).emit_html
@@ -1,14 +0,0 @@
1
- require "ui"
2
-
3
- class TextMateSTDIN < IO
4
- def gets(sep = nil)
5
- TextMate::UI.request_string( :prompt => "Script is Requesting Input:",
6
- :button1 => "Send" ) + "\n"
7
- end
8
- end
9
-
10
- $TM_STDIN = TextMateSTDIN.new(STDIN.fileno)
11
- STDIN.reopen($TM_STDIN)
12
- def gets(sep = nil)
13
- $TM_STDIN.gets(sep)
14
- end
@@ -1,17 +0,0 @@
1
- # p __FILE__, $PROGRAM_NAME
2
-
3
- at_exit { puts "I am <at> the exit!" }
4
- puts "that’s nice"
5
- STDERR.write "this is my important stuff\n"
6
-
7
- system("echo '<strong>bad!</strong>' 1>&2")
8
-
9
- require "erb"
10
- foo = "bar"
11
- p ERB.new("<%= foo %>").result
12
-
13
- def charlie
14
- sheen
15
- end
16
-
17
- charlie
@@ -1,13 +0,0 @@
1
- Syntax Errors
2
- =============
3
- Syntax errors will be written to stderr. We should catch these and turn them into clickable links.
4
-
5
-
6
- Exit Status
7
- ===========
8
- The exit code from the process we span is not shown. This is a limitation of popen3, but we could role a replacement for that.
9
-
10
-
11
- Errors From Included Files
12
- ==========================
13
- These could be shown differently to make them distinguishable.
@@ -1,25 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require "yaml"
3
-
4
- buffer = []
5
- STDIN.each_line { |l| buffer << l }
6
-
7
- def yaml_to_context hash, indent=0
8
- indent1 = ' '*indent
9
- indent2 = ' '*(indent+1)
10
- hash.each_pair do |context,shoulds|
11
- puts indent1+"context \"#{context}\" do"
12
- puts
13
- shoulds.each do |should|
14
- yaml_to_context( should, indent+1 ) and next if should.is_a?( Hash )
15
- puts indent2+"should_eventually \"#{should.gsub(/^should +/,'')}\" do"
16
- puts indent2+"end"
17
- puts
18
- end
19
- puts indent1+"end"
20
- end
21
- end
22
-
23
- hash = YAML.load( buffer.join("\n") )
24
- # puts hash.inspect
25
- yaml_to_context hash
@@ -1,166 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>fileTypes</key>
6
- <array>
7
- <string>shoulda.rb</string>
8
- </array>
9
- <key>foldingStartMarker</key>
10
- <string>(?x)^
11
- (\s*+
12
- (module|class|def
13
- |unless|if
14
- |case
15
- |begin
16
- |for|while|until
17
- |^=begin
18
- |( "(\\.|[^"])*+" # eat a double quoted string
19
- | '(\\.|[^'])*+' # eat a single quoted string
20
- | [^#"'] # eat all but comments and strings
21
- )*
22
- ( \s (do|begin|case)
23
- | (?&lt;!\$)[-+=&amp;|*/~%^&lt;&gt;~] \s*+ (if|unless)
24
- )
25
- )\b
26
- (?! [^;]*+ ; .*? \bend\b )
27
- |( "(\\.|[^"])*+" # eat a double quoted string
28
- | '(\\.|[^'])*+' # eat a single quoted string
29
- | [^#"'] # eat all but comments and strings
30
- )*
31
- ( \{ (?! [^}]*+ \} )
32
- | \[ (?! [^\]]*+ \] )
33
- )
34
- ).*$
35
- | [#] .*? \(fold\) \s*+ $ # Sune’s special marker
36
- </string>
37
- <key>foldingStopMarker</key>
38
- <string>(?x)
39
- ( (^|;) \s*+ end \s*+ ([#].*)? $
40
- | (^|;) \s*+ end \. .* $
41
- | ^ \s*+ [}\]] \s*+ ([#].*)? $
42
- | [#] .*? \(end\) \s*+ $ # Sune’s special marker
43
- | ^=end
44
- )</string>
45
- <key>keyEquivalent</key>
46
- <string>^~R</string>
47
- <key>name</key>
48
- <string>Ruby on Rails (Shoulda)</string>
49
- <key>patterns</key>
50
- <array>
51
- <dict>
52
- <key>include</key>
53
- <string>#asserts</string>
54
- </dict>
55
- <dict>
56
- <key>include</key>
57
- <string>#macros</string>
58
- </dict>
59
- <dict>
60
- <key>include</key>
61
- <string>#setup</string>
62
- </dict>
63
- <dict>
64
- <key>include</key>
65
- <string>#context</string>
66
- </dict>
67
- <dict>
68
- <key>include</key>
69
- <string>#should</string>
70
- </dict>
71
- <dict>
72
- <key>include</key>
73
- <string>source.ruby.rails</string>
74
- </dict>
75
- <dict>
76
- <key>include</key>
77
- <string>source.ruby</string>
78
- </dict>
79
- </array>
80
- <key>repository</key>
81
- <dict>
82
- <key>asserts</key>
83
- <dict>
84
- <key>match</key>
85
- <string>\b(assert[_\w]*)\b</string>
86
- <key>name</key>
87
- <string>support.function</string>
88
- </dict>
89
- <key>context</key>
90
- <dict>
91
- <key>begin</key>
92
- <string>^\s*(context)\b</string>
93
- <key>beginCaptures</key>
94
- <dict>
95
- <key>1</key>
96
- <dict>
97
- <key>name</key>
98
- <string>keyword.other.context.ruby.shoulda</string>
99
- </dict>
100
- </dict>
101
- <key>end</key>
102
- <string>\b(do)\s*$</string>
103
- <key>endCaptures</key>
104
- <dict>
105
- <key>1</key>
106
- <dict>
107
- <key>name</key>
108
- <string>keyword.control.start-block.ruby.shoulda</string>
109
- </dict>
110
- </dict>
111
- <key>name</key>
112
- <string>meta.context.ruby.shoulda</string>
113
- <key>patterns</key>
114
- <array>
115
- <dict>
116
- <key>include</key>
117
- <string>source.ruby</string>
118
- </dict>
119
- </array>
120
- </dict>
121
- <key>macros</key>
122
- <dict>
123
- <key>match</key>
124
- <string>\b(should_validate_presence_of|should_validate_uniqueness_of|should_not_allow_mass_assignment_of|should_not_allow_values_for|should_allow_values_for|should_ensure_length_in_range|should_ensure_length_at_least|should_ensure_value_in_range|should_validate_numericality_of|should_have_many|should_have_and_belong_to_many|should_have_one|should_belong_to|should_be_restful|should_set_the_flash_to|should_not_set_the_flash|should_assign_to|should_not_assign_to|should_respond_with|should_render_template|should_redirect_to|should_render_a_form|setup|teardown|fixtures|load_all_fixtures|should_have_db_column|should_have_db_columns|should_have_index|should_have_indices|should_validate_acceptance_of|shuold_set_the_flash_to|should_have_readonly_attributes|should_change|should_not_change|should_have_named_scope|should_ensure_length_is|should_filter_params|should_respond_with_content_type|should_route|should_return_from_session)\b</string>
125
- <key>name</key>
126
- <string>support.shoulda.macro</string>
127
- </dict>
128
- <key>should</key>
129
- <dict>
130
- <key>begin</key>
131
- <string>^\s*(should|should_eventually)\b</string>
132
- <key>beginCaptures</key>
133
- <dict>
134
- <key>1</key>
135
- <dict>
136
- <key>name</key>
137
- <string>keyword.other.should.ruby.shoulda</string>
138
- </dict>
139
- </dict>
140
- <key>end</key>
141
- <string>\b(do)\s*$</string>
142
- <key>endCaptures</key>
143
- <dict>
144
- <key>1</key>
145
- <dict>
146
- <key>name</key>
147
- <string>keyword.control.start-block.ruby.shoulda</string>
148
- </dict>
149
- </dict>
150
- <key>name</key>
151
- <string>meta.should.ruby.shoulda</string>
152
- <key>patterns</key>
153
- <array>
154
- <dict>
155
- <key>include</key>
156
- <string>source.ruby</string>
157
- </dict>
158
- </array>
159
- </dict>
160
- </dict>
161
- <key>scopeName</key>
162
- <string>source.ruby.rails.shoulda</string>
163
- <key>uuid</key>
164
- <string>7ED2CAAB-8CE7-4A09-9E66-1D622C60029B</string>
165
- </dict>
166
- </plist>
@@ -1,304 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>contactEmailRot13</key>
6
- <string>qnivq@vagreanhgqrfvta.pbz</string>
7
- <key>contactName</key>
8
- <string>David Lowenfels</string>
9
- <key>description</key>
10
- <string>Support for the &lt;a href="http://thoughtbot.com/projects/shoulda"&gt;Shoulda&lt;/a&gt; testing framework.</string>
11
- <key>mainMenu</key>
12
- <dict>
13
- <key>items</key>
14
- <array>
15
- <string>6AFF5956-7774-4175-A005-9A03AF7F29B3</string>
16
- <string>2989704F-8F6B-439F-83A7-368BB174A010</string>
17
- <string>576CC2C5-2257-4F46-A6CE-E23C6A8B1128</string>
18
- <string>------------------------------------</string>
19
- <string>9AD00D7F-EB66-431C-A3BD-13DEE32BA00F</string>
20
- <string>645882B7-2BA1-4574-B268-C72716FEF111</string>
21
- <string>------------------------------------</string>
22
- <string>D8AB6BAF-153A-4134-9A46-B1273943F16D</string>
23
- <string>6DA95A99-EC2D-4F6A-98D8-333F811EB18C</string>
24
- <string>7F642DCE-BDA2-4630-8215-ECE11E31CC5F</string>
25
- <string>1C1A512C-41C9-4A59-AD99-BFD831E9196B</string>
26
- <string>------------------------------------</string>
27
- <string>90DAB123-FBEB-4355-91E6-47A069B3E071</string>
28
- <string>3556C080-5AA4-442F-A75C-65B63585ACB2</string>
29
- <string>3828AEAE-1702-4DED-9C14-5B6386E9F8CD</string>
30
- <string>D8EAA0DE-71A2-4042-8961-9E6F883C50C9</string>
31
- <string>------------------------------------</string>
32
- <string>62202304-C141-4DE7-A75C-B9BA630BA2AF</string>
33
- </array>
34
- <key>submenus</key>
35
- <dict>
36
- <key>3206D7F2-66DD-42D1-965C-0E30B3DED5D6</key>
37
- <dict>
38
- <key>items</key>
39
- <array>
40
- <string>BAA30184-458C-4E8C-97AB-1656E3404A6A</string>
41
- <string>7F83B339-D392-41AD-ABE7-84008F1477BE</string>
42
- </array>
43
- <key>name</key>
44
- <string>Assertions</string>
45
- </dict>
46
- <key>3556C080-5AA4-442F-A75C-65B63585ACB2</key>
47
- <dict>
48
- <key>items</key>
49
- <array>
50
- <string>A425CEA8-E040-4A05-8407-9963A21F8458</string>
51
- <string>FC179DAC-A1BC-476C-BB86-FD0FC62B9B1B</string>
52
- <string>------------------------------------</string>
53
- <string>108313B5-1B3C-4099-9C8C-FEB071DE6890</string>
54
- </array>
55
- <key>name</key>
56
- <string>Comparisons</string>
57
- </dict>
58
- <key>3828AEAE-1702-4DED-9C14-5B6386E9F8CD</key>
59
- <dict>
60
- <key>items</key>
61
- <array>
62
- <string>3206D7F2-66DD-42D1-965C-0E30B3DED5D6</string>
63
- <string>66D91DE2-49EB-443A-A731-95164694C0A9</string>
64
- <string>64695CAF-E89A-4C3F-BFD1-BEB52BC0E8C4</string>
65
- <string>85B0BEB3-6C12-4F9E-852D-10BD5948427C</string>
66
- </array>
67
- <key>name</key>
68
- <string>Models</string>
69
- </dict>
70
- <key>62202304-C141-4DE7-A75C-B9BA630BA2AF</key>
71
- <dict>
72
- <key>items</key>
73
- <array>
74
- <string>FE849AE2-89D1-4AEF-8C22-57D79457F0AC</string>
75
- <string>93DB4382-3BD8-4049-9422-1BD0611B3F94</string>
76
- <string>86A59E4B-D889-464F-BF4E-D935110AD5ED</string>
77
- <string>------------------------------------</string>
78
- <string>AB5CDA49-1BF3-477C-82FE-2A7F1B6B9ED2</string>
79
- <string>82E2214D-3457-42AE-A25B-DC90A270EFE4</string>
80
- <string>------------------------------------</string>
81
- <string>11B3F310-CF79-47B5-8A42-8051ECD2954C</string>
82
- <string>8750F29F-D945-4349-96A4-5CF0BF217D38</string>
83
- <string>------------------------------------</string>
84
- <string>9F6ABBA6-C780-4824-8FCA-D87E00E78B2A</string>
85
- </array>
86
- <key>name</key>
87
- <string>Factory Girl</string>
88
- </dict>
89
- <key>64695CAF-E89A-4C3F-BFD1-BEB52BC0E8C4</key>
90
- <dict>
91
- <key>items</key>
92
- <array>
93
- <string>F312BABE-A19D-4451-A714-4FA4127AD2DD</string>
94
- <string>6D66108D-9C49-4B89-A0AE-66A3BDC75EDA</string>
95
- <string>D80B7236-B3A8-4E47-B70D-57F5561419D7</string>
96
- <string>D69EC326-DE43-4757-8375-54DDFC6894ED</string>
97
- <string>------------------------------------</string>
98
- <string>38012D12-1485-13A6-56701D95CBCE3780</string>
99
- <string>279BC6CF-139C-486A-ADD3-59E7D1BFC412</string>
100
- <string>1954ED62-6BB5-4906-B178-45D639FD4101</string>
101
- <string>------------------------------------</string>
102
- <string>DBD55A6E-FEF4-4E5F-9F78-30D9ECC3FDB0</string>
103
- <string>D6C46A2F-48F1-4D25-A763-F89D5E630809</string>
104
- <string>B318649B-FA23-4BC3-8405-295D6E8D461C</string>
105
- <string>769BADDC-DA2D-4220-BF83-C0B13E2436BE</string>
106
- <string>------------------------------------</string>
107
- <string>BEC0BD89-6425-4547-9FF2-9BB35A2FAA58</string>
108
- <string>5827CC16-B6E8-4293-A3CB-3969E5062C43</string>
109
- <string>2E9D52D9-D2C0-4ED6-9073-26455DFED202</string>
110
- <string>7E8F2C3E-9490-44CA-A527-A329398064BD</string>
111
- <string>------------------------------------</string>
112
- <string>AB124E74-8CD3-4C35-8006-62DDBE5625D8</string>
113
- </array>
114
- <key>name</key>
115
- <string>Validations</string>
116
- </dict>
117
- <key>66D91DE2-49EB-443A-A731-95164694C0A9</key>
118
- <dict>
119
- <key>items</key>
120
- <array>
121
- <string>AFAC9DA9-19C9-417C-8F6D-C8757450E1A8</string>
122
- <string>91843C06-640F-4199-93B8-32D196350AE4</string>
123
- <string>43E1D56D-73E1-449B-A99B-8ECC4C438618</string>
124
- <string>5595BC8B-3932-407A-9457-968A96662D2C</string>
125
- </array>
126
- <key>name</key>
127
- <string>Associations</string>
128
- </dict>
129
- <key>7B9CF410-B340-4DD4-A158-E693806CEB56</key>
130
- <dict>
131
- <key>items</key>
132
- <array>
133
- <string>FAD1A46E-E71E-46E7-9F12-D83DE6F3290E</string>
134
- <string>27547CD9-0E8C-4E61-AF21-D56D17CBD329</string>
135
- </array>
136
- <key>name</key>
137
- <string>Respond with</string>
138
- </dict>
139
- <key>85B0BEB3-6C12-4F9E-852D-10BD5948427C</key>
140
- <dict>
141
- <key>items</key>
142
- <array>
143
- <string>C8D9DE77-4B1F-4064-9410-E1B7F785095B</string>
144
- <string>AFAFBE19-C52E-43F0-9B28-B8318134F18B</string>
145
- <string>------------------------------------</string>
146
- <string>4B75A76F-D56C-4B2D-A786-8EBDA6D21E12</string>
147
- <string>B2C2BBCD-C38C-4A5D-853A-7226DC4C440F</string>
148
- </array>
149
- <key>name</key>
150
- <string>Database</string>
151
- </dict>
152
- <key>892AB0BE-0963-4B50-B341-2B9E1BC7A6CB</key>
153
- <dict>
154
- <key>items</key>
155
- <array>
156
- <string>E3A9360A-3177-41C4-B21B-B1411282FB16</string>
157
- <string>9CD1EAE0-503A-4A47-86C8-3FC2D6868B88</string>
158
- </array>
159
- <key>name</key>
160
- <string>Flash</string>
161
- </dict>
162
- <key>90DAB123-FBEB-4355-91E6-47A069B3E071</key>
163
- <dict>
164
- <key>items</key>
165
- <array>
166
- <string>5EC9E215-BA9F-44BC-9D77-75FAC5D115C6</string>
167
- <string>C752E6BD-19C6-4BC5-A4E3-A3B266CF6B68</string>
168
- <string>F0EFD353-3EE5-45B9-A48B-EF6186977D19</string>
169
- <string>------------------------------------</string>
170
- <string>4268D9B3-8505-4CD2-8FF3-2AF4121C8CA6</string>
171
- <string>52607A32-8E8A-4A8F-9B8D-C370206E2B10</string>
172
- <string>------------------------------------</string>
173
- <string>36AB5D03-388A-4E5E-A43D-046356C65A67</string>
174
- </array>
175
- <key>name</key>
176
- <string>Assertions</string>
177
- </dict>
178
- <key>9F6ABBA6-C780-4824-8FCA-D87E00E78B2A</key>
179
- <dict>
180
- <key>items</key>
181
- <array>
182
- <string>A13D3CED-841F-4562-B8FE-BD093A5A6ADE</string>
183
- <string>71757FAE-3E48-4347-A1FD-D3FBBF3F717B</string>
184
- </array>
185
- <key>name</key>
186
- <string>Attributes</string>
187
- </dict>
188
- <key>D8EAA0DE-71A2-4042-8961-9E6F883C50C9</key>
189
- <dict>
190
- <key>items</key>
191
- <array>
192
- <string>4A3A371D-8037-4370-8C81-658A1E355F8F</string>
193
- <string>CFF59EC4-3F70-4593-9697-34241653E003</string>
194
- <string>------------------------------------</string>
195
- <string>40F75860-994B-4E9E-9879-97CE97EF1FE3</string>
196
- <string>------------------------------------</string>
197
- <string>992B2958-BD72-4E07-9627-957CD321D711</string>
198
- <string>F4A20E41-8C75-437F-BD2E-4E6E3A25E1D3</string>
199
- <string>------------------------------------</string>
200
- <string>1FB69312-1897-4A64-A7E8-F7B699F871B1</string>
201
- <string>F50ED5FA-79F1-4854-BEE6-9F43E329A23B</string>
202
- <string>84EF6B11-A96D-4964-90ED-D1E7123107D7</string>
203
- <string>E9F561DC-64C6-49E1-8F18-CFD1389579B4</string>
204
- <string>213E7120-B580-4C77-BD67-ACDC70A5D100</string>
205
- <string>7B9CF410-B340-4DD4-A158-E693806CEB56</string>
206
- <string>------------------------------------</string>
207
- <string>3072E3F8-22C5-467E-BE8C-8C14DF4308A7</string>
208
- <string>436D0EC3-9F61-46E7-9A86-C775D4515DB5</string>
209
- <string>------------------------------------</string>
210
- <string>892AB0BE-0963-4B50-B341-2B9E1BC7A6CB</string>
211
- <string>------------------------------------</string>
212
- <string>6CF2F8CC-F6B1-480E-849D-AB9F646E90EF</string>
213
- <string>6B8F56ED-F4BE-4D92-A0D8-11E79DEDF31E</string>
214
- </array>
215
- <key>name</key>
216
- <string>Controllers</string>
217
- </dict>
218
- </dict>
219
- </dict>
220
- <key>name</key>
221
- <string>Ruby Shoulda</string>
222
- <key>ordering</key>
223
- <array>
224
- <string>9AD00D7F-EB66-431C-A3BD-13DEE32BA00F</string>
225
- <string>645882B7-2BA1-4574-B268-C72716FEF111</string>
226
- <string>4A3A371D-8037-4370-8C81-658A1E355F8F</string>
227
- <string>CFF59EC4-3F70-4593-9697-34241653E003</string>
228
- <string>D8AB6BAF-153A-4134-9A46-B1273943F16D</string>
229
- <string>6DA95A99-EC2D-4F6A-98D8-333F811EB18C</string>
230
- <string>1C1A512C-41C9-4A59-AD99-BFD831E9196B</string>
231
- <string>7F642DCE-BDA2-4630-8215-ECE11E31CC5F</string>
232
- <string>6CF2F8CC-F6B1-480E-849D-AB9F646E90EF</string>
233
- <string>AFAC9DA9-19C9-417C-8F6D-C8757450E1A8</string>
234
- <string>91843C06-640F-4199-93B8-32D196350AE4</string>
235
- <string>43E1D56D-73E1-449B-A99B-8ECC4C438618</string>
236
- <string>5595BC8B-3932-407A-9457-968A96662D2C</string>
237
- <string>B318649B-FA23-4BC3-8405-295D6E8D461C</string>
238
- <string>2E9D52D9-D2C0-4ED6-9073-26455DFED202</string>
239
- <string>769BADDC-DA2D-4220-BF83-C0B13E2436BE</string>
240
- <string>AFAFBE19-C52E-43F0-9B28-B8318134F18B</string>
241
- <string>DBD55A6E-FEF4-4E5F-9F78-30D9ECC3FDB0</string>
242
- <string>F312BABE-A19D-4451-A714-4FA4127AD2DD</string>
243
- <string>BEC0BD89-6425-4547-9FF2-9BB35A2FAA58</string>
244
- <string>5827CC16-B6E8-4293-A3CB-3969E5062C43</string>
245
- <string>7E8F2C3E-9490-44CA-A527-A329398064BD</string>
246
- <string>6D66108D-9C49-4B89-A0AE-66A3BDC75EDA</string>
247
- <string>38012D12-1485-13A6-56701D95CBCE3780</string>
248
- <string>279BC6CF-139C-486A-ADD3-59E7D1BFC412</string>
249
- <string>1954ED62-6BB5-4906-B178-45D639FD4101</string>
250
- <string>D80B7236-B3A8-4E47-B70D-57F5561419D7</string>
251
- <string>1FB69312-1897-4A64-A7E8-F7B699F871B1</string>
252
- <string>F50ED5FA-79F1-4854-BEE6-9F43E329A23B</string>
253
- <string>84EF6B11-A96D-4964-90ED-D1E7123107D7</string>
254
- <string>E9F561DC-64C6-49E1-8F18-CFD1389579B4</string>
255
- <string>992B2958-BD72-4E07-9627-957CD321D711</string>
256
- <string>F4A20E41-8C75-437F-BD2E-4E6E3A25E1D3</string>
257
- <string>FAD1A46E-E71E-46E7-9F12-D83DE6F3290E</string>
258
- <string>27547CD9-0E8C-4E61-AF21-D56D17CBD329</string>
259
- <string>6B8F56ED-F4BE-4D92-A0D8-11E79DEDF31E</string>
260
- <string>213E7120-B580-4C77-BD67-ACDC70A5D100</string>
261
- <string>40F75860-994B-4E9E-9879-97CE97EF1FE3</string>
262
- <string>3072E3F8-22C5-467E-BE8C-8C14DF4308A7</string>
263
- <string>436D0EC3-9F61-46E7-9A86-C775D4515DB5</string>
264
- <string>E3A9360A-3177-41C4-B21B-B1411282FB16</string>
265
- <string>9CD1EAE0-503A-4A47-86C8-3FC2D6868B88</string>
266
- <string>D69EC326-DE43-4757-8375-54DDFC6894ED</string>
267
- <string>2989704F-8F6B-439F-83A7-368BB174A010</string>
268
- <string>6AFF5956-7774-4175-A005-9A03AF7F29B3</string>
269
- <string>576CC2C5-2257-4F46-A6CE-E23C6A8B1128</string>
270
- <string>12D5C90B-1C0A-40F4-B362-BE69BEC4D0F2</string>
271
- <string>7ED2CAAB-8CE7-4A09-9E66-1D622C60029B</string>
272
- <string>97B45B1D-6350-44AB-BBA6-40F5554E1E1E</string>
273
- <string>CF7E37B9-B0A1-414C-97D1-3C25F6F047FA</string>
274
- <string>C8D9DE77-4B1F-4064-9410-E1B7F785095B</string>
275
- <string>4B75A76F-D56C-4B2D-A786-8EBDA6D21E12</string>
276
- <string>B2C2BBCD-C38C-4A5D-853A-7226DC4C440F</string>
277
- <string>AB124E74-8CD3-4C35-8006-62DDBE5625D8</string>
278
- <string>D6C46A2F-48F1-4D25-A763-F89D5E630809</string>
279
- <string>A425CEA8-E040-4A05-8407-9963A21F8458</string>
280
- <string>FC179DAC-A1BC-476C-BB86-FD0FC62B9B1B</string>
281
- <string>108313B5-1B3C-4099-9C8C-FEB071DE6890</string>
282
- <string>5EC9E215-BA9F-44BC-9D77-75FAC5D115C6</string>
283
- <string>C752E6BD-19C6-4BC5-A4E3-A3B266CF6B68</string>
284
- <string>F0EFD353-3EE5-45B9-A48B-EF6186977D19</string>
285
- <string>4268D9B3-8505-4CD2-8FF3-2AF4121C8CA6</string>
286
- <string>52607A32-8E8A-4A8F-9B8D-C370206E2B10</string>
287
- <string>36AB5D03-388A-4E5E-A43D-046356C65A67</string>
288
- <string>BAA30184-458C-4E8C-97AB-1656E3404A6A</string>
289
- <string>7F83B339-D392-41AD-ABE7-84008F1477BE</string>
290
- <string>FE849AE2-89D1-4AEF-8C22-57D79457F0AC</string>
291
- <string>93DB4382-3BD8-4049-9422-1BD0611B3F94</string>
292
- <string>86A59E4B-D889-464F-BF4E-D935110AD5ED</string>
293
- <string>AB5CDA49-1BF3-477C-82FE-2A7F1B6B9ED2</string>
294
- <string>82E2214D-3457-42AE-A25B-DC90A270EFE4</string>
295
- <string>11B3F310-CF79-47B5-8A42-8051ECD2954C</string>
296
- <string>8750F29F-D945-4349-96A4-5CF0BF217D38</string>
297
- <string>A13D3CED-841F-4562-B8FE-BD093A5A6ADE</string>
298
- <string>71757FAE-3E48-4347-A1FD-D3FBBF3F717B</string>
299
- <string>156042A4-5813-46D2-BA06-901C91D1A0B9</string>
300
- </array>
301
- <key>uuid</key>
302
- <string>8EDBE2CA-575A-42BC-9F36-BD4C99B4DE56</string>
303
- </dict>
304
- </plist>