Indicator

Display activity with ASCII spinners and progress indicators.

Description

Sometimes you need to display activity on the text console to inform the user that the program is actually doing something. Be funny with a lot predefined sets or make you own widget to display an animation text during a long-running process in your console app.

Installation

From the command line.

gem install indicator

Using Gemfile.

1 Add to your application Gemfile

gem 'indicator'

2 Type

bundle install

Usage

Animated

Indicator::spin do
  10.times do
    sleep 0.5
  end
end

On demand update

Indicator::spin(:ondemand => true) do |spinner|
  10.times do
    spinner.spinning
    sleep 0.2
  end
end

Manual control

spinner = Indicator.spinner
10.times do
  spinner.spinning
  sleep 0.2
end
spinner.clean

Predefined sets

Indicator::spin :set => :p do
  10.times do
    sleep 0.5
  end
end

Available sets: :x :< :> :V :dots :bars :p :bqpd :-

UNICODE extra sets: :arrows :box :braile

Custom set

Indicator::spin :frames => %w{ * + } do
  10.times do
    sleep 0.5
  end
end

Advanced usage

Using count

Use int method to increment percent

Indicator::spin :count => 20 do |spin|
  10.times do
    spin.inc 2
    sleep 0.2
  end
end

Default increment is 1.

Using count, pre-text and post-text

Indicator::spin :pre => "Work", :frames => ['   ', '.  ', '.. ', '...'], :count => 10, :post => ' in progress' do |spin|
  10.times do
    spin.inc
    sleep 0.2
  end
  spin.clear
end

:pre_percent and :post_percent is also available.

Change post-text

Indicator::spin :pre => "Work", :frames => ['   ', '.  ', '.. ', '...'], :count => 10 do |spin|
  10.times do |i|
    spin.inc
    spin.post= " in progress #{i} of 10"
    sleep 0.2
  end
end