From ed2fe640767ca8852ebae91285d1b5091ecf2556 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 17 Mar 2014 00:34:47 +0900 Subject: Enumerable#entries to support multiple values; close #1868 --- mrblib/array.rb | 12 ++++++++++++ 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 -- cgit v1.2.3