zena 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +28 -0
- data/README.rdoc +6 -6
- data/Rakefile +3 -0
- data/app/controllers/users_controller.rb +4 -2
- data/app/models/acl.rb +6 -0
- data/app/models/cached_page.rb +2 -1
- data/app/models/document.rb +3 -4
- data/app/models/node.rb +8 -5
- data/app/models/site.rb +1 -1
- data/app/models/template.rb +2 -2
- data/app/models/user.rb +5 -3
- data/app/views/acls/_add.rhtml +2 -1
- data/app/views/acls/_form.rhtml +15 -7
- data/app/views/acls/_li.rhtml +2 -0
- data/app/views/acls/index.rhtml +3 -1
- data/app/views/acls/show.html.erb +1 -1
- data/app/views/links/destroy.rjs +16 -2
- data/app/views/versions/destroy.rjs +1 -1
- data/app/views/zafu/default/Node-admin.zafu +1 -1
- data/bin/zena +5 -3
- data/bricks/acls/lib/bricks/acls.rb +11 -4
- data/bricks/acls/zena/migrate/20110627193757_add_allowed_mode_and_format_to_acl.rb +11 -0
- data/bricks/acls/zena/test/integration/acl_integration_test.rb +42 -0
- data/bricks/acls/zena/test/sites/erebus/acls.yml +8 -0
- data/bricks/mongrel/zena/deploy.rb +19 -0
- data/bricks/single/lib/bricks/single.rb +15 -0
- data/bricks/single/zena/init.rb +1 -0
- data/bricks/sphinx/zena/tasks.rb +1 -1
- data/bricks/static/lib/bricks/static.rb +151 -0
- data/bricks/static/zena/init.rb +1 -0
- data/bricks/static/zena/migrate/20110702010330_add_static_to_idx_templates.rb +12 -0
- data/bricks/static/zena/skins/blog/Image-edit.zafu +6 -0
- data/bricks/static/zena/skins/blog/Image.zafu +19 -0
- data/bricks/static/zena/skins/blog/Node-+index.zafu +1 -0
- data/bricks/static/zena/skins/blog/Node-+notFound.zafu +7 -0
- data/bricks/static/zena/skins/blog/Node-+search.zafu +19 -0
- data/bricks/static/zena/skins/blog/Node.zafu +66 -0
- data/bricks/static/zena/skins/blog/Post.zafu +12 -0
- data/bricks/static/zena/skins/blog/Project--kml.zafu +30 -0
- data/bricks/static/zena/skins/blog/Project.zafu +45 -0
- data/bricks/static/zena/skins/blog/comments.zafu +30 -0
- data/bricks/static/zena/skins/blog/dict.yml +11 -0
- data/bricks/static/zena/skins/blog/img/dateBg.jpg +0 -0
- data/bricks/static/zena/skins/blog/img/header.png +0 -0
- data/bricks/static/zena/skins/blog/img/mapPin.png +0 -0
- data/bricks/static/zena/skins/blog/img/menu.gif +0 -0
- data/bricks/static/zena/skins/blog/img/menuover.gif +0 -0
- data/bricks/static/zena/skins/blog/img/style.css +110 -0
- data/bricks/static/zena/test/integration/static_integration_test.rb +30 -0
- data/bricks/static/zena/test/unit/static_test.rb +33 -0
- data/bricks/zena/zena/migrate/01_base.rb +1 -2
- data/bricks/zena/zena/migrate/20110623072048_fix_cached_path_index.rb +10 -0
- data/bricks/zena/zena/migrate/20110710113731_remove_icon_field.rb +18 -0
- data/config/bricks.yml +4 -0
- data/config/deploy.rb +17 -2
- data/config/gems.yml +9 -7
- data/config/selenium.yml +38 -0
- data/lib/bricks/requirements_validation.rb +8 -2
- data/lib/gettext_strings.rb +2 -1
- data/lib/tasks/zena.rake +5 -0
- data/lib/zena/app.rb +12 -0
- data/lib/zena/console.rb +9 -1
- data/lib/zena/core_ext/string.rb +7 -2
- data/lib/zena/deploy.rb +60 -6
- data/lib/zena/deploy/app_init.rhtml +56 -0
- data/lib/zena/deploy/haproxy.cnf.rhtml +34 -0
- data/lib/zena/deploy/httpd.rhtml +6 -0
- data/lib/zena/deploy/start_stop.rhtml +35 -0
- data/lib/zena/info.rb +1 -1
- data/lib/zena/remote/connection.rb +1 -1
- data/lib/zena/site_worker.rb +9 -5
- data/lib/zena/use.rb +1 -1
- data/lib/zena/use/action.rb +2 -2
- data/lib/zena/use/ajax.rb +22 -9
- data/lib/zena/use/conditional.rb +5 -0
- data/lib/zena/use/context.rb +6 -1
- data/lib/zena/use/dates.rb +17 -2
- data/lib/zena/use/display.rb +14 -3
- data/lib/zena/use/forms.rb +37 -47
- data/lib/zena/use/html_tags.rb +3 -0
- data/lib/zena/use/node_context.rb +17 -17
- data/lib/zena/use/rendering.rb +1 -1
- data/lib/zena/use/urls.rb +11 -2
- data/lib/zena/use/zafu_attributes.rb +1 -0
- data/lib/zena/use/zafu_safe_definitions.rb +16 -1
- data/lib/zena/use/zafu_templates.rb +39 -24
- data/lib/zena/use/zazen.rb +1 -0
- data/locale/de/LC_MESSAGES/zena.mo +0 -0
- data/locale/de/zena.po +105 -89
- data/locale/en/LC_MESSAGES/zena.mo +0 -0
- data/locale/en/zena.mo +0 -0
- data/locale/en/zena.po +188 -253
- data/locale/fr/LC_MESSAGES/zena.mo +0 -0
- data/locale/fr/zena.mo +0 -0
- data/locale/fr/zena.po +200 -257
- data/locale/zena.pot +95 -85
- data/public/javascripts/zena.js +2 -2
- data/test/fixtures/files/{Node-test.zafu → TestNode.zafu} +206 -4
- data/test/functional/nodes_controller_test.rb +2 -2
- data/test/integration/navigation_test.rb +9 -3
- data/test/integration/query_node/basic.yml +4 -4
- data/test/integration/query_node/filters.yml +2 -2
- data/test/integration/zafu_compiler/ajax.yml +6 -6
- data/test/integration/zafu_compiler/basic.yml +1 -1
- data/test/integration/zafu_compiler/calendar.yml +4 -3
- data/test/integration/zafu_compiler/conditional.yml +3 -10
- data/test/integration/zafu_compiler/context.yml +1 -1
- data/test/integration/zafu_compiler/dates.yml +9 -1
- data/test/integration/zafu_compiler/display.yml +7 -1
- data/test/integration/zafu_compiler/eval.yml +12 -46
- data/test/integration/zafu_compiler/forms.yml +1 -1
- data/test/integration/zafu_compiler/query.yml +2 -2
- data/test/integration/zafu_compiler/relations.yml +19 -9
- data/test/integration/zafu_compiler/roles.yml +12 -0
- data/test/integration/zafu_compiler/safe_definitions.yml +1 -1
- data/test/integration/zafu_compiler/urls.yml +13 -5
- data/test/integration/zafu_compiler/version.yml +6 -0
- data/test/integration/zafu_compiler/zafu_attributes.yml +4 -4
- data/test/integration/zafu_compiler_test.rb +1 -1
- data/test/selenium.readme +8 -0
- data/test/selenium/Add/0setup.rsel +12 -0
- data/test/selenium/Add/add1.rsel +22 -0
- data/test/selenium/Add/add2.rsel +22 -0
- data/test/selenium/Add/add3.rsel +22 -0
- data/test/selenium/Drop/0setup.rsel +12 -0
- data/test/selenium/Drop/drop1.rsel +25 -0
- data/test/selenium/Drop/drop2.rsel +25 -0
- data/test/selenium/Drop/drop3.rsel +51 -0
- data/test/selenium/Drop/drop4.rsel +44 -0
- data/test/selenium/Drop/drop5.rsel +16 -0
- data/test/selenium/Edit/0setup.rsel +12 -0
- data/test/selenium/Edit/edit1.rsel +31 -0
- data/test/selenium/Edit/edit2.rsel +39 -0
- data/test/selenium/Edit/edit3.rsel +40 -0
- data/test/selenium/Form/0setup.rsel +12 -0
- data/test/selenium/Form/form1.rsel +9 -0
- data/test/selenium/Form/form2.rsel +9 -0
- data/test/selenium/Paginate/0setup.rsel +12 -0
- data/test/selenium/Paginate/paginate1.rsel +24 -0
- data/test/selenium/Toggle/0setup.rsel +12 -0
- data/test/selenium/Toggle/toggle1.rsel +21 -0
- data/test/sites/zena/nodes.yml +4 -4
- data/test/sites/zena/roles.yml +3 -2
- data/test/sites/zena/versions.yml +12 -11
- data/test/unit/core_ext_test.rb +23 -5
- data/test/unit/document_test.rb +6 -2
- data/test/unit/node_test.rb +2 -2
- data/test/unit/remote_test.rb +1 -2
- data/test/unit/role_test.rb +2 -2
- data/test/unit/user_test.rb +48 -1
- data/test/unit/virtual_class_test.rb +7 -7
- data/test/unit/zena/acts/secure_test.rb +1 -1
- data/test/unit/zena/use/rendering_test.rb +1 -1
- data/test/unit/zena/use/urls_test.rb +3 -3
- data/zena.gemspec +65 -101
- metadata +67 -103
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run 2.tmCommand +0 -24
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Context.tmCommand +0 -58
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Focused Should.tmCommand +0 -88
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run.tmCommand +0 -27
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/YAML to Shoulda.tmCommand +0 -23
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Context.tmPreferences +0 -19
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Should.tmPreferences +0 -19
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory attributes for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory build.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define with class.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_next.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_sequence.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_bad_value.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_contains.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_does_not_contain.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_good_value.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_same_elements.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_save.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_sent_email.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_valid.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/association.tmSnippet +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/attribute.tmSnippet +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/before_should block.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block get.tmSnippet +0 -22
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block post.tmSnippet +0 -23
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block with setup.tmSnippet +0 -25
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/setup.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block with before proc.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_allow_values_for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_assign_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful denied.tmSnippet +0 -20
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful.tmSnippet +0 -20
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_belong_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change by.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change from to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_at_least.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_in_range.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_is.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_value_in_range.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_eventually.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_filter_params.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_and_belong_to_many.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_class_methods.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_column.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_columns.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_index.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_indices.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_instance_methods.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_many.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_named_scope.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_one.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_readonly_attributes.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_mass_assignment_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_values_for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_assign_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_change.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_set_the_flash.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_redirect_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_a_form.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_template.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_with_layout.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_without_layout.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with_content_type.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_return_from_session.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_route.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_set_the_flash_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_acceptance_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_numericality_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_presence_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of with scope.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/run_script.rb +0 -104
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/test.rb +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/todo.txt +0 -13
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/bin/yaml_to_shoulda.rb +0 -25
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Syntaxes/Ruby on Rails (Shoulda).tmLanguage +0 -166
- data/vendor/TextMate/Ruby Shoulda.tmbundle/info.plist +0 -304
- data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +0 -37
- data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +0 -52
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +0 -118
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
- 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))}&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))}&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
|
-
| (?<!\$)[-+=&|*/~%^<>~] \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 <a href="http://thoughtbot.com/projects/shoulda">Shoulda</a> 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>
|