Issue #4621 has been updated by Yui NARUSE.

Category set to core
Status changed from Open to Assigned
Assignee set to Yukihiro Matsumoto


----------------------------------------
Feature #4621: NilClass#to_hash
http://redmine.ruby-lang.org/issues/4621

Author: Tsuyoshi Sawada
Status: Assigned
Priority: Normal
Assignee: Yukihiro Matsumoto
Category: core
Target version: 


Various methods defined on `NilClass` are handy to avoid Method undefined on NilClass errors. For example,

* `to_a` for multiple dimensioned array when there might not be some values for some indices:

        array[i].to_a[j].to_a[k]

* `to_s` for pattern match that might fail:

        string[regex].to_s*2

* `to_i`, `to_f`, `to_c` for index search that might fail, etc:

        array.index(element).to_i*3

But there is no `NilClass#to_hash` even though there is `Hash#to_hash`. If such method existed (equivalent to `class NilClass; def to_hash; {} end end`), then we would be able to do:

* `to_hash` for multiple embedded hash when there might not be some values for some keys:

        hash[:a].to_hash[:b].to_hash[:c]

Is there any reason why `to_a`, `to_s`, `to_i`, `to_f`, `to_c` are all defined on `NilClass` but not for `to_hash`? If there is not, I would like to request this feature.


-- 
http://redmine.ruby-lang.org