Class: Console::ProgressBar

Inherits:
Object show all
Defined in:
lib/pik/contrib/progressbar.rb

Instance Method Summary collapse

Constructor Details

#initialize(title, total, out = STDERR) ⇒ ProgressBar

Returns a new instance of ProgressBar.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/pik/contrib/progressbar.rb', line 37

def initialize(title, total, out = STDERR)
  @title = title
  @total = total
  @out = out
  @bar_length = 80
  @bar_mark = "o"
  @total_overflow = true
  @current = 0
  @previous = 0
  @is_finished = false
  @start_time = Time.now
  @format = "%-14s %3d%% %s %s"
  @format_arguments = [:title, :percentage, :bar, :stat]
  show_progress
end

Instance Method Details

#bar_mark=(mark) ⇒ Object



184
185
186
# File 'lib/pik/contrib/progressbar.rb', line 184

def bar_mark= (mark)
  @bar_mark = String(mark)[0..0]
end

#file_transfer_modeObject



180
181
182
# File 'lib/pik/contrib/progressbar.rb', line 180

def file_transfer_mode
  @format_arguments = [:title, :percentage, :bar, :stat_for_file_transfer]  
end

#finishObject



200
201
202
203
204
# File 'lib/pik/contrib/progressbar.rb', line 200

def finish
  @current = @total
  @is_finished = true
  show_progress
end

#format=(format) ⇒ Object



192
193
194
# File 'lib/pik/contrib/progressbar.rb', line 192

def format= (format)
  @format = format
end

#format_arguments=(arguments) ⇒ Object



196
197
198
# File 'lib/pik/contrib/progressbar.rb', line 196

def format_arguments= (arguments)
  @format_arguments = arguments
end

#haltObject



206
207
208
209
# File 'lib/pik/contrib/progressbar.rb', line 206

def halt
  @is_finished = true
  show_progress
end

#inc(step = 1) ⇒ Object



226
227
228
229
230
231
# File 'lib/pik/contrib/progressbar.rb', line 226

def inc (step = 1)
  @current += step
  @current = @total if @current > @total
  show_progress
  @previous = @current
end

#inspectObject



233
234
235
# File 'lib/pik/contrib/progressbar.rb', line 233

def inspect
  "(ProgressBar: #{@current}/#{@total})"
end

#set(count) ⇒ Object



211
212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/pik/contrib/progressbar.rb', line 211

def set (count)
  if count < 0
    raise "invalid count less than zero: #{count}"
  elsif count > @total
    if @total_overflow
      @total = count + 1
    else
      raise "invalid count greater than total: #{count}"
    end
  end
  @current = count
  show_progress
  @previous = @current
end

#total_overflow=(boolv) ⇒ Object



188
189
190
# File 'lib/pik/contrib/progressbar.rb', line 188

def total_overflow= (boolv)
  @total_overflow = boolv ? true : false
end