Showing entries 1 to 7
Displaying posts with tag: ruby (reset)
Rake task with arguments and :environment

Just a quick tip:


File: gistfile1.rb
——————

desc "Rake task with arguments and :environment"
task :task_name, [:arg1, :arg2] => :environment do |t, args|
args.with_defaults(:arg1 => "Foo", :arg2 => "Bar")
puts "Hello, #{args.arg1}. Bye, #{args.arg2}."
end

Notes:

  • You may omit the #with_defaults call.
  • You have to use an Array for your arguments, even if there is only one.

So you will be able to pass arguments to your rake task:


File: gistfile1.txt
——————-

$ rake task_name["Moon","Sun"]
Hello, Moon. Bye, Sun.

Llevo dos semanas de baja, sin poder tampoco salir de casa. Razón por...

Llevo dos semanas de baja, sin poder tampoco salir de casa. Razón por la cual pensé en aprovechar el tiempo e intentar mejorar mis conocimientos en algo que nunca se me ha dado bien. La programación y más exactamente, la orientada a objetos. Así que me pillé un libro Ruby y Kindle en mano he ido aprendiendo y poniendo en funcionamiento conceptos que siempre me han sonado a chino. Si bien es cierto que sigo teniendo muchísimas deficiencias de conocimientos a nivel de programación (soy sysadmin, fuera de bash scripting casi nunca tengo que hacer nada), creo que he cogido una base que me permitirá ir mejorando poco a poco dentro de mis limitaciones ;)

Para poner en práctica todo lo aprendido, quise hacer algo relacionado con las redes sociales y MySQL. Y entonces recordé que un buen amigo y ex-compañero de trabajo llamado …

[Lea más]
Timestamps with Paperclip and S3

I’m using Paperclip (2.3.11) to upload images to S3 and, as some other people have pointed out (here and here), if the content of a file changes but its name remains the same (for example, if you recrop the image), the timestamp added by Paperclip to the end of image URL won’t change. Consequently, the browser thinks the image hasn’t changed, and will display the old version.

Being image a Paperclip::Attachment, the url method will return something like:

> image.class
 => Paperclip::Attachment
> image.url
 => "http://domain/filename?1305625852"

If the image’s content changes, but not the name, the timestamp won’t change. To fix this issue, I’ve added a new and simple processor: …

[Lea más]
Los cheatsheets suelen ser unas tablas resumen que siempre conviene...

Los cheatsheets suelen ser unas tablas resumen que siempre conviene tener a mano. Existen miles de CheatSheets por la web, para servicios como Apache, Mysql o aplicaciones como Vim. Por ejemplo, en http://www.cheat-sheets.org/ teneís una colección al alcance de un click. Lo que aquí voy a enseñar es un pequeño truco para que todos ellos sean accesibles desde la consola, ya que no siempre tenemos un navegador a mano :)

Aprovechando que intento aprender Ruby y los conceptos de POO, haremos uso de las Gem de Ruby para dotar de CheatSheets a nuestra shell. La Gem que nos dará la funcionalidad se llama Cheat y su instalación es sencilla:

# gem install cheat
Successfully installed cheat-1.3.0
1 gem installed
Installing ri documentation for cheat-1.3.0...
Installing RDoc documentation for cheat-1.3.0...

[Lea más]
Selecting n random items from an array in ruby

Selecting n random items from an array in ruby is quite simple using the sort_by method provided by the Enumerable class. If we apply sort_by{ rand } to an array (or to a hash) we obtain the same array randomly ordered. If we only want n random items from the array, we can apply the slice method to the randomly orderer array to get the first n elements. For example, suppose we want to get 3 random items from my_array:

> my_array = (1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> my_array.sort_by{ rand }.slice(0..2)
=> [2, 9, 3]

You can find a more detailed explanation of how sort_by{ rand } works in …

[Lea más]
EuRuKo 2009 en Barcelona

Los próximos 9 y 10 de mayo de 2009 se celebrará en Barcelona la EuRuKo 2009, es decir, la conferencia europea de Ruby.

Si estás interasado en asistir, apúntate rápidamente, ya que creo que las plazas van a volar. El calendario de ponencias promete bastante. La keynote de apertura estará a cargo de Yukihiro Matsumoto, el creador de Ruby.

Rails en producción - Parte 3 - MySQL, Ruby y Rails

Postfix

Para que la instalación de MySQL no nos instale exim, instalaremos el servidor de correo Postfix.

$ sudo aptitude install postfix -y

MySQL

Instalamos los paquetes de MySQL. Esto además nos creará el usuario mysql en nuestro sistema:

$ sudo aptitude install mysql-server mysql-client libmysqlclient15-dev libmysql-ruby -y

Configuraremos una contraseña para el usuario root de la base de datos:

$ mysqladmin -u root password mipassword

Ruby

La versión de Ruby paquetizada en debian 4.0 es la 1.8.5. Si quisiéramos una versión superior, deberíamos compilar Ruby desde el código fuente.

Nosotros instalaremos los paquetes disponibles para debian. Para ello:

$ sudo aptitude install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 …
[Lea más]
Showing entries 1 to 7