diff options
| author | Jun Hiroe <[email protected]> | 2014-05-04 21:03:48 +0900 |
|---|---|---|
| committer | Jun Hiroe <[email protected]> | 2014-05-04 21:14:13 +0900 |
| commit | 28a858c17edd0c9939dd18d1ca82ff6a3cb42948 (patch) | |
| tree | 8f41d698809afb80f10d8283cbbf47e2dd9d3f11 /mrbgems/mruby-hash-ext/mrblib/hash.rb | |
| parent | e9e4c13390eb5f135182449a951d6b6eec05b2e9 (diff) | |
| download | mruby-28a858c17edd0c9939dd18d1ca82ff6a3cb42948.tar.gz mruby-28a858c17edd0c9939dd18d1ca82ff6a3cb42948.zip | |
Add Hash#flatten
Diffstat (limited to 'mrbgems/mruby-hash-ext/mrblib/hash.rb')
| -rw-r--r-- | mrbgems/mruby-hash-ext/mrblib/hash.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mrbgems/mruby-hash-ext/mrblib/hash.rb b/mrbgems/mruby-hash-ext/mrblib/hash.rb index ce8fa3577..1ebc540e8 100644 --- a/mrbgems/mruby-hash-ext/mrblib/hash.rb +++ b/mrbgems/mruby-hash-ext/mrblib/hash.rb @@ -100,4 +100,24 @@ class Hash end self end + + ## + # call-seq: + # hash.flatten -> an_array + # hash.flatten(level) -> an_array + # + # Returns a new array that is a one-dimensional flattening of this + # hash. That is, for every key or value that is an array, extract + # its elements into the new array. Unlike Array#flatten, this + # method does not flatten recursively by default. The optional + # <i>level</i> argument determines the level of recursion to flatten. + # + # a = {1=> "one", 2 => [2,"two"], 3 => "three"} + # a.flatten # => [1, "one", 2, [2, "two"], 3, "three"] + # a.flatten(2) # => [1, "one", 2, 2, "two", 3, "three"] + # + + def flatten(level=1) + self.to_a.flatten(level) + end end |
