cw 0.3.0 → 0.3.1
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/.cw_config +9 -18
- data/.gitignore +1 -0
- data/README.md +10 -4
- data/VERSION +1 -1
- data/calculator.rb +63 -0
- data/chart.rb +33 -0
- data/chart2.rb +35 -0
- data/chart3.rb +47 -0
- data/chart4.rb +45 -0
- data/cw.gemspec +5 -3
- data/data/callsign/callsign.yaml +78 -0
- data/data/code/code.yaml +215 -0
- data/example.rb +18 -0
- data/lib/cw.rb +3 -0
- data/lib/cw/alphabet.rb +21 -6
- data/lib/cw/audio_player.rb +5 -8
- data/lib/cw/book.rb +0 -4
- data/lib/cw/book_details.rb +19 -8
- data/lib/cw/callsign.rb +59 -0
- data/lib/cw/cl.rb +12 -11
- data/lib/cw/common_words.rb +26 -3
- data/lib/cw/config.rb +14 -3
- data/lib/cw/cw_dsl.rb +11 -0
- data/lib/cw/cw_encoding.rb +49 -53
- data/lib/cw/file_details.rb +92 -19
- data/lib/cw/print.rb +10 -0
- data/lib/cw/read.rb +341 -0
- data/lib/cw/tone_generator.rb +6 -11
- data/lib/cw/words.rb +1 -1
- data/run_script_tests.rb +1 -1
- data/test/test_config.rb +0 -20
- data/test/test_cw.rb +14 -14
- metadata +20 -11
data/lib/cw/tone_generator.rb
CHANGED
@@ -23,6 +23,7 @@ module CWG
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def generate wrds
|
26
|
+
|
26
27
|
word_parts(wrds)
|
27
28
|
# progress.init elements.size * 3 + (wrds.size)
|
28
29
|
create_element_methods
|
@@ -31,7 +32,7 @@ module CWG
|
|
31
32
|
end
|
32
33
|
|
33
34
|
def play_filename
|
34
|
-
File.join(
|
35
|
+
@play_filename ||= File.join(audio_dir, audio_filename)
|
35
36
|
end
|
36
37
|
|
37
38
|
def play
|
@@ -49,16 +50,16 @@ module CWG
|
|
49
50
|
|
50
51
|
def data
|
51
52
|
{ :dot => {:name => :dot,
|
52
|
-
:filename =>
|
53
|
+
:filename => dot_path,
|
53
54
|
:spb => (@sample_rate * 1.2 / @wpm).to_i },
|
54
55
|
:dash => {:name => :dash,
|
55
|
-
:filename =>
|
56
|
+
:filename => dash_path,
|
56
57
|
:spb => (@sample_rate * 3.6 / @wpm).to_i },
|
57
58
|
:space => {:name => :space,
|
58
|
-
:filename =>
|
59
|
+
:filename => space_path,
|
59
60
|
:spb => (@sample_rate * 1.2 / @wpm).to_i },
|
60
61
|
:e_space => {:name => :e_space,
|
61
|
-
:filename =>
|
62
|
+
:filename => e_space_path,
|
62
63
|
:spb => (@sample_rate * 1.2 / @effective_wpm).to_i }}
|
63
64
|
end
|
64
65
|
|
@@ -105,7 +106,6 @@ module CWG
|
|
105
106
|
|
106
107
|
def create_element_methods
|
107
108
|
elements.each do |ele|
|
108
|
-
# progress.increment
|
109
109
|
create_element_method ele
|
110
110
|
end
|
111
111
|
end
|
@@ -117,7 +117,6 @@ module CWG
|
|
117
117
|
|
118
118
|
def compile_fundamentals
|
119
119
|
elements.each do |ele|
|
120
|
-
# progress.increment
|
121
120
|
audio_samples = generate_samples ele
|
122
121
|
buffer = generate_buffer(audio_samples, ele)
|
123
122
|
write_element_audio_file ele, buffer
|
@@ -154,11 +153,9 @@ module CWG
|
|
154
153
|
@word_parts
|
155
154
|
end
|
156
155
|
|
157
|
-
|
158
156
|
def make_word_parts
|
159
157
|
parts = []
|
160
158
|
@word_parts.each do |part|
|
161
|
-
# progress.increment
|
162
159
|
parts += send_char part.downcase
|
163
160
|
end
|
164
161
|
parts
|
@@ -167,7 +164,6 @@ module CWG
|
|
167
164
|
def prepare_buffers
|
168
165
|
@buffers = {}
|
169
166
|
elements.each do |ele|
|
170
|
-
# progress.increment
|
171
167
|
@buffers[ele] = []
|
172
168
|
WaveFile::Reader.new(data[ele][:filename]).
|
173
169
|
each_buffer(data[ele][:spb]) do |buffer|
|
@@ -201,7 +197,6 @@ module CWG
|
|
201
197
|
:pcm_16,
|
202
198
|
@sample_rate)) do |writer|
|
203
199
|
yield.each do |char|
|
204
|
-
# progress.increment
|
205
200
|
char.each do |fta|
|
206
201
|
writer.write(@buffers[fta[:name]])
|
207
202
|
end
|
data/lib/cw/words.rb
CHANGED
data/run_script_tests.rb
CHANGED
@@ -8,7 +8,7 @@ class RunScriptTests
|
|
8
8
|
NO_RSS_FEED = DEBUG ? true : false
|
9
9
|
PATH_TO_CW_SCRIPTS = '/Users/martyn/jekyll/documentation-theme-jekyll/cw_scripts'
|
10
10
|
ROOT = '/Users/martyn/cw/cw_clone'
|
11
|
-
PROGRESS_FILE = "
|
11
|
+
PROGRESS_FILE = ".cw/bookmark.txt"
|
12
12
|
DB = Sequel.sqlite(File.join(ROOT, 'test.sqlite')) unless(TEST_ON_MEMORY_DATABASE)
|
13
13
|
DB = Sequel.sqlite if(TEST_ON_MEMORY_DATABASE)
|
14
14
|
|
data/test/test_config.rb
CHANGED
@@ -35,18 +35,6 @@ class TestConfig < MiniTest::Test
|
|
35
35
|
assert_equal "25", CWG::Cfg.config["wpm"]
|
36
36
|
end
|
37
37
|
|
38
|
-
def test_book_name_default
|
39
|
-
assert_equal "book.txt", CWG::Cfg.config["book_name"]
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_book_dir_default
|
43
|
-
assert_equal "data/text/", CWG::Cfg.config["book_dir"]
|
44
|
-
end
|
45
|
-
|
46
|
-
# def test_play_command_default
|
47
|
-
# assert_equal "/usr/bin/afplay", CWG::Cfg.config["play_command"]
|
48
|
-
# end
|
49
|
-
|
50
38
|
def test_success_colour_default
|
51
39
|
assert_equal "green", CWG::Cfg.config["success_colour"]
|
52
40
|
end
|
@@ -67,14 +55,6 @@ class TestConfig < MiniTest::Test
|
|
67
55
|
assert_equal "test_letters", CWG::Cfg.config["run_default"]
|
68
56
|
end
|
69
57
|
|
70
|
-
def test_dictionary_dir_default
|
71
|
-
assert_equal "data/text/", CWG::Cfg.config["dictionary_dir"]
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_dictionary_name_default
|
75
|
-
assert_equal "english.txt", CWG::Cfg.config["dictionary_name"]
|
76
|
-
end
|
77
|
-
|
78
58
|
def test_accessing_unknown_method_returns_nil
|
79
59
|
refute CWG::Cfg.config["unknown"]
|
80
60
|
end
|
data/test/test_cw.rb
CHANGED
@@ -408,18 +408,18 @@ Ending: x
|
|
408
408
|
|
409
409
|
def test_set_N_param_in_noise_mode
|
410
410
|
@cw.noise
|
411
|
-
assert @cw.instance_variable_get('@cl').cl_noise.include?('-N
|
411
|
+
assert @cw.instance_variable_get('@cl').cl_noise.include?('-N 10 '), 'noise N param invalid'
|
412
412
|
end
|
413
413
|
|
414
414
|
def test_set_B_param_in_noise_mode
|
415
415
|
@cw.noise
|
416
|
-
assert @cw.instance_variable_get('@cl').cl_noise.include?('-B
|
416
|
+
assert @cw.instance_variable_get('@cl').cl_noise.include?('-B 800 '), 'noise B param invalid'
|
417
417
|
end
|
418
418
|
|
419
|
-
def test_set_default_filename
|
420
|
-
assert @cw.instance_variable_get('@cl').cl_audio_filename.
|
421
|
-
include?('audio_output'), 'default audio output filename invalid'
|
422
|
-
end
|
419
|
+
# def test_set_default_filename
|
420
|
+
# assert @cw.instance_variable_get('@cl').cl_audio_filename.
|
421
|
+
# include?('audio_output'), 'default audio output filename invalid'
|
422
|
+
# end
|
423
423
|
|
424
424
|
def test_set_audio_filename_to_given_name
|
425
425
|
@cw.audio_filename('some name')
|
@@ -457,14 +457,14 @@ Ending: x
|
|
457
457
|
include?( '-x "some custom command"'), 'custom command invalid'
|
458
458
|
end
|
459
459
|
|
460
|
-
def test_cl_echo_returns_correct_string
|
461
|
-
str = ''
|
462
|
-
CW.new do
|
463
|
-
str = @cl.cl_echo('some words')
|
464
|
-
no_run
|
465
|
-
end
|
466
|
-
assert str.include?('some words')
|
467
|
-
end
|
460
|
+
# def test_cl_echo_returns_correct_string
|
461
|
+
# str = ''
|
462
|
+
# CW.new do
|
463
|
+
# str = @cl.cl_echo('some words')
|
464
|
+
# no_run
|
465
|
+
# end
|
466
|
+
# assert str.include?('some words')
|
467
|
+
# end
|
468
468
|
|
469
469
|
def test_words_exist
|
470
470
|
temp = nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martyn Jago
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 4.
|
89
|
+
version: 4.2.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 4.
|
96
|
+
version: 4.2.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: wavefile
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,30 +196,30 @@ dependencies:
|
|
196
196
|
name: sequel
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- - "
|
199
|
+
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
201
|
+
version: 4.38.0
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- - "
|
206
|
+
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
208
|
+
version: 4.38.0
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: sqlite3
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- - "
|
213
|
+
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
215
|
+
version: 1.3.11
|
216
216
|
type: :development
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- - "
|
220
|
+
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
222
|
+
version: 1.3.11
|
223
223
|
description: A ruby library to help learn and practice morse code
|
224
224
|
email:
|
225
225
|
- martyn.jago@btinternet.com
|
@@ -241,7 +241,14 @@ files:
|
|
241
241
|
- Vagrantfile
|
242
242
|
- audio/.gitkeep
|
243
243
|
- bin/cw
|
244
|
+
- calculator.rb
|
245
|
+
- chart.rb
|
246
|
+
- chart2.rb
|
247
|
+
- chart3.rb
|
248
|
+
- chart4.rb
|
244
249
|
- cw.gemspec
|
250
|
+
- data/callsign/callsign.yaml
|
251
|
+
- data/code/code.yaml
|
245
252
|
- data/text/abbreviations.txt
|
246
253
|
- data/text/book.txt
|
247
254
|
- data/text/book_to_read.txt
|
@@ -256,6 +263,7 @@ files:
|
|
256
263
|
- lib/cw/audio_player.rb
|
257
264
|
- lib/cw/book.rb
|
258
265
|
- lib/cw/book_details.rb
|
266
|
+
- lib/cw/callsign.rb
|
259
267
|
- lib/cw/cl.rb
|
260
268
|
- lib/cw/common_words.rb
|
261
269
|
- lib/cw/config.rb
|
@@ -274,6 +282,7 @@ files:
|
|
274
282
|
- lib/cw/process.rb
|
275
283
|
- lib/cw/progress.rb
|
276
284
|
- lib/cw/randomize.rb
|
285
|
+
- lib/cw/read.rb
|
277
286
|
- lib/cw/repeat_word.rb
|
278
287
|
- lib/cw/reveal.rb
|
279
288
|
- lib/cw/rss.rb
|