P
Phil Tomson
I had a situation in a DSL like so:
str = '0'*n
Where n in one context could be a Symbol. If n happened to be a Symbol, I
wanted to get an error message. However, I found that if n is a symbol you
could get a very long string of 0's because there is a Symbol#to_int method
which returns a unique integer for each Symbol object (actually, it calls
Symbol#to_i). And so I don't get the error message I want to get because the
symbol gets converted to an Integer automatically. So what's the usefulness of
the Symbol#to_int method? I'm just undefining it like so:
class Symbol
undef_method :to_int
end
....that works for my purposes, but I wonder why there is a
Symbol#to_int method in the library. Why not just require that Symbol#to_i be
called explicitly if that's what you want?
Phil
str = '0'*n
Where n in one context could be a Symbol. If n happened to be a Symbol, I
wanted to get an error message. However, I found that if n is a symbol you
could get a very long string of 0's because there is a Symbol#to_int method
which returns a unique integer for each Symbol object (actually, it calls
Symbol#to_i). And so I don't get the error message I want to get because the
symbol gets converted to an Integer automatically. So what's the usefulness of
the Symbol#to_int method? I'm just undefining it like so:
class Symbol
undef_method :to_int
end
....that works for my purposes, but I wonder why there is a
Symbol#to_int method in the library. Why not just require that Symbol#to_i be
called explicitly if that's what you want?
Phil