Archive of articles classified as' "Ruby"

Back home

Run a remote ruby script locally.

25/11/2012

If you ever want to try a ruby script without downloading it you can do it like this:

ruby -e "$(curl -fsSL https://raw.github.com/gist/3862719/bb2a7a18f3dc4d95cfa77d637317e296a114eak1/some_script.rb)"

I know this is not rocket science but i want to have this line handy.

No Comments

rbx-require-relative requires Ruby version ~> 1.8.7

17/08/2011

If you ever run into this problem when trying to run bundle install using ruby 1.9.2 all you need to do is change in your Gemfile ruby-debug to ruby-debug19.

Answer @ Stackoverflow

2 Comments

Rails: perdiendo la cabeza con before_save

9/12/2009

Recientemente encontré un ‘bug’ en una aplicación que estoy desarrollando, tiene que ver con los callbacks de Rails, en específico before_save.

Por fín lo he resuelto, no de la manera que esperaba, tal vez por berrinchudo ya que aún me queda una duda, pero al fin puedo continuar desarrollando y un peso se ha ido de mí.

La parte afectada de la aplicación involucra 2 modelos, digamos:

class Category
  has_many :products
end
 
class Products
  belongs_to :category
end
 
app/models/category.rb
before_save
  return unless self.published
  self.products.first.amount = (algun calculo dinámico)
end

Justo en este callback es donde está lo misterioso, la cantidad(amount) del primer producto nunca cambiaba amenos que actualizara la categoría, la publicara y la grabara 2 veces!! a la 2a vez el cálculo se realizaba, esto me quitó el sueño y me hizo perder gran cantidad de tiempo analizando el problema.

por qué a la 2a vez si pasaba?

Corrí la aplicación con el debugger y pues Rails sí pasaba por esa parte del código pero la cantidad del producto quedaba intacta, incluso intente cosas como estas:

app/models/category.rb
before_save
  return unless self.published
  self.products.first.amount = (algun calculo dinámico)
  self.name = 'Algún nombre'
end

Y pues la primera vez que grababa, ya con el atributo de published en true, name sí se actualizaba pero amount no! sólo hasta la segunda… hasta la fecha no entiendo por que sucede esto, no he logrado llegar a una conclusión, lo que sí es que por lo pronto ya encontré una solución:

app/models/category.rb
before_save
  return unless self.published
  self.products.first.update_attribute(:amount, (algun calculo dinámico))
end

De esta manera el cálculo ocurre todas y cada una de las veces que la categoría es actualizada.

No Comments

Ruby 1.9.1 liberada

31/01/2009

La rama 1.9 de Ruby alcanzó calidad estable y lista para producción con la versión 1.9.1 que fue publicada el dia de ayer por Yuki Sonoda.

Esta nueva versión ofrece mejoras en la rápidez de ejecución, nuevas clases de objetos, cambios en la sintáxis, un enorme soporte para coficación de archivos, multilenguaje, etc., por lo que se recomienda una pronta adopción, para familiarizarse con los cambios, encontrar bugs, portar gemas y código en general.

Se debe tener en cuenta que muchas gemas no funcionan aún sobre 1.9 así que la actualización debe llevarse con cautela.

Instalación en Mac OSX

Si se desea instalar en Mac OSX sin alterar la instalación de la 1.8.x sólo hace falta seguir las siguientes instrucciones

curl ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.bz2 -o ruby-1.9.1-p0.tar.bz2
tar xjf ruby-1.9.1-p0.tar.bz2

Ahora para no afectar la version instalada se le especifíca un sufijo a la hora de compilarla.
cd ruby-1.9.1-p0/
autoconf
./configure --program-suffix=19
make && sudo make install

Y con eso quedará lista para su uso.
xrx:~ danielroux$ ruby1.9 -e "puts 'hola mundo :-)'" -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9.6.0]
hola mundo :-)

Ruby 1.9 es sólo una versión de transición hacia la 2.0 que se dice será lanzada en un lapso menor a los anteriores, (Ruby 1.8 fue lanzada en el 2003), en mi opinión a finales del 2011 luego de la 1.9.3; su desarrollo inició ya hace tiempo pero al mantener mucha similutud con la 1.9 el cambio será menos drástico que si lo hacemos desde la 1.8.

Igualmente la versión 1.8 tendrá una actualización, la 1.8.8 , en este mismo año.

Links:

No Comments

The future is always beginning now

23/01/2009

Luego de un buen tiempo separado del blogging este inicio de año vuelvo ya que tengo un par de própositos que cumplir.

El primero tiene que ver con lo que he hecho desde mitad del 2007. En esas fechas un proyecto en el que estaba involucrado se vino abajo y para aprovechar el tiempo que tenía libre luego de eso me puse a leer sobre Ruby, ya que aparecía en todas partes, gracias a la fama que le trajo Rails y quería averiguar de que se trataba todo el alboroto.

Mi meta en ese entonces era aprender Rails, por su enfoque al desarrollo web. Al poco tiempo y luego de leer en repetidas ocasiones el mismo consejo, que aprendiera Ruby primero, decidí tomarlo, cambié mis libros de Rails por los de Ruby y vaya que grata sorpresa fue.

Primero, mucho de lo que había leído en los libros de Rails comenzaba a tener algo de sentido y segundo me enamoré totalmente del lenguaje, a tal grado que me enfoqué totalmente a aprenderlo, con el deseo de convertirme en un gran Rubysta y algún día ser un maestro en él.

Esta misión no ha resultado más que ser un placer, no hay día que no me guste utilizar Ruby, no me canso de ver código en mi pantalla, no me fastidia, no me aburre, no me defrauda.

En Marzo del 2008 conseguí mi primer empleo relacionado con Ruby y Rails, he tenido la oportunidad de trabajar en varios proyectos, de ampliar mi conocimiento sobre Rails, su uso en el mundo real y cada día reafirmo mi gusto por el lenguaje y el framework.

Todo lo anterior es lo que me ha traído hasta aquí, este blog es el siguiente paso en mi objetivo de convertirme en un mejor programador en Ruby.

Cuando hacia mi lista de propósitos para el 2009, me fijé que tenía que involucrarme más en la comunidad de Ruby, tanto en México como en el mundo, lo que hace que este esfuerzo cumpla 2 de mis metas. En el momento no me quedaba claro de qué forma lo haría pero esta semana obtuve mi respuesta.

Comenzaré escribiendo un tutorial de Ruby, lo publicaré aquí y donde me sea posible. Podré aportarlo a la comunidad, ampliaré y reforzaré conocimientos y me actualizaré ya que la nueva versión de Ruby, la 1.9, esta en plena adopción y hay cambios en la sintáxis y cientos si no miles de cambios en la api.

Así que el momento ha llegado de llevar mis conocimientos de Ruby al siguiente nivel, aportar a la comunidad, ayudarla a crecer, conocer gente que comparta mi misma pasión, utilizando nuevos medios de comunicación que hasta la fecha no he explotado para mi crecimiento.

Como aclaración, aunque en este post sólo hablo de Ruby, hasta inténsamente, no tengo nada en contra de ningún otro lenguaje, al contrario, espero en un futuro aprender más, como Python, que es el primero en mi lista y los que atraigan mi atención.

No Comments