cw 0.2.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.cw_config +18 -0
- data/.gitignore +10 -1
- data/LICENSE +2 -1
- data/README.md +212 -96
- data/Rakefile +15 -2
- data/VERSION +1 -1
- data/Vagrantfile +45 -0
- data/cw.gemspec +6 -1
- data/data/text/book_to_read.txt +4 -0
- data/data/text/english.txt +10000 -0
- data/example.rb +172 -106
- data/lib/cw.rb +10 -126
- data/lib/cw/alphabet.rb +53 -46
- data/lib/cw/audio_player.rb +83 -72
- data/lib/cw/book.rb +160 -185
- data/lib/cw/book_details.rb +38 -49
- data/lib/cw/cl.rb +101 -95
- data/lib/cw/common_words.rb +76 -0
- data/lib/cw/config.rb +50 -0
- data/lib/cw/current_word.rb +23 -24
- data/lib/cw/cw_dsl.rb +264 -131
- data/lib/cw/cw_encoding.rb +63 -69
- data/lib/cw/cw_stream.rb +86 -82
- data/lib/cw/cw_threads.rb +132 -22
- data/lib/cw/element.rb +60 -54
- data/lib/cw/file_details.rb +26 -11
- data/lib/cw/key_input.rb +53 -35
- data/lib/cw/numbers.rb +26 -19
- data/lib/cw/os.rb +13 -0
- data/lib/cw/play.rb +92 -0
- data/lib/cw/print.rb +102 -100
- data/lib/cw/process.rb +3 -0
- data/lib/cw/progress.rb +20 -17
- data/lib/cw/randomize.rb +56 -52
- data/lib/cw/repeat_word.rb +59 -66
- data/lib/cw/reveal.rb +32 -31
- data/lib/cw/rss.rb +52 -48
- data/lib/cw/sentence.rb +83 -76
- data/lib/cw/speak.rb +8 -4
- data/lib/cw/spoken.rb +8 -4
- data/lib/cw/str.rb +62 -30
- data/lib/cw/test_letters.rb +20 -28
- data/lib/cw/test_words.rb +25 -31
- data/lib/cw/tester.rb +219 -226
- data/lib/cw/text_helpers.rb +19 -15
- data/lib/cw/timing.rb +63 -67
- data/lib/cw/tone_generator.rb +176 -153
- data/lib/cw/tone_helpers.rb +15 -23
- data/lib/cw/voice.rb +12 -8
- data/lib/cw/words.rb +136 -106
- data/run_script_tests.rb +165 -0
- data/test/my_words.txt +1 -0
- data/test/test_common_words.rb +71 -0
- data/test/test_config.rb +98 -0
- data/test/test_current_word.rb +62 -0
- data/test/test_cw.rb +87 -120
- data/test/test_cw_threads.rb +123 -0
- data/test/test_filtering.rb +439 -0
- data/test/test_params.rb +28 -0
- data/test/test_play.rb +51 -0
- data/test/test_stream.rb +83 -83
- data/test/test_tester.rb +9 -27
- data/test/test_timing.rb +212 -0
- metadata +94 -12
- data/lib/cw/config_file.rb +0 -69
- data/lib/cw/monitor_keys.rb +0 -37
- data/lib/cw/params.rb +0 -104
data/lib/cw/monitor_keys.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'thread'
|
4
|
-
|
5
|
-
class MonitorKeys
|
6
|
-
def initialize(cw)
|
7
|
-
@cw = cw
|
8
|
-
@key_input = KeyInput.new
|
9
|
-
@queue = Queue.new
|
10
|
-
end
|
11
|
-
|
12
|
-
def key_input
|
13
|
-
@key_input ||= KeyInput.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def empty?
|
17
|
-
@queue.empty?
|
18
|
-
end
|
19
|
-
|
20
|
-
def have_data?
|
21
|
-
! empty?
|
22
|
-
end
|
23
|
-
|
24
|
-
def monitor_keys
|
25
|
-
loop do
|
26
|
-
get_key_input
|
27
|
-
break if check_quit_key_input
|
28
|
-
if @cw.quit
|
29
|
-
key_input.reset
|
30
|
-
break
|
31
|
-
end
|
32
|
-
check_sentence_navigation key_chr
|
33
|
-
build_word_maybe
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
data/lib/cw/params.rb
DELETED
@@ -1,104 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Params
|
4
|
-
|
5
|
-
module ParamsSetup
|
6
|
-
|
7
|
-
[:name, :wpm,
|
8
|
-
:effective_wpm, :word_spacing,
|
9
|
-
:command_line, :frequency,
|
10
|
-
:author, :title,
|
11
|
-
:quality, :audio_filename,
|
12
|
-
:pause, :noise,
|
13
|
-
:shuffle, :mark_words,
|
14
|
-
:double_words, :single_words,
|
15
|
-
:audio_dir, :def_word_count,
|
16
|
-
:book_name, :book_dir,
|
17
|
-
:play_command, :success_colour,
|
18
|
-
:fail_colour, :list_colour,
|
19
|
-
:ebook2cw_path
|
20
|
-
].each do |method|
|
21
|
-
define_method method do |arg = nil|
|
22
|
-
arg ? Params.send("#{method}=", arg) : Params.send("#{method}")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
[[:pause, :pause, true],
|
27
|
-
[:un_pause, :pause, nil],
|
28
|
-
[:print_letters, :print_letters, true],
|
29
|
-
[:mark_words, :print_letters, nil],
|
30
|
-
[:noise, :noise, true],
|
31
|
-
[:no_noise, :noise, nil],
|
32
|
-
[:shuffle, :shuffle, true],
|
33
|
-
[:no_shuffle, :shuffle, nil],
|
34
|
-
[:double_words, :double_words, true],
|
35
|
-
[:single_words, :double_words, nil],
|
36
|
-
[:use_ebook2cw, :use_ebook2cw, true],
|
37
|
-
[:use_ruby_tone, :use_ebook2cw, nil],
|
38
|
-
].each do |bool|
|
39
|
-
define_method bool[0] do
|
40
|
-
Params.send("#{bool[1]}=", bool[2])
|
41
|
-
@words.shuffle if((bool[1] == :shuffle) && (bool[2]))
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
extend self
|
48
|
-
|
49
|
-
def init_config
|
50
|
-
config do
|
51
|
-
param :name, :wpm, :dictionary, :command_line, :audio_filename, :tone, :pause,
|
52
|
-
:print_letters, :double_words, :word_filename, :author, :title, :quality,
|
53
|
-
:frequency, :shuffle, :effective_wpm, :max, :min, :word_spacing, :noise,
|
54
|
-
:begin, :end, :word_count, :including, :word_size, :size, :beginning_with,
|
55
|
-
:ending_with, :mark_words, :audio_dir, :use_ebook2cw, :def_word_count,
|
56
|
-
:book_dir, :book_name, :play_command, :success_colour, :fail_colour,
|
57
|
-
:list_colour, :ebook2cw_path
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def param_method values, name
|
62
|
-
value = values.first
|
63
|
-
value ? self.send("#{name}=", value) : instance_variable_get("@#{name}")
|
64
|
-
end
|
65
|
-
|
66
|
-
def param_internal name
|
67
|
-
attr_accessor name
|
68
|
-
instance_variable_set("@#{name}", nil)
|
69
|
-
define_method name do | * values|
|
70
|
-
param_method values, name
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def param( * names)
|
75
|
-
names.each do |name|
|
76
|
-
param_internal name
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def config( & block)
|
81
|
-
instance_eval( & block)
|
82
|
-
end
|
83
|
-
|
84
|
-
def shuffle_str
|
85
|
-
shuffle ? "Shuffle: #{shuffle ? 'yes' : 'no'}\n" : nil
|
86
|
-
end
|
87
|
-
|
88
|
-
def word_count_str
|
89
|
-
word_count ? "Word count: #{word_count}\n" : nil
|
90
|
-
end
|
91
|
-
|
92
|
-
def wpm_str
|
93
|
-
"WPM: #{wpm}\n"
|
94
|
-
end
|
95
|
-
|
96
|
-
def word_size_str
|
97
|
-
size ? "Word size: #{size}\n" : nil
|
98
|
-
end
|
99
|
-
|
100
|
-
def delim_str
|
101
|
-
"#{'=' * Params.name.size}\n"
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|