From: "phluid61 (Matthew Kerwin)" Date: 2013-03-08T08:48:43+09:00 Subject: [ruby-core:53204] [ruby-trunk - Feature #7854] New method Symbol[string] Issue #7854 has been updated by phluid61 (Matthew Kerwin). File symbol_lookup2.patch added nobu (Nobuyoshi Nakada) wrote: > To obtain existing symbol, rb_check_id() is already available, so you don't have to add new extern function. Thank you for the feedback. With that in mind, I've made a less invasive version which only modifies string.c Please let me know if my enthusiasm gets annoying. :) ---------------------------------------- Feature #7854: New method Symbol[string] https://bugs.ruby-lang.org/issues/7854#change-37370 Author: Student (Nathan Zook) Status: Open Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: core Target version: next minor I propose a new class method [] on Symbol. If a symbol s already exists such that s.to_s == string, then s is returned. If not, nil is returned. The inspiration for this method is a question I was asked, and the answer I was given: "Why would you want to turn a tainted string into a symbol?" "I don't--I want to access an existing symbol with tainted data". Symbol[] accesses the symbol table like hash[] accesses the elements of a hash. I believe that this completely addresses the problems behind tickets #7791 and #7839. I believe that it is a more intuitive solution than my proposal #7795, and I believe that this will also be useful for YAML.safe_load and similar initiatives. -- http://bugs.ruby-lang.org/