progress 0.0.9.0 → 0.0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/VERSION.yml +1 -1
  2. data/lib/progress.rb +41 -8
  3. data/progress.gemspec +3 -3
  4. metadata +3 -3
data/VERSION.yml CHANGED
@@ -1 +1 @@
1
- [0, 0, 9, 0]
1
+ [0, 0, 9, 1]
data/lib/progress.rb CHANGED
@@ -28,9 +28,9 @@ class Progress
28
28
  # end
29
29
  # end
30
30
  # ==== To output progress as lines (not trying to stay on line)
31
- # Progress.start('Test', 1000, :lines => true) do
32
- # 1000.times{ Progress.step }
33
- # end
31
+ # Progress.lines = true
32
+ # ==== To force highlight
33
+ # Progress.highlight = true
34
34
  def self.start(title, total = 1, options = {})
35
35
  levels << new(title, total, levels.length, options)
36
36
  print_message
@@ -86,21 +86,54 @@ protected
86
86
  @io.puts if levels.empty?
87
87
  end
88
88
 
89
+ def io
90
+ @io ||= $stderr
91
+ end
92
+
89
93
  def io=(io)
90
94
  @io = io
91
95
  end
92
96
 
97
+ def lines=(value)
98
+ @lines = !!value
99
+ end
100
+ def lines?
101
+ if @lines.nil?
102
+ @lines = !io.tty?
103
+ end
104
+ @lines
105
+ end
106
+
107
+ def highlight=(value)
108
+ @highlight = !!value
109
+ end
110
+ def highlight?
111
+ if @highlight.nil?
112
+ @highlight = !!io.tty?
113
+ end
114
+ @highlight
115
+ end
116
+
93
117
  protected
94
118
 
95
119
  def print_message
96
120
  message = levels.map{ |level| level.message } * ' > '
97
- @io ||= $stderr
98
- @io.sync = true
99
- if @io.tty? && !levels.any?{ |level| level.options[:lines] }
100
- @io.print message.ljust(@previous_length || 0).gsub(/\d+\.\d+/){ |s| s == '100.0' ? s : "\e[1m#{s}\e[0m" } + "\r"
121
+ io.sync = true
122
+
123
+ unless lines?
124
+ previous_length = @previous_length || 0
101
125
  @previous_length = message.length
126
+ message = message.ljust(previous_length, '>') + "\r"
127
+ end
128
+
129
+ if highlight?
130
+ message.gsub!(/\d+\.\d+/){ |s| s == '100.0' ? s : "\e[1m#{s}\e[0m" }
131
+ end
132
+
133
+ unless lines?
134
+ io.print message
102
135
  else
103
- @io.puts message
136
+ io.puts message
104
137
  end
105
138
  end
106
139
 
data/progress.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{progress}
5
- s.version = "0.0.9.0"
5
+ s.version = "0.0.9.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["toy"]
9
- s.date = %q{2009-07-20}
9
+ s.date = %q{2009-07-28}
10
10
  s.description = %q{A library to show progress of long running tasks.}
11
11
  s.email = %q{}
12
12
  s.extra_rdoc_files = ["CHANGELOG", "lib/progress/enumerable.rb", "lib/progress/integer.rb", "lib/progress/with_progress.rb", "lib/progress.rb", "README.rdoc", "tasks/rspec.rake"]
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Progress", "--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = %q{progress}
18
- s.rubygems_version = %q{1.3.4}
18
+ s.rubygems_version = %q{1.3.5}
19
19
  s.summary = %q{A library to show progress of long running tasks.}
20
20
 
21
21
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: progress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9.0
4
+ version: 0.0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - toy
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-20 00:00:00 +04:00
12
+ date: 2009-07-28 00:00:00 +04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  requirements: []
72
72
 
73
73
  rubyforge_project: progress
74
- rubygems_version: 1.3.4
74
+ rubygems_version: 1.3.5
75
75
  signing_key:
76
76
  specification_version: 3
77
77
  summary: A library to show progress of long running tasks.