Ruby Integer (), Array (), et al - o que são eles? De onde eles vêm?
Eu me deparei com conversões do formulário Array (valor), String (valor) e Integer (valor) na ocasião. Parece-me que são apenas açúcar sintático para uma chamada aos métodos value.to_a, value.to_s ou value.to_i correspondentes.
Então estou me perguntando:
Onde / como são estes definidos? Eu não consigo encontrá-los no objeto, módulo, classe, etcExistem alguns cenários comuns para os quais é preferível usá-los em vez do método correspondente / subjacente to_X?Poderiam estes ser usados em coerção de tipo genérico? Isto é, posso fazer algo nos moldes do
[Integer, String, Array].each {|klass| klass.do_generic_coercion(foo) }
? (... e não, eu realmente não quero fazer isso; conheço o tipo que quero, mas estou tentando evitar a declaração do caso).