summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-02-13 12:45:59 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-02-13 12:45:59 +0000
commitf061d403264013440070df52bba46588f2897148 (patch)
treef3121f3a823a89d67b35cf6ee87a45b3b84adfad
parent1ee9cad027e910b36bd4191ef2339d02e6711a32 (diff)
* hash.c (rb_hash_invert): [DOC] more examples.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--hash.c16
2 files changed, 20 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index dec603b..7b7340f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sat Feb 13 21:44:58 2016 Tanaka Akira <akr@fsij.org>
+
+ * hash.c (rb_hash_invert): [DOC] more examples.
+
Sat Feb 13 17:30:49 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/uri/generic.rb (URI::Generic#find_proxy): support CIDR in
diff --git a/hash.c b/hash.c
index 7759332..68da110 100644
--- a/hash.c
+++ b/hash.c
@@ -2217,6 +2217,22 @@ rb_hash_invert_i(VALUE key, VALUE value, VALUE hash)
* h = { "n" => 100, "m" => 100, "y" => 300, "d" => 200, "a" => 0 }
* h.invert #=> {0=>"a", 100=>"m", 200=>"d", 300=>"y"}
*
+ * If there is no key with the same value, Hash#invert is involutive.
+ *
+ * h = { a: 1, b: 3, c: 4 }
+ * h.invert.invert == h #=> true
+ *
+ * The condition, no key with the same value, can be tested by comparing
+ * the size of inverted hash.
+ *
+ * # no key with the same value
+ * h = { a: 1, b: 3, c: 4 }
+ * h.size == h.invert.size #=> true
+ *
+ * # two (or more) keys has the same value
+ * h = { a: 1, b: 3, c: 1 }
+ * h.size == h.invert.size #=> false
+ *
*/
static VALUE