Class: Ccp::Utils::Colorize::Bar::Progress

Inherits:
Object
  • Object
show all
Defined in:
lib/ccp/utils/colorize.rb

Direct Known Subclasses

Meter::Percent

Instance Method Summary collapse

Constructor Details

#initialize(colors, format, size, vals, chars = nil) ⇒ Progress



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/ccp/utils/colorize.rb', line 70

def initialize(colors, format, size, vals, chars = nil)
  @colors = colors.must.coerced(Array, Symbol=>lambda{|x| [x, :black]}) # [:green, :black]
  @format = format.must(String)               # "Mem[%sMB]"
  @size   = size.must(Fixnum)                 # 73
  @vals   = vals.must(Fixnum, Float, Array) # [4004,24105]
  @chars  = chars.must(Array)  { ["|"] }
  @count  = @vals.is_a?(Array) ? @vals.size : 1 # value count (fill gaps with Fixnum and Array)

  if @vals.is_a?(Array) and @vals.size < 2
    raise "vals.size expected >= %d, but got %d" % [2, @vals.size]
  end
  if @chars.size < @count
    @chars += [@chars.last] * (@vals.size - @chars.size)
  end
  if @chars.size < @count + 1
    @chars += [' ']
  end
  @colors.size >= 2 or raise "colors.size expected >= %d, but got %d" % [2, @colors.size]

  @label  = label(@vals)                    # "4004/24105"
  @rates  = rates(@vals)                    # [0.16]
end

Instance Method Details

#to_sObject



93
94
95
96
97
# File 'lib/ccp/utils/colorize.rb', line 93

def to_s
  rest = @size - @format.size + 2 - @label.size
  return @format % @label if rest <= 0
  return @format % (bar(rest) + @label)
end