From: naruse@...
Date: 2014-02-25T16:34:12+00:00
Subject: [ruby-core:61079] [ruby-trunk - Feature #7854] [Closed] New method	Symbol[string]

Issue #7854 has been updated by Yui NARUSE.

Status changed from Assigned to Closed
% Done changed from 0 to 100

Applied in changeset r45175.

----------
* string.c (sym_find): Add Symbol.find(str), which returns whether given
  string is defined as symbol or not. [Feature #7854]

----------------------------------------
Feature #7854: New method Symbol[string]
https://bugs.ruby-lang.org/issues/7854#change-45475

* Author: Nathan Zook
* Status: Closed
* Priority: Normal
* Assignee: Yui NARUSE
* 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.


---Files--------------------------------
symbol_lookup.patch (1.83 KB)
symbol_lookup2.patch (1.36 KB)
symbol_lookup3.patch (1.07 KB)
symbol_lookup3_warn.patch (1.16 KB)


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