package Common::ProgressBar;

use strict;
use warnings;

use base 'Class::Accessor';

use Term::ProgressBar;

__PACKAGE__->mk_accessors(qw/bar/);

sub new {
    my $class = shift;
    my $count = shift;
    my $title = shift || 'Progress';
    my $tpbar = Term::ProgressBar->new( {
            'name'       => $title,
            'count'      => $count,
            'term_width' => 80,
            'ETA'        => 'linear',
        }
    );
    $tpbar->minor(0);
    my $self = { 'bar' => $tpbar };
    bless $self, $class;
    $self;
}

sub update {
    my $self = shift;
    $self->bar->update();
}

sub finish {
    my $self = shift;
    print "\n";
}

1;

