Class: CW::Cl
Overview
class Cl performs command-line processing
Constant Summary
Constants included
from FileDetails
FileDetails::ABBREVIATIONS, FileDetails::AUDIO_DIR, FileDetails::BOOKMARK_FILE, FileDetails::CALLS, FileDetails::CALLS_FILENAME, FileDetails::CODE, FileDetails::CODE_FILENAME, FileDetails::CONFIG_FILENAME, FileDetails::CONFIG_PATH, FileDetails::DASH_FILENAME, FileDetails::DATA, FileDetails::DEF_AUDIO_FILENAME, FileDetails::DICT_DIR, FileDetails::DICT_FILENAME, FileDetails::DOT_AUDIO_DIR, FileDetails::DOT_CW_DIR, FileDetails::DOT_FILENAME, FileDetails::E_SPACE_FILENAME, FileDetails::HERE, FileDetails::Q_CODES, FileDetails::ROOT, FileDetails::SPACE_FILENAME, FileDetails::TEXT, FileDetails::USER_CONFIG_PATH, FileDetails::WORK_DIR
Instance Method Summary
collapse
#audio_dir, #audio_filename, #dash_path, #default_audio_dir, #dot_audio_dir, #dot_cw_dir, #dot_path, #e_space_path, #init_filenames, #process_audio_dir, #process_dot_audio, #process_dot_cw, #progress_file, #space_path, #user_audio_dir
Constructor Details
#initialize ⇒ Cl
Returns a new instance of Cl.
11
12
13
14
15
16
17
|
# File 'lib/cw/cl.rb', line 11
def initialize
@tone = {
sinewave: 0,
sawtooth: 1,
squarewave: 2
}
end
|
Instance Method Details
#build_command_line ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# File 'lib/cw/cl.rb', line 97
def build_command_line
[ cl_wpm,
cl_effective_wpm,
cl_word_spacing,
cl_frequency,
cl_squarewave,
cl_sawtooth,
cl_sinewave,
cl_author,
cl_title,
cl_noise,
cl_audio_filename,
cl_quality,
cl_command_line
].collect{|param| param}.join
end
|
#cl_audio_filename ⇒ Object
71
72
73
|
# File 'lib/cw/cl.rb', line 71
def cl_audio_filename
"-o \"#{File.join(audio_dir, audio_filename)}\" "
end
|
#cl_author ⇒ Object
56
57
58
59
|
# File 'lib/cw/cl.rb', line 56
def cl_author
author = Cfg.config["author"]
author ? "-a \"#{author}\" " : ''
end
|
#cl_command_line ⇒ Object
92
93
94
95
|
# File 'lib/cw/cl.rb', line 92
def cl_command_line
cl = Cfg.config["command_line"]
cl ? "#{cl}" : ''
end
|
#cl_echo(words) ⇒ Object
118
119
120
|
# File 'lib/cw/cl.rb', line 118
def cl_echo words
"echo #{words} | #{ebook2cw_path} #{build_command_line}"
end
|
#cl_effective_wpm ⇒ Object
24
25
26
27
|
# File 'lib/cw/cl.rb', line 24
def cl_effective_wpm
ewpm = Cfg.config["effective_wpm"]
ewpm ? "-e #{ewpm} " : ''
end
|
#cl_frequency ⇒ Object
34
35
36
37
|
# File 'lib/cw/cl.rb', line 34
def cl_frequency
freq = Cfg.config["frequency"]
freq ? "-f #{freq} " : ''
end
|
#cl_full(input) ⇒ Object
122
123
124
|
# File 'lib/cw/cl.rb', line 122
def cl_full input
"#{ebook2cw_path} #{build_command_line} #{input}"
end
|
#cl_noise ⇒ Object
66
67
68
69
|
# File 'lib/cw/cl.rb', line 66
def cl_noise
Cfg.config["noise"] ?
"-N 10 -B 800 " : ''
end
|
#cl_quality ⇒ Object
83
84
85
86
87
88
89
90
|
# File 'lib/cw/cl.rb', line 83
def cl_quality
quality = Cfg.config["quality"]
if quality && quality.class == 1.class
"-q #{quality} "
else
coarse_quality quality
end
end
|
#cl_sawtooth ⇒ Object
48
49
50
|
# File 'lib/cw/cl.rb', line 48
def cl_sawtooth
wave "sawtooth"
end
|
#cl_sinewave ⇒ Object
52
53
54
|
# File 'lib/cw/cl.rb', line 52
def cl_sinewave
wave "sinewave"
end
|
#cl_squarewave ⇒ Object
44
45
46
|
# File 'lib/cw/cl.rb', line 44
def cl_squarewave
wave 'squarewave'
end
|
#cl_title ⇒ Object
61
62
63
64
|
# File 'lib/cw/cl.rb', line 61
def cl_title
title = Cfg.config["title"]
title ? "-t \"#{title}\" " : ''
end
|
#cl_word_spacing ⇒ Object
29
30
31
32
|
# File 'lib/cw/cl.rb', line 29
def cl_word_spacing
ws = Cfg.config["word_spacing"]
ws ? "-W #{ws} " : ''
end
|
#cl_wpm ⇒ Object
19
20
21
22
|
# File 'lib/cw/cl.rb', line 19
def cl_wpm
wpm = Cfg.config["wpm"]
wpm ? "-w #{wpm} " : ''
end
|
#coarse_quality(quality) ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/cw/cl.rb', line 75
def coarse_quality(quality)
{
:high => "-q 1 ",
:medium => "-q 5 ",
:low => "-q 9 "
}[quality]
end
|
#ebook2cw_path ⇒ Object
114
115
116
|
# File 'lib/cw/cl.rb', line 114
def ebook2cw_path
Cfg.config["ebook2cw_path"] || 'ebook2cw'
end
|
#wave(type) ⇒ Object
39
40
41
42
|
# File 'lib/cw/cl.rb', line 39
def wave type
return '' unless(Cfg.config["tone"].to_s == type)
"-T #{@tone[type.to_sym]} "
end
|