backports 2.2.1 → 2.3.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.
@@ -1,5 +1,9 @@
1
1
  = Packable --- History
2
2
 
3
+ == Version 2.3.0 - May 13th, 2011
4
+
5
+ * Added Enumerator::Yielder#<<
6
+
3
7
  == Version 2.2.0 - May 13th, 2011
4
8
 
5
9
  * Ruby 1.8.8 was officially cancelled; code was moved to Ruby 1.9.1 and README updated.
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :build:
3
3
  :major: 2
4
- :minor: 2
5
- :patch: 1
4
+ :minor: 3
5
+ :patch: 0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{backports}
8
- s.version = "2.2.1"
8
+ s.version = "2.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marc-Andr\303\251 Lafortune"]
12
- s.date = %q{2011-05-13}
12
+ s.date = %q{2011-06-23}
13
13
  s.description = %q{ Essential backports that enable some of the really nice features of ruby 1.8.7, ruby 1.9 and rails from ruby 1.8.6 and earlier.
14
14
  }
15
15
  s.email = %q{github@marc-andre.ca}
@@ -4,9 +4,30 @@ Enumerator = Enumerable::Enumerator unless Object.const_defined? :Enumerator # S
4
4
  class Enumerator
5
5
  # new with block, standard in Ruby 1.9
6
6
  unless (self.new{} rescue false)
7
+ # A simple class which allows the construction of Enumerator from a block
8
+ class Yielder
9
+ def initialize(&block)
10
+ @main_block = block
11
+ end
12
+
13
+ def each(&block)
14
+ @final_block = block
15
+ @main_block.call(self)
16
+ end
17
+
18
+ def yield(*arg)
19
+ @final_block.yield(*arg)
20
+ end
21
+
22
+ def <<(*arg)
23
+ @final_block.yield(*arg)
24
+ self
25
+ end
26
+ end
27
+
7
28
  def initialize_with_optional_block(*arg, &block)
8
29
  return initialize_without_optional_block(*arg, &nil) unless arg.empty? # Ruby 1.9 apparently ignores the block if any argument is present
9
- initialize_without_optional_block(Backports::Yielder.new(&block))
30
+ initialize_without_optional_block(Yielder.new(&block))
10
31
  end
11
32
  Backports.alias_method_chain self, :initialize, :optional_block
12
33
  end
@@ -182,20 +182,4 @@ module Backports
182
182
  to.instance_variable_set :@is_lambda, is_lambda
183
183
  to
184
184
  end
185
-
186
- # A simple class which allows the construction of Enumerator from a block
187
- class Yielder
188
- def initialize(&block)
189
- @main_block = block
190
- end
191
-
192
- def each(&block)
193
- @final_block = block
194
- @main_block.call(self)
195
- end
196
-
197
- def yield(*arg)
198
- @final_block.yield(*arg)
199
- end
200
- end
201
185
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backports
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 2
8
- - 2
9
- - 1
10
- version: 2.2.1
8
+ - 3
9
+ - 0
10
+ version: 2.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Marc-Andr\xC3\xA9 Lafortune"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-13 00:00:00 -04:00
18
+ date: 2011-06-23 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies: []
21
21