[Ror-es] private static final

Carlos Kozuszko
Sat Feb 25 19:59:53 GMT 2006


Quiero lograr el mismo efecto que se logra al definir una variable con los 
modificadores "private static final" en Java. Es decir, que el valor de la 
variable se asigne sólo una vez al cargar la clase y no al crear cada 
instancia de la misma. 
Les pongo un ejemplo:

class Link < ActiveRecord::Base
  ## Devuelve el hash para la url
  def self.get_hash(url)
    raise Exception unless url && Regexp.new('http\://[a-zA-Z0-9\-\.]+\.
[a-zA-Z]{2,3}(/\S*)?').match(url)
    seed = 'mi semilla'
    return Digest::SHA1.hexdigest(seed + url)
  end
end

Yo quiero evitar que la Regexp que utilizo se cree cada vez que se ejecuta el 
método get_hash. Quiero crear una variable estática que se inicialice una 
sólo vez. Tal vez en este ejemplo la recarga de inicializar una expresión 
regular por cada llamada no es tanta, pero tal vez en otras tareas esa 
inicialización sea más pesada, es por eso que quiero aprender como hacerla.

Mis conocimientos son más de Rails en general que de Ruby en particular.

Muchas gracias!

-- 
Web Site: http://www.ckozus.com.ar
Blog: http://www.ckozus.com.ar/blog
Mis links: http://del.icio.us/ckozus