Unverified Commit 0f902279 authored by ksss's avatar ksss

Change Lazy class outer

Lazy class should be under Enumerator instead of Enumerable
parent 2bb47add
...@@ -53,7 +53,7 @@ MRuby::GemBox.new do |conf| ...@@ -53,7 +53,7 @@ MRuby::GemBox.new do |conf|
# Use Enumerator class (require mruby-fiber) # Use Enumerator class (require mruby-fiber)
conf.gem :core => "mruby-enumerator" conf.gem :core => "mruby-enumerator"
# Use Enumerable::Lazy class (require mruby-enumerator) # Use Enumerator::Lazy class (require mruby-enumerator)
conf.gem :core => "mruby-enum-lazy" conf.gem :core => "mruby-enum-lazy"
# Use toplevel object (main) methods extension # Use toplevel object (main) methods extension
......
MRuby::Gem::Specification.new('mruby-enum-lazy') do |spec| MRuby::Gem::Specification.new('mruby-enum-lazy') do |spec|
spec.license = 'MIT' spec.license = 'MIT'
spec.author = 'mruby developers' spec.author = 'mruby developers'
spec.summary = 'Enumerable::Lazy class' spec.summary = 'Enumerator::Lazy class'
spec.add_dependency('mruby-enumerator', :core => 'mruby-enumerator') spec.add_dependency('mruby-enumerator', :core => 'mruby-enumerator')
spec.add_dependency('mruby-enum-ext', :core => 'mruby-enum-ext') spec.add_dependency('mruby-enum-ext', :core => 'mruby-enum-ext')
end end
...@@ -2,7 +2,7 @@ module Enumerable ...@@ -2,7 +2,7 @@ module Enumerable
# = Enumerable#lazy implementation # = Enumerable#lazy implementation
# #
# Enumerable#lazy returns an instance of Enumerable::Lazy. # Enumerable#lazy returns an instance of Enumerator::Lazy.
# You can use it just like as normal Enumerable object, # You can use it just like as normal Enumerable object,
# except these methods act as 'lazy': # except these methods act as 'lazy':
# #
...@@ -16,9 +16,11 @@ module Enumerable ...@@ -16,9 +16,11 @@ module Enumerable
# - flat_map collect_concat # - flat_map collect_concat
# - zip # - zip
def lazy def lazy
Lazy.new(self) Enumerator::Lazy.new(self)
end end
end
class Enumerator
# == Acknowledgements # == Acknowledgements
# #
# Based on https://github.com/yhara/enumerable-lazy # Based on https://github.com/yhara/enumerable-lazy
......
assert("Enumerable::Lazy") do assert("Enumerator::Lazy") do
a = [1, 2] a = [1, 2]
assert_equal Enumerable::Lazy, a.lazy.class assert_equal Enumerator::Lazy, a.lazy.class
end end
assert("Enumerable::Lazy laziness") do assert("Enumerator::Lazy laziness") do
a = Object.new a = Object.new
def a.each def a.each
return to_enum :each unless block_given? return to_enum :each unless block_given?
...@@ -40,7 +40,7 @@ assert("Enumerable::Lazy laziness") do ...@@ -40,7 +40,7 @@ assert("Enumerable::Lazy laziness") do
assert_equal [10,20], a.b assert_equal [10,20], a.b
end end
assert("Enumerable::Lazy#zip with cycle") do assert("Enumerator::Lazy#zip with cycle") do
e1 = [1, 2, 3].cycle e1 = [1, 2, 3].cycle
e2 = [:a, :b].cycle e2 = [:a, :b].cycle
assert_equal [[1,:a],[2,:b],[3,:a]], e1.lazy.zip(e2).first(3) assert_equal [[1,:a],[2,:b],[3,:a]], e1.lazy.zip(e2).first(3)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment