summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-hash-ext/mrblib/hash.rb20
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 82847c39b..f214cb1d5 100644
--- a/mrbgems/mruby-hash-ext/mrblib/hash.rb
+++ b/mrbgems/mruby-hash-ext/mrblib/hash.rb
@@ -3,6 +3,26 @@ class Hash
# ISO does not define Hash#each_pair, so each_pair is defined in gem.
alias each_pair each
+ ##
+ # call-seq:
+ # Hash[ key, value, ... ] -> new_hash
+ # Hash[ [ [key, value], ... ] ] -> new_hash
+ # Hash[ object ] -> new_hash
+ #
+ # Creates a new hash populated with the given objects.
+ #
+ # Similar to the literal <code>{ _key_ => _value_, ... }</code>. In the first
+ # form, keys and values occur in pairs, so there must be an even number of
+ # arguments.
+ #
+ # The second and third form take a single argument which is either an array
+ # of key-value pairs or an object convertible to a hash.
+ #
+ # Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
+ # Hash[ [ ["a", 100], ["b", 200] ] ] #=> {"a"=>100, "b"=>200}
+ # Hash["a" => 100, "b" => 200] #=> {"a"=>100, "b"=>200}
+ #
+
def self.[](*object)
o = object[0]
if o.respond_to?(:to_hash)