2008-12-28 32 views
6

Cuando la lectura del código fuente de la bestia, me encontré con un montón de código como este:[] Formas de Rubí cadena

<%= 'Password'[:password_title] %> 

Parece que una llamada a [] método con el símbolo como parámetro de entrada a una cadena para mí, pero no encontré ese tipo de parámetro del método String [] en la API de ruby. ¿Qué significa esto? gracias de antemano.

Respuesta

11

Es un método agregado por el plug-in "Gibberish" que Beast usa, para la internacionalización. Recuerde, las clases en Ruby están abiertas, por lo que no siempre puede contar con la API estándar en casos como este.

1
str[fixnum] => fixnum or nil 
str[fixnum, fixnum] => new_str or nil 
str[range] => new_str or nil 
str[regexp] => new_str or nil 
str[regexp, fixnum] => new_str or nil 
str[other_str] => new_str or nil 

Esto es lo que encontré. Si el símbolo aquí es igual a Cadena, todavía no entiendo el significado del código. ¿Por qué no simplemente usar:

<%= 'password' %> 

o incluso:

password 
+0

Sí, es un poco extraño. Eliminaré mi respuesta. No pensé antes de ofrecerlo. – PEZ

+0

Gracias por su edición, John :) – eric2323223

4

En la fuente de bestia, echa un vistazo a la jerga del plugin donde se está modificando clase String para aceptar los símbolos en función de los soportes.

La clase de cadena por sí sola no hace nada razonable al aplicar el método str[symbol].