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, Frequency, Message, Number, Spinner, Timer
Constant Summary collapse
- VERSION =
Infobar version
'0.0.0'- 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.
35 36 37 |
# File 'lib/infobar.rb', line 35 def counter @counter end |
#display ⇒ Object (readonly)
Returns the value of attribute display.
37 38 39 |
# File 'lib/infobar.rb', line 37 def display @display end |
#label ⇒ Object
Returns the value of attribute label.
39 40 41 |
# File 'lib/infobar.rb', line 39 def label @label end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
33 34 35 |
# File 'lib/infobar.rb', line 33 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
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/infobar.rb', line 53 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
106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/infobar.rb', line 106 def () case when Message when Hash Message.new() when String Message.new format: else @message end end |
#finish(message: nil) ⇒ Object
99 100 101 102 103 104 |
# File 'lib/infobar.rb', line 99 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
91 92 93 94 95 96 97 |
# File 'lib/infobar.rb', line 91 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
78 79 80 81 82 83 |
# File 'lib/infobar.rb', line 78 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
85 86 87 88 89 |
# File 'lib/infobar.rb', line 85 def update(message: nil) @message = () @display.update(message: @message, progressed: @counter.progressed) self end |