Forum: Rails-ES Una ayuda con librerías

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
264a821eb242365961027210e572f4c9?d=identicon&s=25 El Ganso (thegoose)
on 2007-02-10 12:12
¡Buenas! Para cogerle el gusto a ruby, estoy haciéndome un motorcillo
para mi blog, siguiendo básicamente los tutoriales de Vincent Gozalbes.
Como en esto de ruby es tan fácil empezar, tienes el doble filo de que
al final acabas teniendo una web funcionando y sin tener ni idea de qué
has hecho :)

Voy con mi duda: quiero tener algunas funciones para parsear las cadenas
de texto de las noticias y los comentarios, para convertir las URLs en
enlaces automáticamente, etc.

He probado tanto a crear métodos en el application_helper.rb como a
crearlos como librería.

Para esto último, me he creado un fichero en /lib/parseo.rb con este
contenido (el código está fusilado de Vincent, pero sólo es para
probar):

  class String
    def prueba_parseo
      result = self.downcase
      result.gsub!(/['"]/, '')
      result.gsub!(/W/, ' ')
      result.gsub!(/ +/, '-')
      result.gsub!(/(-)$/, '')
      result.gsub!(/^(-)/, '')
      result
    end
  end

Luego, he añadido esta línea al enviroment.rb:

  require 'parseo'

Y por último, lo he usado en la cabecera del blog así:

  <%= "esto es una prueba".prueba_parseo %>

Cuando cargo el blog, me da un casque de "Application error (Rails)", y
en los logs me aparece esto:

  ActionView::TemplateError (undefined method `prueba_parseo' for "esto
es una prueba":String) on line #19 of app/views/layouts/blog.rhtml:

¿Alguna idea de por dónde puedo tirar? Graciaaaaaas :)
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (Guest)
on 2007-02-10 15:07
(Received via mailing list)
On Feb 10, 2007, at 12:12 PM, Ganso Ganso wrote:

> He probado tanto a crear métodos en el application_helper.rb como a
> crearlos como librería.

Si es un metodo para ser usado solo en vistas, es un helper. En ese
caso seria un metodo que recibe la cadena y devuelve el resultado del
parseo. Si es de uso mas general entonces esta OK sacarlo a una
libreria y ya meterlo en String o no va a gusto del consumidor. Mi
criterio personal es no tocar demasiado las clases estandares y crear
una libreria de utilidades de la aplicacion que recoge un puñado de
metodos.

> Para esto último, me he creado un fichero en /lib/parseo.rb con este
> contenido (el código está fusilado de Vincent, pero sólo es para
> probar):
>
>   class String
>     def prueba_parseo
>       result = self.downcase
>       result.gsub!(/['"]/, '')
>       result.gsub!(/W/, ' ')

Aqui seguramente queria decir \W.

>       result.gsub!(/ +/, '-')
>       result.gsub!(/(-)$/, '')
>       result.gsub!(/^(-)/, '')

En estos dos ultimos los parentesis no se usan, por lo que se quitarian.


> "esto
> es una prueba":String) on line #19 of app/views/layouts/blog.rhtml:
>
> ¿Alguna idea de por dónde puedo tirar? Graciaaaaaas :)

Tal como lo explicas deberia funcionar. Rebotaste el servidor?

-- fxn
This topic is locked and can not be replied to.