cw 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +3 -0
- data/.travis.yml +3 -2
- data/README.md +6 -8
- data/Rakefile +5 -0
- data/classes.svg +145 -0
- data/classes.svg.dot +360 -0
- data/cw.gemspec +10 -9
- data/lib/cw.rb +6 -2
- data/lib/cw/audio_player.rb +2 -0
- data/lib/cw/book.rb +0 -27
- data/lib/cw/book_details.rb +27 -5
- data/lib/cw/current_word.rb +37 -0
- data/lib/cw/cw_dsl.rb +8 -7
- data/lib/cw/cw_params.rb +21 -0
- data/lib/cw/cw_stream.rb +3 -69
- data/lib/cw/element.rb +73 -0
- data/lib/cw/key_input.rb +1 -1
- data/lib/cw/repeat_word.rb +1 -0
- data/lib/cw/rss.rb +5 -15
- data/lib/cw/str.rb +9 -35
- data/lib/cw/tester.rb +33 -8
- data/lib/cw/text_helpers.rb +25 -0
- data/lib/cw/tone_generator.rb +1 -26
- data/lib/cw/tone_helpers.rb +33 -0
- data/lib/cw/words.rb +2 -54
- data/test/test_cw.rb +18 -11
- data/test/test_stream.rb +157 -151
- metadata +57 -52
- data/test/run_tests_continuously.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09025bf62e23f145015ed647348560e166c13640
|
4
|
+
data.tar.gz: 20c42fe062a63d93af07612f55de735082abdbc9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 08ed885767204c62256304b8da186936e1ff5d139c3e3e4e4e2779d28a3942f70b37886827970770c52fd4d29a0686d6617864fa06112937f2e706b4a1e2d19c
|
7
|
+
data.tar.gz: 830654b291168f7e33174b2e34e3004b5a4f308557d871b4838d170bd793cac3ed71e68da54b7e84e36ad2544c26b7870f6cfdd8fcec1d31be975a2ac6aa7a1a
|
data/.codeclimate.yml
CHANGED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
[![Gem Version](https://badge.fury.io/rb/cw.svg)](https://badge.fury.io/rb/cw)
|
2
2
|
[![Build Status](https://travis-ci.org/mjago/CW.svg?branch=master)](https://travis-ci.org/mjago/CW)
|
3
3
|
[![Code Climate](https://codeclimate.com/github/mjago/CW/badges/gpa.svg)](https://codeclimate.com/github/mjago/CW)
|
4
|
+
[![Dependency Status](https://gemnasium.com/badges/github.com/mjago/CW.svg)](https://gemnasium.com/github.com/mjago/CW)
|
4
5
|
|
5
6
|
## CW
|
6
7
|
|
@@ -13,7 +14,6 @@ addition to generating random words, letters, and numbers that possibly match so
|
|
13
14
|
|
14
15
|
CW also allows for real-time progress marking by indicating correct and incorrect characters and words copied in real-time. A follow mode also exists which prints the output just after it has played it (for `in head' practice).
|
15
16
|
|
16
|
-
Documentation to follow...
|
17
17
|
|
18
18
|
# Installation:
|
19
19
|
|
@@ -23,16 +23,14 @@ gem install cw
|
|
23
23
|
ruby example.rb
|
24
24
|
|
25
25
|
```
|
26
|
-
# Run tests
|
27
26
|
|
28
|
-
|
27
|
+
* Note: Currently only tested on OS X, and Ruby v1.9.3 and later.
|
29
28
|
|
30
|
-
|
31
|
-
ruby test/test_cw.rb
|
29
|
+
# Documentation:
|
32
30
|
|
33
|
-
|
31
|
+
[CW Documentation](http://mjago.github.io/CW/)
|
34
32
|
|
35
|
-
|
33
|
+
# Example test-script
|
36
34
|
|
37
35
|
```ruby
|
38
36
|
|
@@ -154,4 +152,4 @@ test.test_letters
|
|
154
152
|
|
155
153
|
# License
|
156
154
|
|
157
|
-
MIT License
|
155
|
+
[MIT License](https://raw.githubusercontent.com/mjago/CW/master/LICENSE)
|
data/Rakefile
CHANGED
data/classes.svg
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
digraph yard {
|
2
|
+
graph [rankdir=BT rank=sink outputMode=nodesfirst packMode="graph" splines=true];
|
3
|
+
node [shape=record rank=sink rankType=sink];
|
4
|
+
Root [label="{root root}" rank=sink];
|
5
|
+
CW [label="{class CW}" rank=sink];
|
6
|
+
subgraph cluster_CW {
|
7
|
+
label = "CW"; labelloc=b;
|
8
|
+
}
|
9
|
+
CW -> CwDsl;
|
10
|
+
Cl [label="{class Cl}" rank=sink];
|
11
|
+
subgraph cluster_Cl {
|
12
|
+
label = "Cl"; labelloc=b;
|
13
|
+
}
|
14
|
+
Rss [label="{class Rss}" rank=sink];
|
15
|
+
subgraph cluster_Rss {
|
16
|
+
label = "Rss"; labelloc=b;
|
17
|
+
}
|
18
|
+
Str [label="{class Str}" rank=sink];
|
19
|
+
subgraph cluster_Str {
|
20
|
+
label = "Str"; labelloc=b;
|
21
|
+
}
|
22
|
+
Book [label="{class Book}" rank=sink];
|
23
|
+
subgraph cluster_Book {
|
24
|
+
label = "Book"; labelloc=b;
|
25
|
+
}
|
26
|
+
Book -> FileDetails;
|
27
|
+
Print [label="{class Print}" rank=sink];
|
28
|
+
Print_ProgressPrint [label="{class ProgressPrint}" rank=sink];
|
29
|
+
subgraph cluster_Print_ProgressPrint {
|
30
|
+
label = "ProgressPrint"; labelloc=b;
|
31
|
+
}
|
32
|
+
subgraph cluster_Print {
|
33
|
+
label = "Print"; labelloc=b;
|
34
|
+
}
|
35
|
+
CurrentWord [label="{class CurrentWord}" rank=sink];
|
36
|
+
subgraph cluster_CurrentWord {
|
37
|
+
label = "CurrentWord"; labelloc=b;
|
38
|
+
}
|
39
|
+
Words [label="{class Words}" rank=sink];
|
40
|
+
subgraph cluster_Words {
|
41
|
+
label = "Words"; labelloc=b;
|
42
|
+
}
|
43
|
+
Voice [label="{class Voice}" rank=sink];
|
44
|
+
subgraph cluster_Voice {
|
45
|
+
label = "Voice"; labelloc=b;
|
46
|
+
}
|
47
|
+
Spoken [label="{class Spoken}" rank=sink];
|
48
|
+
subgraph cluster_Spoken {
|
49
|
+
label = "Spoken"; labelloc=b;
|
50
|
+
}
|
51
|
+
Stream [label="{class Stream}" rank=sink];
|
52
|
+
subgraph cluster_Stream {
|
53
|
+
label = "Stream"; labelloc=b;
|
54
|
+
}
|
55
|
+
CwDsl [label="{class CwDsl}" rank=sink];
|
56
|
+
subgraph cluster_CwDsl {
|
57
|
+
label = "CwDsl"; labelloc=b;
|
58
|
+
}
|
59
|
+
Timing [label="{class Timing}" rank=sink];
|
60
|
+
subgraph cluster_Timing {
|
61
|
+
label = "Timing"; labelloc=b;
|
62
|
+
}
|
63
|
+
Numbers [label="{class Numbers}" rank=sink];
|
64
|
+
subgraph cluster_Numbers {
|
65
|
+
label = "Numbers"; labelloc=b;
|
66
|
+
}
|
67
|
+
Progress [label="{class Progress}" rank=sink];
|
68
|
+
subgraph cluster_Progress {
|
69
|
+
label = "Progress"; labelloc=b;
|
70
|
+
}
|
71
|
+
Sentence [label="{class Sentence}" rank=sink];
|
72
|
+
subgraph cluster_Sentence {
|
73
|
+
label = "Sentence"; labelloc=b;
|
74
|
+
}
|
75
|
+
Alphabet [label="{class Alphabet}" rank=sink];
|
76
|
+
subgraph cluster_Alphabet {
|
77
|
+
label = "Alphabet"; labelloc=b;
|
78
|
+
}
|
79
|
+
Randomize [label="{class Randomize}" rank=sink];
|
80
|
+
subgraph cluster_Randomize {
|
81
|
+
label = "Randomize"; labelloc=b;
|
82
|
+
}
|
83
|
+
KeyInput [label="{class KeyInput}" rank=sink];
|
84
|
+
subgraph cluster_KeyInput {
|
85
|
+
label = "KeyInput"; labelloc=b;
|
86
|
+
}
|
87
|
+
CWThreads [label="{class CWThreads}" rank=sink];
|
88
|
+
subgraph cluster_CWThreads {
|
89
|
+
label = "CWThreads"; labelloc=b;
|
90
|
+
}
|
91
|
+
TestWords [label="{class TestWords}" rank=sink];
|
92
|
+
subgraph cluster_TestWords {
|
93
|
+
label = "TestWords"; labelloc=b;
|
94
|
+
}
|
95
|
+
TestWords -> FileDetails;
|
96
|
+
RepeatWord [label="{class RepeatWord}" rank=sink];
|
97
|
+
subgraph cluster_RepeatWord {
|
98
|
+
label = "RepeatWord"; labelloc=b;
|
99
|
+
}
|
100
|
+
RepeatWord -> FileDetails;
|
101
|
+
CwEncoding [label="{class CwEncoding}" rank=sink];
|
102
|
+
subgraph cluster_CwEncoding {
|
103
|
+
label = "CwEncoding"; labelloc=b;
|
104
|
+
}
|
105
|
+
MonitorKeys [label="{class MonitorKeys}" rank=sink];
|
106
|
+
subgraph cluster_MonitorKeys {
|
107
|
+
label = "MonitorKeys"; labelloc=b;
|
108
|
+
}
|
109
|
+
FileDetails [label="{class FileDetails}" rank=sink];
|
110
|
+
subgraph cluster_FileDetails {
|
111
|
+
label = "FileDetails"; labelloc=b;
|
112
|
+
}
|
113
|
+
AudioPlayer [label="{class AudioPlayer}" rank=sink];
|
114
|
+
subgraph cluster_AudioPlayer {
|
115
|
+
label = "AudioPlayer"; labelloc=b;
|
116
|
+
}
|
117
|
+
BookDetails [label="{class BookDetails}" rank=sink];
|
118
|
+
subgraph cluster_BookDetails {
|
119
|
+
label = "BookDetails"; labelloc=b;
|
120
|
+
}
|
121
|
+
TestLetters [label="{class TestLetters}" rank=sink];
|
122
|
+
subgraph cluster_TestLetters {
|
123
|
+
label = "TestLetters"; labelloc=b;
|
124
|
+
}
|
125
|
+
TestLetters -> FileDetails;
|
126
|
+
ToneGenerator [label="{class ToneGenerator}" rank=sink];
|
127
|
+
subgraph cluster_ToneGenerator {
|
128
|
+
label = "ToneGenerator"; labelloc=b;
|
129
|
+
}
|
130
|
+
subgraph cluster_ {
|
131
|
+
label = ""; labelloc=b;
|
132
|
+
Tester [label="{module Tester}" rank=sink];
|
133
|
+
subgraph cluster_Tester {
|
134
|
+
label = "Tester"; labelloc=b;
|
135
|
+
}
|
136
|
+
Process [label="{module Process}" rank=sink];
|
137
|
+
subgraph cluster_Process {
|
138
|
+
label = "Process"; labelloc=b;
|
139
|
+
}
|
140
|
+
Params [label="{module Params}" rank=sink];
|
141
|
+
subgraph cluster_Params {
|
142
|
+
label = "Params"; labelloc=b;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
}
|
data/classes.svg.dot
ADDED
@@ -0,0 +1,360 @@
|
|
1
|
+
digraph yard {
|
2
|
+
graph [bb="0,0,3661.3,126",
|
3
|
+
outputMode=nodesfirst,
|
4
|
+
packMode="graph",
|
5
|
+
rank=sink,
|
6
|
+
rankdir=BT,
|
7
|
+
splines=true
|
8
|
+
];
|
9
|
+
node [label="\N",
|
10
|
+
rank=sink,
|
11
|
+
rankType=sink,
|
12
|
+
shape=record
|
13
|
+
];
|
14
|
+
subgraph cluster_CW {
|
15
|
+
graph [label=CW,
|
16
|
+
labelloc=b
|
17
|
+
];
|
18
|
+
}
|
19
|
+
subgraph cluster_Cl {
|
20
|
+
graph [label=Cl,
|
21
|
+
labelloc=b
|
22
|
+
];
|
23
|
+
}
|
24
|
+
subgraph cluster_Rss {
|
25
|
+
graph [label=Rss,
|
26
|
+
labelloc=b
|
27
|
+
];
|
28
|
+
}
|
29
|
+
subgraph cluster_Str {
|
30
|
+
graph [label=Str,
|
31
|
+
labelloc=b
|
32
|
+
];
|
33
|
+
}
|
34
|
+
subgraph cluster_Book {
|
35
|
+
graph [label=Book,
|
36
|
+
labelloc=b
|
37
|
+
];
|
38
|
+
}
|
39
|
+
subgraph cluster_Print_ProgressPrint {
|
40
|
+
graph [label=ProgressPrint,
|
41
|
+
labelloc=b
|
42
|
+
];
|
43
|
+
}
|
44
|
+
subgraph cluster_Print {
|
45
|
+
graph [label=Print,
|
46
|
+
labelloc=b
|
47
|
+
];
|
48
|
+
}
|
49
|
+
subgraph cluster_CurrentWord {
|
50
|
+
graph [label=CurrentWord,
|
51
|
+
labelloc=b
|
52
|
+
];
|
53
|
+
}
|
54
|
+
subgraph cluster_Words {
|
55
|
+
graph [label=Words,
|
56
|
+
labelloc=b
|
57
|
+
];
|
58
|
+
}
|
59
|
+
subgraph cluster_Voice {
|
60
|
+
graph [label=Voice,
|
61
|
+
labelloc=b
|
62
|
+
];
|
63
|
+
}
|
64
|
+
subgraph cluster_Spoken {
|
65
|
+
graph [label=Spoken,
|
66
|
+
labelloc=b
|
67
|
+
];
|
68
|
+
}
|
69
|
+
subgraph cluster_Stream {
|
70
|
+
graph [label=Stream,
|
71
|
+
labelloc=b
|
72
|
+
];
|
73
|
+
}
|
74
|
+
subgraph cluster_CwDsl {
|
75
|
+
graph [label=CwDsl,
|
76
|
+
labelloc=b
|
77
|
+
];
|
78
|
+
}
|
79
|
+
subgraph cluster_Timing {
|
80
|
+
graph [label=Timing,
|
81
|
+
labelloc=b
|
82
|
+
];
|
83
|
+
}
|
84
|
+
subgraph cluster_Numbers {
|
85
|
+
graph [label=Numbers,
|
86
|
+
labelloc=b
|
87
|
+
];
|
88
|
+
}
|
89
|
+
subgraph cluster_Progress {
|
90
|
+
graph [label=Progress,
|
91
|
+
labelloc=b
|
92
|
+
];
|
93
|
+
}
|
94
|
+
subgraph cluster_Sentence {
|
95
|
+
graph [label=Sentence,
|
96
|
+
labelloc=b
|
97
|
+
];
|
98
|
+
}
|
99
|
+
subgraph cluster_Alphabet {
|
100
|
+
graph [label=Alphabet,
|
101
|
+
labelloc=b
|
102
|
+
];
|
103
|
+
}
|
104
|
+
subgraph cluster_Randomize {
|
105
|
+
graph [label=Randomize,
|
106
|
+
labelloc=b
|
107
|
+
];
|
108
|
+
}
|
109
|
+
subgraph cluster_KeyInput {
|
110
|
+
graph [label=KeyInput,
|
111
|
+
labelloc=b
|
112
|
+
];
|
113
|
+
}
|
114
|
+
subgraph cluster_CWThreads {
|
115
|
+
graph [label=CWThreads,
|
116
|
+
labelloc=b
|
117
|
+
];
|
118
|
+
}
|
119
|
+
subgraph cluster_TestWords {
|
120
|
+
graph [label=TestWords,
|
121
|
+
labelloc=b
|
122
|
+
];
|
123
|
+
}
|
124
|
+
subgraph cluster_RepeatWord {
|
125
|
+
graph [label=RepeatWord,
|
126
|
+
labelloc=b
|
127
|
+
];
|
128
|
+
}
|
129
|
+
subgraph cluster_CwEncoding {
|
130
|
+
graph [label=CwEncoding,
|
131
|
+
labelloc=b
|
132
|
+
];
|
133
|
+
}
|
134
|
+
subgraph cluster_MonitorKeys {
|
135
|
+
graph [label=MonitorKeys,
|
136
|
+
labelloc=b
|
137
|
+
];
|
138
|
+
}
|
139
|
+
subgraph cluster_FileDetails {
|
140
|
+
graph [label=FileDetails,
|
141
|
+
labelloc=b
|
142
|
+
];
|
143
|
+
}
|
144
|
+
subgraph cluster_AudioPlayer {
|
145
|
+
graph [label=AudioPlayer,
|
146
|
+
labelloc=b
|
147
|
+
];
|
148
|
+
}
|
149
|
+
subgraph cluster_BookDetails {
|
150
|
+
graph [label=BookDetails,
|
151
|
+
labelloc=b
|
152
|
+
];
|
153
|
+
}
|
154
|
+
subgraph cluster_TestLetters {
|
155
|
+
graph [label=TestLetters,
|
156
|
+
labelloc=b
|
157
|
+
];
|
158
|
+
}
|
159
|
+
subgraph cluster_ToneGenerator {
|
160
|
+
graph [label=ToneGenerator,
|
161
|
+
labelloc=b
|
162
|
+
];
|
163
|
+
}
|
164
|
+
subgraph cluster_ {
|
165
|
+
graph [bb="3299.3,8,3653.3,61",
|
166
|
+
label="",
|
167
|
+
labelloc=b
|
168
|
+
];
|
169
|
+
subgraph cluster_Tester {
|
170
|
+
graph [label=Tester,
|
171
|
+
labelloc=b
|
172
|
+
];
|
173
|
+
}
|
174
|
+
subgraph cluster_Process {
|
175
|
+
graph [label=Process,
|
176
|
+
labelloc=b
|
177
|
+
];
|
178
|
+
}
|
179
|
+
subgraph cluster_Params {
|
180
|
+
graph [label=Params,
|
181
|
+
labelloc=b
|
182
|
+
];
|
183
|
+
}
|
184
|
+
Tester [height=0.51389,
|
185
|
+
label="{module Tester}",
|
186
|
+
pos="3597.3,34.5",
|
187
|
+
rects="3549.7,16.5,3644.9,52.5",
|
188
|
+
width=1.3229];
|
189
|
+
Process [height=0.51389,
|
190
|
+
label="{module Process}",
|
191
|
+
pos="3479.3,34.5",
|
192
|
+
rects="3427.2,16.5,3531.4,52.5",
|
193
|
+
width=1.4481];
|
194
|
+
Params [height=0.51389,
|
195
|
+
label="{module Params}",
|
196
|
+
pos="3358.3,34.5",
|
197
|
+
rects="3306.9,16.5,3409.7,52.5",
|
198
|
+
width=1.4265];
|
199
|
+
}
|
200
|
+
Root [height=0.51389,
|
201
|
+
label="{root root}",
|
202
|
+
pos="32.302,34.5",
|
203
|
+
rects="0,16.5,64.604,52.5",
|
204
|
+
width=0.89727];
|
205
|
+
CW [height=0.51389,
|
206
|
+
label="{class CW}",
|
207
|
+
pos="117.3,34.5",
|
208
|
+
rects="82.669,16.5,151.93,52.5",
|
209
|
+
width=0.96202];
|
210
|
+
CwDsl [height=0.51389,
|
211
|
+
label="{class CwDsl}",
|
212
|
+
pos="117.3,107.5",
|
213
|
+
rects="74.497,89.5,160.11,125.5",
|
214
|
+
width=1.189];
|
215
|
+
CW -> CwDsl [pos="e,117.3,89.471 117.3,52.687 117.3,60.711 117.3,70.453 117.3,79.431"];
|
216
|
+
Cl [height=0.51389,
|
217
|
+
label="{class Cl}",
|
218
|
+
pos="200.3,34.5",
|
219
|
+
rects="170.33,16.5,230.27,52.5",
|
220
|
+
width=0.83252];
|
221
|
+
Rss [height=0.51389,
|
222
|
+
label="{class Rss}",
|
223
|
+
pos="281.3,34.5",
|
224
|
+
rects="247.83,16.5,314.78,52.5",
|
225
|
+
width=0.92984];
|
226
|
+
Str [height=0.51389,
|
227
|
+
label="{class Str}",
|
228
|
+
pos="364.3,34.5",
|
229
|
+
rects="332.78,16.5,395.83,52.5",
|
230
|
+
width=0.87572];
|
231
|
+
Book [height=0.51389,
|
232
|
+
label="{class Book}",
|
233
|
+
pos="452.3,34.5",
|
234
|
+
rects="413.78,16.5,490.83,52.5",
|
235
|
+
width=1.0702];
|
236
|
+
FileDetails [height=0.51389,
|
237
|
+
label="{class FileDetails}",
|
238
|
+
pos="625.3,107.5",
|
239
|
+
rects="571.23,89.5,679.38,125.5",
|
240
|
+
width=1.5021];
|
241
|
+
Book -> FileDetails [pos="e,572.49,89.417 482.05,52.51 487.7,55.493 493.63,58.453 499.3,61 519.63,70.125 542.4,78.793 562.93,86.069"];
|
242
|
+
Print [height=0.51389,
|
243
|
+
label="{class Print}",
|
244
|
+
pos="929.3,34.5",
|
245
|
+
rects="892.33,16.5,966.27,52.5",
|
246
|
+
width=1.027];
|
247
|
+
Print_ProgressPrint [height=0.51389,
|
248
|
+
label="{class ProgressPrint}",
|
249
|
+
pos="1045.3,34.5",
|
250
|
+
rects="984.22,16.5,1106.4,52.5",
|
251
|
+
width=1.6967];
|
252
|
+
CurrentWord [height=0.51389,
|
253
|
+
label="{class CurrentWord}",
|
254
|
+
pos="1184.3,34.5",
|
255
|
+
rects="1124.2,16.5,1244.4,52.5",
|
256
|
+
width=1.67];
|
257
|
+
Words [height=0.51389,
|
258
|
+
label="{class Words}",
|
259
|
+
pos="1303.3,34.5",
|
260
|
+
rects="1262,16.5,1344.6,52.5",
|
261
|
+
width=1.1483];
|
262
|
+
Voice [height=0.51389,
|
263
|
+
label="{class Voice}",
|
264
|
+
pos="1401.3,34.5",
|
265
|
+
rects="1362.3,16.5,1440.3,52.5",
|
266
|
+
width=1.0846];
|
267
|
+
Spoken [height=0.51389,
|
268
|
+
label="{class Spoken}",
|
269
|
+
pos="1502.3,34.5",
|
270
|
+
rects="1457.9,16.5,1546.7,52.5",
|
271
|
+
width=1.2321];
|
272
|
+
Stream [height=0.51389,
|
273
|
+
label="{class Stream}",
|
274
|
+
pos="1608.3,34.5",
|
275
|
+
rects="1565.1,16.5,1651.5,52.5",
|
276
|
+
width=1.1996];
|
277
|
+
Timing [height=0.51389,
|
278
|
+
label="{class Timing}",
|
279
|
+
pos="1713.3,34.5",
|
280
|
+
rects="1669.7,16.5,1756.9,52.5",
|
281
|
+
width=1.2112];
|
282
|
+
Numbers [height=0.51389,
|
283
|
+
label="{class Numbers}",
|
284
|
+
pos="1824.3,34.5",
|
285
|
+
rects="1775.3,16.5,1873.3,52.5",
|
286
|
+
width=1.3616];
|
287
|
+
Progress [height=0.51389,
|
288
|
+
label="{class Progress}",
|
289
|
+
pos="1938.3,34.5",
|
290
|
+
rects="1890.8,16.5,1985.8,52.5",
|
291
|
+
width=1.3185];
|
292
|
+
Sentence [height=0.51389,
|
293
|
+
label="{class Sentence}",
|
294
|
+
pos="2052.3,34.5",
|
295
|
+
rects="2003.7,16.5,2100.9,52.5",
|
296
|
+
width=1.3506];
|
297
|
+
Alphabet [height=0.51389,
|
298
|
+
label="{class Alphabet}",
|
299
|
+
pos="2167.3,34.5",
|
300
|
+
rects="2118.7,16.5,2215.9,52.5",
|
301
|
+
width=1.3509];
|
302
|
+
Randomize [height=0.51389,
|
303
|
+
label="{class Randomize}",
|
304
|
+
pos="2289.3,34.5",
|
305
|
+
rects="2234.1,16.5,2344.5,52.5",
|
306
|
+
width=1.5343];
|
307
|
+
KeyInput [height=0.51389,
|
308
|
+
label="{class KeyInput}",
|
309
|
+
pos="2412.3,34.5",
|
310
|
+
rects="2362.5,16.5,2462.1,52.5",
|
311
|
+
width=1.3832];
|
312
|
+
CWThreads [height=0.51389,
|
313
|
+
label="{class CWThreads}",
|
314
|
+
pos="2537.3,34.5",
|
315
|
+
rects="2480.1,16.5,2594.5,52.5",
|
316
|
+
width=1.5883];
|
317
|
+
TestWords [height=0.51389,
|
318
|
+
label="{class TestWords}",
|
319
|
+
pos="561.3,34.5",
|
320
|
+
rects="508.4,16.5,614.2,52.5",
|
321
|
+
width=1.4695];
|
322
|
+
TestWords -> FileDetails [pos="e,609.95,89.471 576.79,52.687 584.73,61.495 594.54,72.375 603.25,82.042"];
|
323
|
+
RepeatWord [height=0.51389,
|
324
|
+
label="{class RepeatWord}",
|
325
|
+
pos="690.3,34.5",
|
326
|
+
rects="632.13,16.5,748.47,52.5",
|
327
|
+
width=1.6159];
|
328
|
+
RepeatWord -> FileDetails [pos="e,640.89,89.471 674.57,52.687 666.5,61.495 656.54,72.375 647.69,82.042"];
|
329
|
+
CwEncoding [height=0.51389,
|
330
|
+
label="{class CwEncoding}",
|
331
|
+
pos="2672.3,34.5",
|
332
|
+
rects="2612.4,16.5,2732.2,52.5",
|
333
|
+
width=1.6641];
|
334
|
+
MonitorKeys [height=0.51389,
|
335
|
+
label="{class MonitorKeys}",
|
336
|
+
pos="2811.3,34.5",
|
337
|
+
rects="2750.6,16.5,2872,52.5",
|
338
|
+
width=1.6858];
|
339
|
+
AudioPlayer [height=0.51389,
|
340
|
+
label="{class AudioPlayer}",
|
341
|
+
pos="2948.3,34.5",
|
342
|
+
rects="2889.9,16.5,3006.7,52.5",
|
343
|
+
width=1.621];
|
344
|
+
BookDetails [height=0.51389,
|
345
|
+
label="{class BookDetails}",
|
346
|
+
pos="3083.3,34.5",
|
347
|
+
rects="3024.9,16.5,3141.7,52.5",
|
348
|
+
width=1.6209];
|
349
|
+
TestLetters [height=0.51389,
|
350
|
+
label="{class TestLetters}",
|
351
|
+
pos="820.3,34.5",
|
352
|
+
rects="766.07,16.5,874.53,52.5",
|
353
|
+
width=1.5064];
|
354
|
+
TestLetters -> FileDetails [pos="e,676.93,89.407 779.08,52.547 771.85,55.434 764.37,58.352 757.3,61 734.36,69.589 708.97,78.486 686.63,86.111"];
|
355
|
+
ToneGenerator [height=0.51389,
|
356
|
+
label="{class ToneGenerator}",
|
357
|
+
pos="3224.3,34.5",
|
358
|
+
rects="3159.2,16.5,3289.4,52.5",
|
359
|
+
width=1.8086];
|
360
|
+
}
|