simple_progressbar 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +7 -0
- data/Gemfile.lock +20 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/simple_progressbar.rb +38 -7
- data/simple_progressbar.gemspec +16 -13
- metadata +69 -50
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
git (1.2.5)
|
5
|
+
jeweler (1.8.4)
|
6
|
+
bundler (~> 1.0)
|
7
|
+
git (>= 1.2.5)
|
8
|
+
rake
|
9
|
+
rdoc
|
10
|
+
json (1.8.0)
|
11
|
+
rake (10.0.4)
|
12
|
+
rdoc (4.0.1)
|
13
|
+
json (~> 1.4)
|
14
|
+
|
15
|
+
PLATFORMS
|
16
|
+
ruby
|
17
|
+
|
18
|
+
DEPENDENCIES
|
19
|
+
jeweler
|
20
|
+
rake
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/lib/simple_progressbar.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
class SimpleProgressbar
|
2
|
+
def initialize
|
3
|
+
@last_length = 0
|
4
|
+
@title = ""
|
5
|
+
@progress = 0
|
6
|
+
end
|
2
7
|
|
3
8
|
def show(title, &block)
|
4
|
-
|
9
|
+
@title = title
|
10
|
+
print @title + " "
|
5
11
|
start_progress
|
6
12
|
# thanks to http://www.dcmanges.com/blog/ruby-dsls-instance-eval-with-delegation
|
7
13
|
@self_before_instance_eval = eval "self", block.binding
|
@@ -9,8 +15,20 @@ class SimpleProgressbar
|
|
9
15
|
finish_progress
|
10
16
|
end
|
11
17
|
|
18
|
+
def interrupt
|
19
|
+
# TODO: Make some of the strings constants so we don't have to use a magic number here.
|
20
|
+
progressbar_length = 16 + @last_length + @title.length
|
21
|
+
move_cursor = "\e[#{progressbar_length}D"
|
22
|
+
print move_cursor + (" " * progressbar_length) + move_cursor
|
23
|
+
STDOUT.flush
|
24
|
+
yield
|
25
|
+
puts
|
26
|
+
print @title + " "
|
27
|
+
render_progress(@progress)
|
28
|
+
end
|
29
|
+
|
12
30
|
def progress(percent)
|
13
|
-
print "\e[
|
31
|
+
print "\e[#{15 + @last_length}D"
|
14
32
|
render_progress(percent)
|
15
33
|
end
|
16
34
|
|
@@ -21,15 +39,28 @@ class SimpleProgressbar
|
|
21
39
|
private
|
22
40
|
|
23
41
|
def render_progress(percent)
|
42
|
+
@progress = percent
|
24
43
|
print "["
|
25
44
|
|
26
|
-
(percent/10).to_i.
|
27
|
-
|
45
|
+
print "*" * [(percent/10).to_i, 10].min
|
46
|
+
print " " * [10 - (percent/10).to_i, 0].max
|
47
|
+
|
48
|
+
if percent.class != Float
|
49
|
+
printable_percent = "%3s" % percent
|
50
|
+
else
|
51
|
+
non_decimal_digits = (Math.log(percent) / Math.log(10)).truncate + 1
|
52
|
+
printable_percent = (non_decimal_digits < 3 ? " " * (3 - non_decimal_digits) : "") + percent.to_s
|
28
53
|
end
|
29
|
-
|
30
|
-
|
54
|
+
|
55
|
+
print "]\e[32m #{printable_percent}\e[0m %"
|
56
|
+
|
57
|
+
new_length = printable_percent.length
|
58
|
+
if @last_length > new_length
|
59
|
+
print " " * (@last_length - new_length)
|
60
|
+
print "\e[#{@last_length - new_length}D"
|
31
61
|
end
|
32
|
-
|
62
|
+
@last_length = new_length
|
63
|
+
|
33
64
|
STDOUT.flush
|
34
65
|
end
|
35
66
|
|
data/simple_progressbar.gemspec
CHANGED
@@ -4,20 +4,22 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.1.
|
7
|
+
s.name = "simple_progressbar"
|
8
|
+
s.version = "0.1.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bodo Tasche"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2013-05-27"
|
13
|
+
s.description = "A progressbar for the terminal. Handy for little scripts."
|
14
|
+
s.email = "bodo@bitboxer.de"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.rdoc"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
+
"Gemfile",
|
22
|
+
"Gemfile.lock",
|
21
23
|
"LICENSE",
|
22
24
|
"README.rdoc",
|
23
25
|
"Rakefile",
|
@@ -27,25 +29,26 @@ Gem::Specification.new do |s|
|
|
27
29
|
"test/helper.rb",
|
28
30
|
"test/test_simple_progressbar.rb"
|
29
31
|
]
|
30
|
-
s.homepage =
|
32
|
+
s.homepage = "http://github.com/bitboxer/simple_progressbar"
|
31
33
|
s.require_paths = ["lib"]
|
32
|
-
s.rubygems_version =
|
33
|
-
s.summary =
|
34
|
-
s.test_files = [
|
35
|
-
"test/helper.rb",
|
36
|
-
"test/test_simple_progressbar.rb"
|
37
|
-
]
|
34
|
+
s.rubygems_version = "1.8.23"
|
35
|
+
s.summary = "A simple progressbar"
|
38
36
|
|
39
37
|
if s.respond_to? :specification_version then
|
40
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
41
38
|
s.specification_version = 3
|
42
39
|
|
43
40
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
41
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
42
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
44
43
|
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
45
44
|
else
|
45
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
46
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
46
47
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
47
48
|
end
|
48
49
|
else
|
50
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
51
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
49
52
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
50
53
|
end
|
51
54
|
end
|
metadata
CHANGED
@@ -1,46 +1,75 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_progressbar
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 1
|
8
|
-
- 3
|
9
|
-
version: 0.1.3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.4
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Bodo Tasche
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
date: 2013-05-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: jeweler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
22
39
|
prerelease: false
|
23
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: thoughtbot-shoulda
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
24
49
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 0
|
30
|
-
version: "0"
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
31
54
|
type: :development
|
32
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
33
62
|
description: A progressbar for the terminal. Handy for little scripts.
|
34
63
|
email: bodo@bitboxer.de
|
35
64
|
executables: []
|
36
|
-
|
37
65
|
extensions: []
|
38
|
-
|
39
|
-
extra_rdoc_files:
|
66
|
+
extra_rdoc_files:
|
40
67
|
- LICENSE
|
41
68
|
- README.rdoc
|
42
|
-
files:
|
69
|
+
files:
|
43
70
|
- .document
|
71
|
+
- Gemfile
|
72
|
+
- Gemfile.lock
|
44
73
|
- LICENSE
|
45
74
|
- README.rdoc
|
46
75
|
- Rakefile
|
@@ -49,38 +78,28 @@ files:
|
|
49
78
|
- simple_progressbar.gemspec
|
50
79
|
- test/helper.rb
|
51
80
|
- test/test_simple_progressbar.rb
|
52
|
-
has_rdoc: true
|
53
81
|
homepage: http://github.com/bitboxer/simple_progressbar
|
54
82
|
licenses: []
|
55
|
-
|
56
83
|
post_install_message:
|
57
84
|
rdoc_options: []
|
58
|
-
|
59
|
-
require_paths:
|
85
|
+
require_paths:
|
60
86
|
- lib
|
61
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
88
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
|
67
|
-
|
68
|
-
version: "0"
|
69
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ! '>='
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
94
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
- 0
|
76
|
-
version: "0"
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
77
99
|
requirements: []
|
78
|
-
|
79
100
|
rubyforge_project:
|
80
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.8.23
|
81
102
|
signing_key:
|
82
103
|
specification_version: 3
|
83
104
|
summary: A simple progressbar
|
84
|
-
test_files:
|
85
|
-
- test/helper.rb
|
86
|
-
- test/test_simple_progressbar.rb
|
105
|
+
test_files: []
|