graffle 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +5 -0
- data/Manifest.txt +22 -11
- data/README.txt +2 -2
- data/Rakefile.hoe +2 -1
- data/design-notes/graphical-tests-for-rails-objects.graffle +644 -0
- data/examples/objects with notes.expected +5 -0
- data/examples/objects with notes.graffle +338 -0
- data/examples/objects with notes.rb +42 -0
- data/examples/rails-workflow-test.expected +1 -1
- data/examples/rails-workflow-test.graffle/data.plist +86 -7
- data/examples/rails-workflow-test.rb +11 -9
- data/graffle.tmproj +82 -190
- data/lib/graffle.rb +19 -2
- data/lib/graffle/point.rb +1 -2
- data/lib/graffle/stereotypes.rb +62 -16
- data/lib/graffle/version.rb +1 -1
- data/lib/graphical_tests_for_rails.rb +8 -5
- data/lib/graphical_tests_for_rails/graphic-volunteers.rb +75 -0
- data/lib/graphical_tests_for_rails/orderings.rb +90 -84
- data/lib/graphical_tests_for_rails/picture-appliers.rb +225 -0
- data/lib/graphical_tests_for_rails/text-appliers.rb +135 -0
- data/lib/graphical_tests_for_rails/volunteer-pool.rb +115 -0
- data/test/abstract-graphic-tests.rb +48 -0
- data/test/document-tests.rb +5 -5
- data/test/examples-tests.rb +42 -0
- data/test/graphical_tests_for_rails/{graphic-interpreter-tests.rb → deprecated-graphic-interpreter-tests.rb} +11 -21
- data/test/graphical_tests_for_rails/graphic-volunteer-tests.rb +218 -0
- data/test/graphical_tests_for_rails/in-workflow-order-tests.rb +1 -1
- data/test/graphical_tests_for_rails/picture-applier-tests.rb +215 -0
- data/test/graphical_tests_for_rails/{text-interpreter-tests.rb → text-applier-tests.rb} +17 -3
- data/test/graphical_tests_for_rails/util.rb +16 -0
- data/test/line-graphic-tests.rb +9 -1
- data/test/note-tests.rb +62 -0
- data/test/{graffle-file-types → sample-files}/as-a-package.graffle/data.plist +0 -0
- data/test/{graffle-file-types → sample-files}/as-a-package.graffle/image1.png +0 -0
- data/test/{graffle-file-types → sample-files}/as-a-package.graffle/image2.png +0 -0
- data/test/{graffle-file-types → sample-files}/as-a-package.graffle/image3.png +0 -0
- data/test/{graffle-file-types → sample-files}/multiple-canvases.graffle +0 -0
- data/test/{graffle-file-types → sample-files}/opening-tests.rb +9 -4
- data/test/{graffle-file-types → sample-files}/two-boxes-and-a-line.graffle +0 -0
- data/test/shaped-graphic-tests.rb +2 -3
- metadata +42 -18
- data/lib/graphical_tests_for_rails/interpreters.rb +0 -147
- data/test/tests-of-examples/workflow-slowtests.rb +0 -19
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: graffle
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2007-07-
|
6
|
+
version: 0.1.9
|
7
|
+
date: 2007-07-25 00:00:00 -05:00
|
8
8
|
summary: Working with OmniGraffle documents, including support for Rails integration tests.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -35,6 +35,10 @@ files:
|
|
35
35
|
- README.txt
|
36
36
|
- Rakefile
|
37
37
|
- Rakefile.hoe
|
38
|
+
- design-notes/graphical-tests-for-rails-objects.graffle
|
39
|
+
- examples/objects with notes.expected
|
40
|
+
- examples/objects with notes.graffle
|
41
|
+
- examples/objects with notes.rb
|
38
42
|
- examples/rails-workflow-test.expected
|
39
43
|
- examples/rails-workflow-test.graffle/data.plist
|
40
44
|
- examples/rails-workflow-test.graffle/image1.png
|
@@ -50,49 +54,60 @@ files:
|
|
50
54
|
- lib/graffle/styled-text-reader.rb
|
51
55
|
- lib/graffle/version.rb
|
52
56
|
- lib/graphical_tests_for_rails.rb
|
53
|
-
- lib/graphical_tests_for_rails/
|
57
|
+
- lib/graphical_tests_for_rails/graphic-volunteers.rb
|
54
58
|
- lib/graphical_tests_for_rails/orderings.rb
|
59
|
+
- lib/graphical_tests_for_rails/picture-appliers.rb
|
60
|
+
- lib/graphical_tests_for_rails/text-appliers.rb
|
61
|
+
- lib/graphical_tests_for_rails/volunteer-pool.rb
|
55
62
|
- setup.rb
|
56
63
|
- test/abstract-graphic-tests.rb
|
57
64
|
- test/array-and-hash-stereotyping-tests.rb
|
58
65
|
- test/document-tests.rb
|
59
|
-
- test/
|
60
|
-
- test/
|
61
|
-
- test/
|
62
|
-
- test/graffle-file-types/as-a-package.graffle/image3.png
|
63
|
-
- test/graffle-file-types/multiple-canvases.graffle
|
64
|
-
- test/graffle-file-types/opening-tests.rb
|
65
|
-
- test/graffle-file-types/two-boxes-and-a-line.graffle
|
66
|
-
- test/graphical_tests_for_rails/graphic-interpreter-tests.rb
|
66
|
+
- test/examples-tests.rb
|
67
|
+
- test/graphical_tests_for_rails/deprecated-graphic-interpreter-tests.rb
|
68
|
+
- test/graphical_tests_for_rails/graphic-volunteer-tests.rb
|
67
69
|
- test/graphical_tests_for_rails/in-workflow-order-tests.rb
|
68
|
-
- test/graphical_tests_for_rails/
|
70
|
+
- test/graphical_tests_for_rails/picture-applier-tests.rb
|
71
|
+
- test/graphical_tests_for_rails/text-applier-tests.rb
|
72
|
+
- test/graphical_tests_for_rails/util.rb
|
69
73
|
- test/group-tests.rb
|
70
74
|
- test/hacks-tests.rb
|
71
75
|
- test/line-graphic-tests.rb
|
76
|
+
- test/note-tests.rb
|
72
77
|
- test/point-tests.rb
|
78
|
+
- test/sample-files/as-a-package.graffle/data.plist
|
79
|
+
- test/sample-files/as-a-package.graffle/image1.png
|
80
|
+
- test/sample-files/as-a-package.graffle/image2.png
|
81
|
+
- test/sample-files/as-a-package.graffle/image3.png
|
82
|
+
- test/sample-files/multiple-canvases.graffle
|
83
|
+
- test/sample-files/opening-tests.rb
|
84
|
+
- test/sample-files/two-boxes-and-a-line.graffle
|
73
85
|
- test/set-standalone-test-paths.rb
|
74
86
|
- test/shaped-graphic-tests.rb
|
75
87
|
- test/sheet-tests.rb
|
76
88
|
- test/styled-text-reader-tests.rb
|
77
|
-
- test/tests-of-examples/workflow-slowtests.rb
|
78
89
|
- test/text-tests.rb
|
79
90
|
- test/util.rb
|
80
91
|
test_files:
|
81
92
|
- test/abstract-graphic-tests.rb
|
82
93
|
- test/array-and-hash-stereotyping-tests.rb
|
83
94
|
- test/document-tests.rb
|
95
|
+
- test/examples-tests.rb
|
84
96
|
- test/group-tests.rb
|
85
97
|
- test/hacks-tests.rb
|
86
98
|
- test/line-graphic-tests.rb
|
99
|
+
- test/note-tests.rb
|
87
100
|
- test/point-tests.rb
|
88
101
|
- test/shaped-graphic-tests.rb
|
89
102
|
- test/sheet-tests.rb
|
90
103
|
- test/styled-text-reader-tests.rb
|
91
104
|
- test/text-tests.rb
|
92
|
-
- test/
|
93
|
-
- test/graphical_tests_for_rails/graphic-
|
105
|
+
- test/graphical_tests_for_rails/deprecated-graphic-interpreter-tests.rb
|
106
|
+
- test/graphical_tests_for_rails/graphic-volunteer-tests.rb
|
94
107
|
- test/graphical_tests_for_rails/in-workflow-order-tests.rb
|
95
|
-
- test/graphical_tests_for_rails/
|
108
|
+
- test/graphical_tests_for_rails/picture-applier-tests.rb
|
109
|
+
- test/graphical_tests_for_rails/text-applier-tests.rb
|
110
|
+
- test/sample-files/opening-tests.rb
|
96
111
|
rdoc_options:
|
97
112
|
- --main
|
98
113
|
- README.txt
|
@@ -133,7 +148,16 @@ dependencies:
|
|
133
148
|
requirements:
|
134
149
|
- - ">="
|
135
150
|
- !ruby/object:Gem::Version
|
136
|
-
version: 1.0.
|
151
|
+
version: 1.0.1
|
152
|
+
version:
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: fluid
|
155
|
+
version_requirement:
|
156
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 1.0.1
|
137
161
|
version:
|
138
162
|
- !ruby/object:Gem::Dependency
|
139
163
|
name: hoe
|
@@ -142,5 +166,5 @@ dependencies:
|
|
142
166
|
requirements:
|
143
167
|
- - ">="
|
144
168
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.2.
|
169
|
+
version: 1.2.2
|
146
170
|
version:
|
@@ -1,147 +0,0 @@
|
|
1
|
-
require 'enumerator'
|
2
|
-
require 'test/unit/assertionfailederror'
|
3
|
-
|
4
|
-
module GraphicalTestsForRails
|
5
|
-
|
6
|
-
# A GraphicInterpreter takes a list of _graphics_, some
|
7
|
-
# instructions about how to interpret them, and a _target_.
|
8
|
-
# It interprets the instructions to create messages that it then
|
9
|
-
# sends to the target.
|
10
|
-
#
|
11
|
-
class GraphicInterpreter
|
12
|
-
|
13
|
-
# The _graphics_ are an array of OmniGraffle AbstractGraphic objects. The
|
14
|
-
# _instructions_ map a string to an object that must respond to
|
15
|
-
# produce_method_call. (See AbstractMessageMaker#produce_method_call
|
16
|
-
# for more.)
|
17
|
-
#
|
18
|
-
# Here are the available instructions (keys in _instructions_):
|
19
|
-
#
|
20
|
-
# * ['line labels' => ...]: each line within the (single)
|
21
|
-
# label on the line is to be interpreted as a message-send by an
|
22
|
-
# instance of the given class.
|
23
|
-
# * ['shaped graphic text' => ...]: each line of content
|
24
|
-
# within the graphic is to be interpreted by the given class. The
|
25
|
-
# content is the text you type in an object after double-clicking
|
26
|
-
# on it.
|
27
|
-
# * ['text...' => ...]: a line ending in ellipses is treated this way,
|
28
|
-
# no matter what other instructions say.
|
29
|
-
#
|
30
|
-
def initialize(graphics, instructions = {})
|
31
|
-
@graphics = graphics
|
32
|
-
@line_label_strategy =
|
33
|
-
instructions['line labels']
|
34
|
-
@shaped_graphic_text_strategy =
|
35
|
-
instructions['shaped graphic text']
|
36
|
-
|
37
|
-
@ellipses_override = instructions['text...']
|
38
|
-
end
|
39
|
-
|
40
|
-
# Apply the _graphics_, according to the _instructions_, against
|
41
|
-
# the _target_.
|
42
|
-
def run_against(target)
|
43
|
-
@target = target
|
44
|
-
@log = []
|
45
|
-
@graphics.each do |g|
|
46
|
-
case g.stereotype.basename
|
47
|
-
when "ShapedGraphic"
|
48
|
-
process_commands(@shaped_graphic_text_strategy,
|
49
|
-
g.content.as_lines)
|
50
|
-
when "LineGraphic"
|
51
|
-
process_commands(@line_label_strategy,
|
52
|
-
g.label_lines)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
def process_commands(command_maker, command_lines)
|
60
|
-
return if command_maker.nil?
|
61
|
-
command_lines.each do |line|
|
62
|
-
info = if /\.\.\.\s*$/ =~ line && @ellipses_override
|
63
|
-
@ellipses_override.produce_method_call(line)
|
64
|
-
else
|
65
|
-
command_maker.produce_method_call(line)
|
66
|
-
end
|
67
|
-
begin
|
68
|
-
@log << readable(*info)
|
69
|
-
@target.send(*info)
|
70
|
-
rescue Test::Unit::AssertionFailedError, StandardError, ScriptError => e
|
71
|
-
raise e.class.new(%Q{#{e.message} after\n#{@log.join("\n")}})
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def readable(message, *args)
|
77
|
-
inspected = args.collect { |a| a.inspect }
|
78
|
-
"+ #{message}(#{inspected.join(', ')})"
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
|
-
class AbstractMessageMaker
|
84
|
-
# produce_method_call is given a string that is derived from some
|
85
|
-
# text somewhere associated with a graphic (label, contents of text
|
86
|
-
# box, annotation). It must answer an array whose first element is a
|
87
|
-
# message name. That message, along with any remaining array elements,
|
88
|
-
# is sent to the target.
|
89
|
-
#
|
90
|
-
# This class only exists so there's a place to hang this comment.
|
91
|
-
def produce_method_call; subclass_responsibility; end
|
92
|
-
end
|
93
|
-
|
94
|
-
|
95
|
-
class ArgsFromQuotedText < AbstractMessageMaker
|
96
|
-
|
97
|
-
# The arguments are quoted within the _string_.
|
98
|
-
# The message is the text before the first arg, snake-cased.
|
99
|
-
def produce_method_call(string)
|
100
|
-
quote_marker = '%<<<==-'
|
101
|
-
|
102
|
-
string = string.gsub(/(\w)'(\w)/, "#{quote_marker}\\1\\2#{quote_marker}")
|
103
|
-
tokens = string.split(/['"],?/, allow_trailing_null_fields = -1)
|
104
|
-
message = tokens[0].strip.downcase
|
105
|
-
args = tokens[1..-1]
|
106
|
-
|
107
|
-
|
108
|
-
message.gsub!(/#{quote_marker}(.)(.)#{quote_marker}/, "\\1\\2")
|
109
|
-
message.gsub!(/\s+/,'_')
|
110
|
-
message.gsub!(/-/, '_')
|
111
|
-
message.gsub!(/\W/, '')
|
112
|
-
|
113
|
-
|
114
|
-
args = args.enum_slice(2).collect { |e| e[0] }
|
115
|
-
args = args.collect do | arg |
|
116
|
-
arg.gsub(/#{quote_marker}(.)(.)#{quote_marker}/, "\\1'\\2")
|
117
|
-
end
|
118
|
-
|
119
|
-
[message] + args
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
|
124
|
-
class TextIsNameOfPage
|
125
|
-
|
126
|
-
# When producing a method call, objects of this class will
|
127
|
-
# prepend the _message_ to
|
128
|
-
# a single argument it constructs.
|
129
|
-
def initialize(message)
|
130
|
-
@message = message
|
131
|
-
end
|
132
|
-
|
133
|
-
# All of the text in the _string_ is expected to be the name
|
134
|
-
# of a page. It is downcased and treated as the single argument to
|
135
|
-
# the message passed to +new+.
|
136
|
-
def produce_method_call(string)
|
137
|
-
[@message, string.downcase.strip]
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
class Ineffectual # :nodoc:
|
142
|
-
def produce_method_call(string)
|
143
|
-
[:object_id] # no_op
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# Created by Brian Marick on 2007-07-11.
|
4
|
-
# Copyright (c) 2007. All rights reserved.
|
5
|
-
|
6
|
-
require "../set-standalone-test-paths.rb" unless $started_from_rakefile
|
7
|
-
require "test/unit"
|
8
|
-
require 's4t-utils'
|
9
|
-
|
10
|
-
|
11
|
-
class TestThatExamplesWork < Test::Unit::TestCase
|
12
|
-
In_examples = "cd #{PACKAGE_ROOT}/examples;"
|
13
|
-
def test_all
|
14
|
-
system "#{In_examples} ruby rails-workflow-test.rb > rails-workflow-test.actual 2>&1"
|
15
|
-
system("#{In_examples} diff rails-workflow-test.{e*,a*}")
|
16
|
-
assert_equal(0, $?)
|
17
|
-
system "#{In_examples} rm rails-workflow-test.actual" if $? == 0
|
18
|
-
end
|
19
|
-
end
|