diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-14 02:41:22 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-14 02:41:22 +0900 |
| commit | 113ab607846e63c0348758d3e13017e0ea3a45a3 (patch) | |
| tree | 379aa985de0a4c1a148bc693b2207eaf66d44bc3 /mrblib/kernel.rb | |
| parent | 463c5f83c3e5f379d4dd59deb17179915fbaf93b (diff) | |
| download | mruby-113ab607846e63c0348758d3e13017e0ea3a45a3.tar.gz mruby-113ab607846e63c0348758d3e13017e0ea3a45a3.zip | |
mruby-enumerator: move definitions in core_mod.rb to mrblib core
Diffstat (limited to 'mrblib/kernel.rb')
| -rw-r--r-- | mrblib/kernel.rb | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/mrblib/kernel.rb b/mrblib/kernel.rb index 0277a1b83..fd4dc04ac 100644 --- a/mrblib/kernel.rb +++ b/mrblib/kernel.rb @@ -18,11 +18,12 @@ module Kernel # Calls the given block repetitively. # # ISO 15.3.1.2.8 - def self.loop #(&block) - while(true) - yield - end - end + # provided by Kernel#loop + # def self.loop #(&block) + # while(true) + # yield + # end + # end # 15.3.1.2.3 def self.eval(s) @@ -38,14 +39,22 @@ module Kernel # Alias for +Kernel.loop+. # # ISO 15.3.1.3.29 - def loop #(&block) + def loop + return to_enum :loop unless block_given? + while(true) yield end + rescue => StopIteration + nil end # 11.4.4 Step c) def !~(y) !(self =~ y) end + + def to_enum(*a) + raise NotImplementedError.new("fiber required for enumerator") + end end |
