Class: Infobar
- Extended by:
- Tins::Delegate
- Includes:
- ComplexConfig::Provider::Shortcuts, FancyInterface, InputOutput, Tins::SexySingleton
- Defined in:
- lib/infobar.rb,
lib/infobar.rb,
lib/infobar/version.rb
Defined Under Namespace
Modules: FancyInterface, InputOutput Classes: Counter, Display, Duration, FIFO, Frequency, Message, Number, Rate, Spinner, Timer, Trend
Constant Summary collapse
- VERSION =
Infobar version
'0.0.5'- VERSION_ARRAY =
:nodoc:
VERSION.split('.').map(&:to_i)
- VERSION_MAJOR =
:nodoc:
VERSION_ARRAY[0]
- VERSION_MINOR =
:nodoc:
VERSION_ARRAY[1]
- VERSION_BUILD =
:nodoc:
VERSION_ARRAY[2]
Instance Attribute Summary collapse
-
#counter ⇒ Object
readonly
Returns the value of attribute counter.
-
#display ⇒ Object
readonly
Returns the value of attribute display.
-
#label ⇒ Object
Returns the value of attribute label.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
Class Method Summary collapse
Instance Method Summary collapse
- #call(total:, current: 0, label: cc.infobar?&.label || 'Infobar', message: cc.infobar?&.message?&.to_h, show: cc.infobar?&.show?, style: cc.infobar?&.style?&.to_h, frequency: cc.infobar?&.frequency?, update: false, finish: nil) ⇒ Object
- #convert_to_message(message) ⇒ Object
- #finish(message: nil) ⇒ Object
-
#initialize ⇒ Infobar
constructor
A new instance of Infobar.
- #progress(by: 1, message: nil, finish: true, force: false) ⇒ Object
- #reset ⇒ Object
- #update(message: nil) ⇒ Object
Methods included from FancyInterface
#+, #+@, #<<, #add, #coerce, #~
Methods included from InputOutput
Constructor Details
Instance Attribute Details
#counter ⇒ Object (readonly)
Returns the value of attribute counter.
36 37 38 |
# File 'lib/infobar.rb', line 36 def counter @counter end |
#display ⇒ Object (readonly)
Returns the value of attribute display.
38 39 40 |
# File 'lib/infobar.rb', line 38 def display @display end |
#label ⇒ Object
Returns the value of attribute label.
40 41 42 |
# File 'lib/infobar.rb', line 40 def label @label end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
34 35 36 |
# File 'lib/infobar.rb', line 34 def @message end |
Class Method Details
Instance Method Details
#call(total:, current: 0, label: cc.infobar?&.label || 'Infobar', message: cc.infobar?&.message?&.to_h, show: cc.infobar?&.show?, style: cc.infobar?&.style?&.to_h, frequency: cc.infobar?&.frequency?, update: false, finish: nil) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/infobar.rb', line 54 def call( total:, current: 0, label: cc.&.label || 'Infobar', message: cc.&.&.to_h, show: cc.&.show?, style: cc.&.style?&.to_h, frequency: cc.&.frequency?, update: false, finish: nil ) self.label = label counter.reset(total: total, current: current) @message = () show.nil? or self.show = show if update update(message: @message) else display.reset end frequency.nil? or display.frequency = frequency style.nil? or self.style = style self end |
#convert_to_message(message) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/infobar.rb', line 107 def () case when Message when Hash Message.new() when String Message.new format: else @message end end |
#finish(message: nil) ⇒ Object
100 101 102 103 104 105 |
# File 'lib/infobar.rb', line 100 def finish(message: nil) counter.finish @message = () display.update(message: @message, force: true, progressed: counter.progressed) self end |
#progress(by: 1, message: nil, finish: true, force: false) ⇒ Object
92 93 94 95 96 97 98 |
# File 'lib/infobar.rb', line 92 def progress(by: 1, message: nil, finish: true, force: false) counter.progress(by: by) @message = () display.update(message: @message, force: force, progressed: counter.progressed) finish && counter.done? and finish(message: finish) self end |
#reset ⇒ Object
79 80 81 82 83 84 |
# File 'lib/infobar.rb', line 79 def reset @message = ('%l %c/%t in %te, ETA %e @%E %s') counter.reset(total: 0, current: 0) display.reset self end |
#update(message: nil) ⇒ Object
86 87 88 89 90 |
# File 'lib/infobar.rb', line 86 def update(message: nil) @message = () display.update(message: @message, progressed: counter.progressed) self end |