String.intern vs String.to_sym

Can anyone make a case for ever using String.intern? It seems to be
nothing more than an alias to to_sym on String, and since it’s not
defined on Symbol, you can’t ducktype a var to get a symbol.

I’m trying to understand why this even exists in the Ruby language, it
doesn’t seem like it would be useful for anything. variable.to_sym
seems to be the safer route to always use.

Thanks, ian

On Jul 28, 2008, at 14:07 PM, Ian Hunter wrote:

Can anyone make a case for ever using String.intern? It seems to be
nothing more than an alias to to_sym on String, and since it’s not
defined on Symbol, you can’t ducktype a var to get a symbol.

#intern came first, #to_sym is an alias of #intern.

I’m trying to understand why this even exists in the Ruby language, it
doesn’t seem like it would be useful for anything. variable.to_sym
seems to be the safer route to always use.

It’s useful for backwards compatibility.

On Jul 28, 2008, at 14:07 PM, Ian Hunter wrote:

[intern]'s not defined on Symbol

It’s worth noting that Symbol#intern is defined in 1.9.0.

Stephen