Class: CW::Callsign
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
Instance Method Details
#*(number) ⇒ Object
50
51
52
53
54
55
56
|
# File 'lib/cw/callsign.rb', line 50
def * number
calls = []
number.times do
calls << construct
end
calls
end
|
#callsigns ⇒ Object
6
7
8
9
10
11
|
# File 'lib/cw/callsign.rb', line 6
def callsigns
if @callsigns.nil?
@callsigns = load_callsigns
end
@callsigns
end
|
#construct ⇒ Object
42
43
44
45
46
47
48
|
# File 'lib/cw/callsign.rb', line 42
def construct
call = ''
0.upto(4) do |count|
call << select_part(partial_name(count))
end
call.strip
end
|
#load_callsigns ⇒ Object
13
14
15
16
17
|
# File 'lib/cw/callsign.rb', line 13
def load_callsigns
File.open(CALLS_FILENAME, "r") do |calls|
YAML::load(calls)
end
end
|
#partial_name(count) ⇒ Object
38
39
40
|
# File 'lib/cw/callsign.rb', line 38
def partial_name count
"partial_#{count}".to_sym
end
|
#rand_val ⇒ Object
20
21
22
|
# File 'lib/cw/callsign.rb', line 20
def rand_val
rand(100)
end
|
#select_part(country = :uk, partial) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/cw/callsign.rb', line 24
def select_part country = :uk, partial
pc = rand_val
weight = callsigns[country][partial][:weight]
tot_wt = 0
weight.each_with_index do |wt, idx|
tot_wt += wt
if pc < tot_wt
part = callsigns[country][partial][:option][idx]
return part unless(part.class == Range)
return part.to_a.sample
end
end
end
|