diff options
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | object.c | 18 |
2 files changed, 22 insertions, 0 deletions
@@ -43,6 +43,10 @@ with all sufficient information, see the ChangeLog file. * added LoadError#path method to return the file name that could not be loaded. + * NilClass + * added method: + * added nil.to_h which returns {} + * Signal * incompatible changes: * Signal.trap raises ArgumentError when :SEGV, :BUS, :ILL, :FPE, :VTALRM @@ -1058,6 +1058,23 @@ nil_to_a(VALUE obj) } /* + * Document-method: to_h + * + * call-seq: + * nil.to_h -> {} + * + * Always returns an empty hash. + * + * nil.to_h #=> {} + */ + +static VALUE +nil_to_h(VALUE obj) +{ + return rb_hash_new(); +} + +/* * call-seq: * nil.inspect -> "nil" * @@ -2896,6 +2913,7 @@ Init_Object(void) rb_define_method(rb_cNilClass, "to_f", nil_to_f, 0); rb_define_method(rb_cNilClass, "to_s", nil_to_s, 0); rb_define_method(rb_cNilClass, "to_a", nil_to_a, 0); + rb_define_method(rb_cNilClass, "to_h", nil_to_h, 0); rb_define_method(rb_cNilClass, "inspect", nil_inspect, 0); rb_define_method(rb_cNilClass, "&", false_and, 1); rb_define_method(rb_cNilClass, "|", false_or, 1); |