summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--struct.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/struct.c b/struct.c
index 45c9a6df4e..c0cef33eb7 100644
--- a/struct.c
+++ b/struct.c
@@ -901,13 +901,19 @@ rb_struct_to_a(VALUE s)
/*
* call-seq:
- * struct.to_h -> hash
+ * struct.to_h -> hash
+ * struct.to_h {|name, value| block } -> hash
*
* Returns a Hash containing the names and values for the struct's members.
*
+ * If a block is given, the results of the block on each pair of the receiver
+ * will be used as pairs.
+ *
* Customer = Struct.new(:name, :address, :zip)
* joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
* joe.to_h[:address] #=> "123 Maple, Anytown NC"
+ * joe.to_h{|name, value| [name.upcase, value.to_s.upcase]}[:ADDRESS]
+ * #=> "123 MAPLE, ANYTOWN NC"
*/
static VALUE