Sha256: f21c60f7bf212f3ff765bc0068a2372a53c3c2025f7f4da9a855ba6923ac1a28
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
class ProgressBar module Format class Molecule MOLECULES = { :t => [:title_comp, :title], :T => [:title_comp, :title], :c => [:progressable, :progress], :C => [:progressable, :total], :p => [:percentage, :percentage], :P => [:percentage, :percentage_with_precision], :j => [:percentage, :justified_percentage], :J => [:percentage, :justified_percentage_with_precision], :a => [:time, :elapsed_with_label], :e => [:time, :estimated_with_unknown_oob], :E => [:time, :estimated_with_friendly_oob], :f => [:time, :estimated_with_no_oob], :B => [:bar, :complete_bar], :b => [:bar, :bar], :w => [:bar, :bar_with_percentage], :i => [:bar, :incomplete_space], :r => [:rate, :rate_of_change], :R => [:rate, :rate_of_change_with_precision], } BAR_MOLECULES = %w{w B b i} attr_accessor :key, :method_name def initialize(letter) self.key = letter self.method_name = MOLECULES.fetch(key.to_sym) end def bar_molecule? BAR_MOLECULES.include? key end def non_bar_molecule? !bar_molecule? end def full_key "%#{key}" end def lookup_value(environment, length = 0) component = environment.send(method_name[0]) if bar_molecule? component.send(method_name[1], length).to_s else component.send(method_name[1]).to_s end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems