Class: Spellr::InteractiveAdd
- Inherits:
-
Object
- Object
- Spellr::InteractiveAdd
show all
- Includes:
- StringFormat
- Defined in:
- lib/spellr/interactive_add.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
aqua, bold, color_enabled?, green, normal, pluralize, red
Constructor Details
#initialize(token, reporter) ⇒ InteractiveAdd
Returns a new instance of InteractiveAdd.
11
12
13
14
15
16
|
# File 'lib/spellr/interactive_add.rb', line 11
def initialize(token, reporter)
@token = token
@reporter = reporter
ask_wordlist
end
|
Instance Attribute Details
#reporter ⇒ Object
Returns the value of attribute reporter.
9
10
11
|
# File 'lib/spellr/interactive_add.rb', line 9
def reporter
@reporter
end
|
#token ⇒ Object
Returns the value of attribute token.
9
10
11
|
# File 'lib/spellr/interactive_add.rb', line 9
def token
@token
end
|
Instance Method Details
#add_to_wordlist(choice) ⇒ Object
56
57
58
59
60
61
62
|
# File 'lib/spellr/interactive_add.rb', line 56
def add_to_wordlist(choice)
wordlist = addable_languages.find { |w| w.key == choice }.project_wordlist
wordlist << token
reporter.increment(:total_added)
puts "Added #{red(token)} to #{wordlist.name} wordlist"
throw :check_file_from, token
end
|
#addable_languages ⇒ Object
22
23
24
|
# File 'lib/spellr/interactive_add.rb', line 22
def addable_languages
languages.select(&:addable?)
end
|
#ask_wordlist ⇒ Object
30
31
32
33
34
35
36
37
38
|
# File 'lib/spellr/interactive_add.rb', line 30
def ask_wordlist
puts "Add #{red(token)} to wordlist:"
addable_languages.each do |language|
puts "[#{language.key}] #{language.name}"
end
handle_wordlist_choice(reporter.stdin_getch)
end
|
#handle_ctrl_c ⇒ Object
40
41
42
43
|
# File 'lib/spellr/interactive_add.rb', line 40
def handle_ctrl_c
puts '^C again to exit'
reporter.call(token)
end
|
#handle_wordlist_choice(choice) ⇒ Object
rubocop:disable Metrics/MethodLength
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/spellr/interactive_add.rb', line 45
def handle_wordlist_choice(choice) case choice
when "\u0003"
handle_ctrl_c
when *language_keys
add_to_wordlist(choice)
else
ask_wordlist
end
end
|
#language_keys ⇒ Object
26
27
28
|
# File 'lib/spellr/interactive_add.rb', line 26
def language_keys
@language_keys ||= addable_languages.map(&:key)
end
|
#languages ⇒ Object
18
19
20
|
# File 'lib/spellr/interactive_add.rb', line 18
def languages
@languages ||= Spellr.config.languages_for(token.location.file.to_path)
end
|
#puts(str) ⇒ Object
64
65
66
|
# File 'lib/spellr/interactive_add.rb', line 64
def puts(str)
reporter.puts(str)
end
|