summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-enum-lazy/mrblib/lazy.rb')
-rw-r--r--mrbgems/mruby-enum-lazy/mrblib/lazy.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
index c98681edf..9227abe8a 100644
--- a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
+++ b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
@@ -158,6 +158,21 @@ class Enumerator
}
end
+ def uniq(&block)
+ hash = {}
+ Lazy.new(self){|yielder, val|
+ if block
+ v = block.call(val)
+ else
+ v = val
+ end
+ unless hash.include?(v)
+ yielder << val
+ hash[v] = val
+ end
+ }
+ end
+
alias force to_a
end
end