class ArrayProgressItem
Attributes
extra_name[RW]
item[RW]
name[RW]
parent[RW]
progress[RW]
status[RW]
Public Class Methods
run!(parent_, item_, progress_, &block)
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 10 def self.run!(parent_, item_, progress_, &block) pi = ArrayProgressItem.new pi.parent = parent_ pi.item = item_ pi.progress = sprintf('[%5.1f%%] ', progress_) pi.run!(&block) end
Public Instance Methods
change_name(new_name)
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 18 def change_name(new_name) set_name(new_name) reprint! end
expand_name(extra_name)
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 23 def expand_name(extra_name) self.extra_name = extra_name reprint! end
run!() { |item, self| ... }
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 28 def run! self.status = nil self.extra_name = '' set_name(item) reprint! self.status = process_status_code(yield(item, self)) reprint! print "\n" end
Private Instance Methods
description()
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 54 def description parent.description end
display_name()
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 66 def display_name width = ArrayProgressConfiguration.item_width ret = (description + ' ' + self.name + ' ' + self.extra_name) ret = ret.gsub("\n", ' ') ret = ret.strip ret = ret[0..width-1] ret = ret.ljust(width, ' ') ret end
name_colored()
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 93 def name_colored if status == :error display_name.light_white.on_light_red elsif status == :warning display_name.black.on_light_yellow elsif status == :skip display_name.white else display_name end end
process_status_code(code)
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 42 def process_status_code(code) if code.is_a? Symbol code elsif code.is_a? TrueClass :ok elsif code.is_a? FalseClass :error else :unknown end end
progress_colored()
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 83 def progress_colored if status == :error progress.light_white.on_light_red elsif status == :warning progress.black.on_light_yellow else progress.white end end
reprint!()
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 76 def reprint! print "\r" print progress_colored print name_colored print result_colored end
result_colored()
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 105 def result_colored if status == nil '' elsif status == :ok ' [ Success ]'.green.bold elsif status == :error ' [ Failure ]'.light_white.on_light_red elsif status == :warning ' [ Warning ]'.black.on_light_yellow elsif status == :skip ' [ Skipped ]'.white.bold else ' [ Unknown ]'.bold end end
set_name(new_name)
click to toggle source
# File lib/array_with_progress/array_progress_item.rb, line 58 def set_name(new_name) if new_name.is_a? Array self.name = new_name.map(&:to_s).join('|') else self.name = new_name.to_s end end