Sha256: 495cb272dd7eb8cf045405dcd41cfb647246be37ba641a25b506e71f95378b0e
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
# Must be defined outside of Kernel for jruby, see http://jira.codehaus.org/browse/JRUBY-3609 Enumerator = Enumerable::Enumerator unless Object.const_defined? :Enumerator # Standard in ruby 1.9 class Enumerator # new with block, standard in Ruby 1.9 unless (self.new{} rescue false) # A simple class which allows the construction of Enumerator from a block class Yielder def initialize(&block) @final_block = block end def yield(*arg) @final_block.yield(*arg) end def <<(*arg) @final_block.yield(*arg) self end end class Generator def initialize(&block) @main_block = block end def each(&block) @main_block.call(Yielder.new(&block)) end end def initialize_with_optional_block(*arg, &block) return initialize_without_optional_block(*arg, &nil) unless arg.empty? # Ruby 1.9 apparently ignores the block if any argument is present initialize_without_optional_block(Generator.new(&block)) end Backports.alias_method_chain self, :initialize, :optional_block end Backports.alias_method self, :with_object, :each_with_object end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
backports-2.8.2 | lib/backports/1.9.1/enumerator.rb |