diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-17 00:34:47 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-17 00:34:47 +0900 |
| commit | ed2fe640767ca8852ebae91285d1b5091ecf2556 (patch) | |
| tree | 434aec89aa37fc4af64dc13bb732a2fd3b838ca9 | |
| parent | 75a4f1ac962521a73d156ae270422435d9446ba6 (diff) | |
| download | mruby-ed2fe640767ca8852ebae91285d1b5091ecf2556.tar.gz mruby-ed2fe640767ca8852ebae91285d1b5091ecf2556.zip | |
Enumerable#entries to support multiple values; close #1868
| -rw-r--r-- | mrblib/array.rb | 12 | ||||
| -rw-r--r-- | mrblib/enum.rb | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/mrblib/array.rb b/mrblib/array.rb index aa50ac181..8c81d80f1 100644 --- a/mrblib/array.rb +++ b/mrblib/array.rb @@ -97,6 +97,18 @@ class Array ret end end + + # internal method to convert multi-value to single value + def __to_svalue + case self.size + when 0 + return nil + when 1 + self[0] + else + self + end + end end ## diff --git a/mrblib/enum.rb b/mrblib/enum.rb index 53f2119b0..1e78e39cc 100644 --- a/mrblib/enum.rb +++ b/mrblib/enum.rb @@ -129,8 +129,9 @@ module Enumerable # ISO 15.3.2.2.6 def entries ary = [] - self.each{|val| - ary.push val + self.each{|*val| + # __to_svalue is an internal method + ary.push val.__to_svalue } ary end |
