Class: InvocaGems::Presenter
- Inherits:
-
Object
- Object
- InvocaGems::Presenter
- Defined in:
- lib/invoca_gems/presenter.rb
Defined Under Namespace
Classes: StopWithMessage
Constant Summary collapse
- COLOR_CODES =
{ clear: 0, bright: 1, underline: 4, blink: 5, swap: 7, hide: 8, black: 30, red: 31, green: 32, yellow: 33, blue: 34, magenta: 35, white: 37, default: 39, black_background: 40, red_background: 41, blue_background: 40, green_background: 42, blue_background: 44, magenta_background: 45, cyan_background: 46, white_background: 47, default_background: 49 }
Class Method Summary collapse
Instance Method Summary collapse
- #clear_task(keep: true) ⇒ Object
- #error(message) ⇒ Object
- #message(message) ⇒ Object
- #print(*args) ⇒ Object
- #puts(*args) ⇒ Object
- #reset_line ⇒ Object
- #set_mode(codes) ⇒ Object
- #set_subtask(message) ⇒ Object
- #set_task(message) ⇒ Object
- #silence ⇒ Object
- #stop_with_message(message) ⇒ Object
- #using_mode(codes, message) ⇒ Object
- #warning(message) ⇒ Object
Class Method Details
.stop_with_message(message) ⇒ Object
78 79 80 |
# File 'lib/invoca_gems/presenter.rb', line 78 def self.() raise StopWithMessage, end |
.with_presenter ⇒ Object
83 84 85 86 87 88 89 90 |
# File 'lib/invoca_gems/presenter.rb', line 83 def self.with_presenter presenter = new begin yield presenter rescue StopWithMessage => ex presenter.error(ex.) end end |
Instance Method Details
#clear_task(keep: true) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/invoca_gems/presenter.rb', line 8 def clear_task(keep: true) if @task if keep @new_line_needed = false puts else print reset_line @new_line_needed = false end @task = nil end end |
#error(message) ⇒ Object
29 30 31 |
# File 'lib/invoca_gems/presenter.rb', line 29 def error() puts using_mode(:red, "error: #{}") end |
#message(message) ⇒ Object
21 22 23 |
# File 'lib/invoca_gems/presenter.rb', line 21 def () puts using_mode(:green, ) end |
#print(*args) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/invoca_gems/presenter.rb', line 51 def print(*args) unless @silent @new_line_needed = true super end end |
#puts(*args) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/invoca_gems/presenter.rb', line 41 def puts(*args) unless @silent if @new_line_needed super() @new_line_needed = false end super end end |
#reset_line ⇒ Object
37 38 39 |
# File 'lib/invoca_gems/presenter.rb', line 37 def reset_line "\r\e[K" end |
#set_mode(codes) ⇒ Object
65 66 67 |
# File 'lib/invoca_gems/presenter.rb', line 65 def set_mode(codes) "\e[#{[codes].flatten.map{ |c| COLOR_CODES[c].to_s }.join(";")}m" end |
#set_subtask(message) ⇒ Object
33 34 35 |
# File 'lib/invoca_gems/presenter.rb', line 33 def set_subtask() print "#{reset_line}#{@task}: #{}" end |
#set_task(message) ⇒ Object
2 3 4 5 6 |
# File 'lib/invoca_gems/presenter.rb', line 2 def set_task() clear_task @task = using_mode(:green, ) set_subtask('') end |
#silence ⇒ Object
58 59 60 61 62 63 |
# File 'lib/invoca_gems/presenter.rb', line 58 def silence @silent = true yield ensure @silent = false end |
#stop_with_message(message) ⇒ Object
74 75 76 |
# File 'lib/invoca_gems/presenter.rb', line 74 def () raise StopWithMessage, end |
#using_mode(codes, message) ⇒ Object
69 70 71 |
# File 'lib/invoca_gems/presenter.rb', line 69 def using_mode(codes, ) set_mode(codes) + + set_mode(:clear) end |
#warning(message) ⇒ Object
25 26 27 |
# File 'lib/invoca_gems/presenter.rb', line 25 def warning() puts using_mode(:yellow, "warning: #{}") end |