progress 2.1.1 → 2.2.0

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.
@@ -4,6 +4,8 @@ class Progress
4
4
  class WithProgress
5
5
  include Enumerable
6
6
 
7
+ attr_reader :enumerable, :title
8
+
7
9
  # initialize with object responding to each, title and optional length
8
10
  # if block is provided, it is passed to each
9
11
  def initialize(enumerable, title, length = nil, &block)
@@ -37,8 +39,7 @@ class Progress
37
39
 
38
40
  # returns self but changes title
39
41
  def with_progress(title = nil, &block)
40
- @title = title
41
- block ? each(&block) : self
42
+ self.class.new(@enumerable, title, @length, &block)
42
43
  end
43
44
  end
44
45
  end
data/progress.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'progress'
5
- s.version = '2.1.1'
5
+ s.version = '2.2.0'
6
6
  s.summary = %q{Show progress of long running tasks}
7
7
  s.homepage = "http://github.com/toy/#{s.name}"
8
8
  s.authors = ['Ivan Kuchin']
@@ -231,6 +231,22 @@ describe Progress do
231
231
  @a.with_progress('Hello').each_cons(3){ |values| with_progress << values }
232
232
  without_progress.should == with_progress
233
233
  end
234
+
235
+ describe "with_progress.with_progress" do
236
+ it "should not change existing instance" do
237
+ wp = @a.with_progress('hello')
238
+ proc{ wp.with_progress('world') }.should_not change(wp, :title)
239
+ end
240
+
241
+ it "should create new instance with different title when called on WithProgress" do
242
+ wp = @a.with_progress('hello')
243
+ wp_wp = wp.with_progress('world')
244
+ wp.title.should == 'hello'
245
+ wp_wp.title.should == 'world'
246
+ wp_wp.should_not == wp
247
+ wp_wp.enumerable.should == wp.enumerable
248
+ end
249
+ end
234
250
  end
235
251
  end
236
252
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: progress
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 1
9
- - 1
10
- version: 2.1.1
8
+ - 2
9
+ - 0
10
+ version: 2.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ivan Kuchin