summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrblib/array.rb12
-rw-r--r--mrblib/enum.rb5
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