vamp 0.1.3 → 0.1.4
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +20 -3
- data/lib/vamp/art.rb +189 -0
- data/lib/vamp/graphic/context.rb +142 -0
- data/lib/vamp/graphic/dotter.rb +53 -0
- data/lib/vamp/graphic/text_dotter.rb +35 -0
- data/lib/vamp/graphic/transfer.rb +170 -0
- data/lib/vamp/graphic/transfer5.rb +217 -0
- data/lib/vamp/graphic.rb +17 -0
- data/lib/vamp/version.rb +1 -1
- data/lib/vamp.rb +5 -12
- data/sample/gui.rb +98 -0
- data/spec/art_spec.rb +56 -0
- data/spec/graphic/context_spec.rb +364 -0
- data/spec/graphic/transfer5_spec.rb +179 -0
- data/spec/graphic/transfer_spec.rb +221 -0
- data/spec/spec_helper.rb +8 -0
- data/spec/vamp_spec.rb +1 -0
- metadata +18 -2
@@ -0,0 +1,221 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Vamp::Graphic::Transfer do
|
4
|
+
describe "screen 9x9" do
|
5
|
+
subject do
|
6
|
+
s = described_class.new(Vamp::Graphic::Context.new(Vamp::Graphic::TextDotter.new(9, 9)))
|
7
|
+
s.context.draw_line_direct 0, 0, 8, 8
|
8
|
+
s.context.draw_line_direct 2, 8, 8, 5
|
9
|
+
s.context.draw_line_direct 7, 0, 7, 0
|
10
|
+
s
|
11
|
+
end
|
12
|
+
it "has correct starting picture" do
|
13
|
+
expect(subject.context.screen).to eq <<-'END'
|
14
|
+
+---------+
|
15
|
+
|X X |
|
16
|
+
| X |
|
17
|
+
| X |
|
18
|
+
| X |
|
19
|
+
| X |
|
20
|
+
| X X|
|
21
|
+
| XX |
|
22
|
+
| XX X |
|
23
|
+
| XX X|
|
24
|
+
+---------+
|
25
|
+
END
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#mappping" do
|
29
|
+
it "has correct minus pattern" do
|
30
|
+
expect(subject.mapping["-"].screen).to eq <<-'END'
|
31
|
+
+---+
|
32
|
+
| |
|
33
|
+
|XXX|
|
34
|
+
| |
|
35
|
+
+---+
|
36
|
+
END
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#get_pattern" do
|
41
|
+
it "gets top left pattern correct" do
|
42
|
+
expect(subject.get_pattern(0, 0).screen).to eq <<-'END'
|
43
|
+
+---+
|
44
|
+
|X |
|
45
|
+
| X |
|
46
|
+
| X|
|
47
|
+
+---+
|
48
|
+
END
|
49
|
+
end
|
50
|
+
|
51
|
+
it "gets top left + 1x pattern correct" do
|
52
|
+
expect(subject.get_pattern(1, 0).screen).to eq <<-'END'
|
53
|
+
+---+
|
54
|
+
| |
|
55
|
+
|X |
|
56
|
+
| X |
|
57
|
+
+---+
|
58
|
+
END
|
59
|
+
end
|
60
|
+
|
61
|
+
it "gets top left + 1y pattern correct" do
|
62
|
+
expect(subject.get_pattern(0, 1).screen).to eq <<-'END'
|
63
|
+
+---+
|
64
|
+
| X |
|
65
|
+
| X|
|
66
|
+
| |
|
67
|
+
+---+
|
68
|
+
END
|
69
|
+
end
|
70
|
+
|
71
|
+
it "gets empty pattern correct" do
|
72
|
+
expect(subject.get_pattern(4, 1).screen).to eq <<-'END'
|
73
|
+
+---+
|
74
|
+
| |
|
75
|
+
| |
|
76
|
+
| |
|
77
|
+
+---+
|
78
|
+
END
|
79
|
+
end
|
80
|
+
|
81
|
+
it "gets nearly empty pattern correct" do
|
82
|
+
expect(subject.get_pattern(4, 2).screen).to eq <<-'END'
|
83
|
+
+---+
|
84
|
+
| |
|
85
|
+
| |
|
86
|
+
|X |
|
87
|
+
+---+
|
88
|
+
END
|
89
|
+
end
|
90
|
+
|
91
|
+
it "gets down right pattern correct" do
|
92
|
+
expect(subject.get_pattern(6, 5).screen).to eq <<-'END'
|
93
|
+
+---+
|
94
|
+
| X|
|
95
|
+
|XX |
|
96
|
+
| X |
|
97
|
+
+---+
|
98
|
+
END
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "#get_matching" do
|
103
|
+
it "gets pipe pattern correctly" do
|
104
|
+
p = subject.create_pattern(<<-'END'
|
105
|
+
_X_
|
106
|
+
_X_
|
107
|
+
_X_
|
108
|
+
END
|
109
|
+
)
|
110
|
+
expect(subject.get_matching(p)).to eq "|"
|
111
|
+
end
|
112
|
+
|
113
|
+
it "gets correct ascii" do
|
114
|
+
expect(subject.ascii).to eq "\\ '\n" \
|
115
|
+
" \\ \n" \
|
116
|
+
" /\\"
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
describe "screen 87x51" do
|
121
|
+
subject do
|
122
|
+
s = described_class.new(Vamp::Graphic::Context.new(Vamp::Graphic::TextDotter.new(87, 51)))
|
123
|
+
s.context.line 0, 0, 43, 25
|
124
|
+
s.context.line 43, 25, 86, 50
|
125
|
+
s.context.line 43, 25, 0, 50
|
126
|
+
s.context.line 43, 25, 86, 0
|
127
|
+
s.context.line 0, 25, 43, 25
|
128
|
+
s.context.line 43, 25, 86, 25
|
129
|
+
s.context.line 43, 25, 43, 50
|
130
|
+
s.context.line 43, 25, 43, 0
|
131
|
+
s.context.line 21, 0, 43, 25
|
132
|
+
s.context.line 65, 0, 43, 25
|
133
|
+
s.context.line 21, 50, 43, 25
|
134
|
+
s.context.line 65, 50, 43, 25
|
135
|
+
s.context.line 0, 13, 43, 25
|
136
|
+
s.context.line 86, 13, 43, 25
|
137
|
+
s.context.line 0, 37, 43, 25
|
138
|
+
s.context.line 86, 37, 43, 25
|
139
|
+
s
|
140
|
+
end
|
141
|
+
it "has correct starting picture" do
|
142
|
+
expect(subject.context.screen).to eq <<-'END'
|
143
|
+
+---------------------------------------------------------------------------------------+
|
144
|
+
|X X X X X|
|
145
|
+
| XX X X X XX |
|
146
|
+
| XX X X X XX |
|
147
|
+
| XX X X X XX |
|
148
|
+
| X X X X X |
|
149
|
+
| XX X X X XX |
|
150
|
+
| XX X X X XX |
|
151
|
+
| X X X X X |
|
152
|
+
| XX X X X XX |
|
153
|
+
| XX X X X XX |
|
154
|
+
| XX X X X XX |
|
155
|
+
| X X X X X |
|
156
|
+
| XX X X X XX |
|
157
|
+
|XX XX X X X XX XX|
|
158
|
+
| XXXX X X X X X XXXX |
|
159
|
+
| XXX XX X X X XX XXX |
|
160
|
+
| XXXX XX X X X XX XXXX |
|
161
|
+
| XXXX XX X X X XX XXXX |
|
162
|
+
| XXX X X X X X XXX |
|
163
|
+
| XXXX XX X X X XX XXXX |
|
164
|
+
| XXX XX X X X XX XXX |
|
165
|
+
| XXXX X X X X X XXXX |
|
166
|
+
| XXXX XX X X X XX XXXX |
|
167
|
+
| XXX XXX X XXX XXX |
|
168
|
+
| XXXXXXXXXXX |
|
169
|
+
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
|
170
|
+
| XXXXXXXXXXX |
|
171
|
+
| XXX XXX X XXX XXX |
|
172
|
+
| XXXX XX X X X XX XXXX |
|
173
|
+
| XXXX X X X X X XXXX |
|
174
|
+
| XXX XX X X X XX XXX |
|
175
|
+
| XXXX XX X X X XX XXXX |
|
176
|
+
| XXX X X X X X XXX |
|
177
|
+
| XXXX XX X X X XX XXXX |
|
178
|
+
| XXXX XX X X X XX XXXX |
|
179
|
+
| XXX XX X X X XX XXX |
|
180
|
+
| XXXX X X X X X XXXX |
|
181
|
+
|XX XX X X X XX XX|
|
182
|
+
| XX X X X XX |
|
183
|
+
| X X X X X |
|
184
|
+
| XX X X X XX |
|
185
|
+
| XX X X X XX |
|
186
|
+
| XX X X X XX |
|
187
|
+
| X X X X X |
|
188
|
+
| XX X X X XX |
|
189
|
+
| XX X X X XX |
|
190
|
+
| X X X X X |
|
191
|
+
| XX X X X XX |
|
192
|
+
| XX X X X XX |
|
193
|
+
| XX X X X XX |
|
194
|
+
|X X X X X|
|
195
|
+
+---------------------------------------------------------------------------------------+
|
196
|
+
END
|
197
|
+
end
|
198
|
+
it "gets correct ascii" do
|
199
|
+
expect(subject.ascii.split("\n").map(&:rstrip).join("\n")).to eq (<<-'END'
|
200
|
+
\_ \ | / _/
|
201
|
+
\ \ | / /`
|
202
|
+
'_ . | .` _`
|
203
|
+
`. . | .` .'
|
204
|
+
\_ \ | ` /` _/
|
205
|
+
"-__ '\ ' | ' /` __-"
|
206
|
+
`-_ '_' | '_' _-'`
|
207
|
+
"\\/\|////"
|
208
|
+
-------------###-------------
|
209
|
+
_////|\/\\_
|
210
|
+
_-" .'.`| .`. "-_
|
211
|
+
_-'` _/`.` | . \_ '`-_
|
212
|
+
/" /` ` | \ "\
|
213
|
+
_' ' | ' '_
|
214
|
+
_' ' | ' `_
|
215
|
+
/` / | \ \
|
216
|
+
/` / | \ '\
|
217
|
+
END
|
218
|
+
).chomp
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,3 +2,11 @@ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
2
2
|
require 'vamp'
|
3
3
|
|
4
4
|
include Vamp
|
5
|
+
|
6
|
+
# we want to be able to test protected or private methods
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.before(:each) do
|
9
|
+
described_class.send(:public, *described_class.protected_instance_methods)
|
10
|
+
described_class.send(:public, *described_class.private_instance_methods)
|
11
|
+
end
|
12
|
+
end
|
data/spec/vamp_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vamp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Meyling
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -55,15 +55,27 @@ files:
|
|
55
55
|
- files/vampire.txt
|
56
56
|
- lib/vamp.rb
|
57
57
|
- lib/vamp/animator.rb
|
58
|
+
- lib/vamp/art.rb
|
58
59
|
- lib/vamp/colorize.rb
|
60
|
+
- lib/vamp/graphic.rb
|
61
|
+
- lib/vamp/graphic/context.rb
|
62
|
+
- lib/vamp/graphic/dotter.rb
|
63
|
+
- lib/vamp/graphic/text_dotter.rb
|
64
|
+
- lib/vamp/graphic/transfer.rb
|
65
|
+
- lib/vamp/graphic/transfer5.rb
|
59
66
|
- lib/vamp/ply.rb
|
60
67
|
- lib/vamp/ply/cube.rb
|
61
68
|
- lib/vamp/ply/ply_object.rb
|
62
69
|
- lib/vamp/ply/vampire.rb
|
63
70
|
- lib/vamp/version.rb
|
64
71
|
- sample/cli.rb
|
72
|
+
- sample/gui.rb
|
65
73
|
- sample/pyramid.rb
|
66
74
|
- sample/vampire.rb
|
75
|
+
- spec/art_spec.rb
|
76
|
+
- spec/graphic/context_spec.rb
|
77
|
+
- spec/graphic/transfer5_spec.rb
|
78
|
+
- spec/graphic/transfer_spec.rb
|
67
79
|
- spec/spec_helper.rb
|
68
80
|
- spec/vamp_spec.rb
|
69
81
|
- vamp.gemspec
|
@@ -92,5 +104,9 @@ signing_key:
|
|
92
104
|
specification_version: 4
|
93
105
|
summary: vampire quotes
|
94
106
|
test_files:
|
107
|
+
- spec/art_spec.rb
|
108
|
+
- spec/graphic/context_spec.rb
|
109
|
+
- spec/graphic/transfer5_spec.rb
|
110
|
+
- spec/graphic/transfer_spec.rb
|
95
111
|
- spec/spec_helper.rb
|
96
112
|
- spec/vamp_spec.rb
|