Blog de ApuX

22 Oct

Algunas características de Rails 4

Published by ApuX

Aquí, mostraré algunas características que serán incluidas en Rails 4.

Ruby 1.9.3

Rails 4.0 depende de Ruby 1.9.3 (y posteriores). Algunas partes del código de Rails 4 usan sintaxis específica de 1.9.3, por lo que las versiones antiguas no serán soportadas; si estás usando una de esas, por favor, actualiza.

Polimórfico desde los generators

Se podrá generar resources especificando una asociación polimórfica directamente desde el generator, por ejemplo

15 Oct

Some Rails 4 features

Published by ApuX

Here, I will show just a few features to be included in Rails 4.

Ruby 1.9.3

Rails 4.0 depends on Ruby 1.9.3 (and later). Some parts of Rails 4 code use ruby 1.9.3 specific syntax, so, old versions of ruby will not be supported, if you are using one of them, please, update.

Polymorphic from generators

We will be able to generate resources specifying a polymorphic association directly from generators, for example

08 Oct

Usar palabras especiales como nombres de campos en Rails

Published by ApuX

Quiero mostrar un pequeño tip cuando se usan algunas paralabras especiales como nombres de campos en los modelos de Rails.
Primero, creemos un modelo con dos atributos booleanos: big y default. Nombré el modelo Product y agregué un atributo name sólo por facilidad, puedes ignorarlos.

rails g model product name:string big:boolean default:boolean
rake db:migrate

En consola, crearemos algunos productos

01 Oct

Using special words as field names in Rails

Published by ApuX

I want to show a small tip when using some special words as field name in rails models.
First, lets create a model with two boolean attributes: big and default. I named the model Product and added a name attribute just for easy understanding, you can ignore it.

rails g model product name:string big:boolean default:boolean
rake db:migrate

In console, we will create some products

24 Sep

Ejectutar git pull en multiples directorios a la vez

Published by ApuX

Algunas veces es útil actualizar multiples repositorios git de una sola vez. Si estos repositorios están en el mismo path, esto se puede hacer con un pequeño script.

17 Sep

Git pull on multiple directories at once

Published by ApuX

Sometimes it is usefull to update multiple git positories at once. If these repositories are on the same path, it can be done with a small script.

10 Sep

Un video sobre cooperativismo y software libre

Published by ApuX

Una producción argentina sobre cooperativismo y software libre.

10 Sep

How to calculate the size of a subversion repository

Published by ApuX

(I'm not using subversion as versioning control system any more, but I do as a backup system for some legacy projects.)

If you want to know the size of a repository, you can do it with du in the server. However, this info usually does not match with client version. That is, executing this command in server and executing it in client may give us different results. For example:

04 Sep

How to know the size of a directory [Linux]

Published by ApuX

It is possible to know the size of a directory occupies on disk with du command.

du -hs ./

Of course, instead of ./ (the current directory), you can indicate a specific path.

03 Sep

Using rails console with no permanent changes

Published by ApuX

One of the most powerfull rails tools (and one I use a lot) is rails console. It allows to test functionality with no necessity of a rails server execution, to perform some queries with rails syntax (not in sql), or to modify the information stored in the system, because all changes made in console are stored directly to database.

However, sometimes we need the changes not to be permanent, but only while we are in rails console session. For that, we can execute it adding --sandbox as parameter in prompt. Thus, all changes we made will be rolled back when we leave the console.

03 Sep

Skip bundle install when creating a new Rails app

Published by ApuX

From rails 3.1, some improvements were introduced to the framework, for example, coffeescript, sass and jquery. However, these gems are not part of Rails, but added as dependencies in Gemfile, so when we create a new rails project, rails executes automatically a 'bundle install' to ensure all dependencies are satisfied.

27 Aug

Some ways to filter the execution of specs

Published by ApuX

When rspec is executed, it runs all the specs in the rails project. However, sometimes only a spec or a small set of specs are wanted to be executed. In that case, it is possible to filter them in various ways. The simplest is specifying in the prompt, the path to the file or directory we want to execute. Example:

rspec spec/models

It will execute only the specs of files in spec/models directory.

20 Aug

Diversas formas de filtrar la ejecución de specs.

Published by ApuX

Al ejecutar rspec en un proyecto rails, por omisión se ejecutarán todos los specs del proyecto, sin embargo, en ocasiones sólo queremos ejecutar un spec o un conjunto de specs. Para esto es posible filtrarlos de diversas maneras. La forma más sencilla es especificar en la línea de comandos la ruta al archivo o a la carpeta que queremos utilizar. Ejemplo:

13 Aug

Diferencia entre ^, $ y \A, \z en las expresiones regulares de Ruby

Published by ApuX

Un error común cuando se trabaja con expresiones regulares en ruby, es utilizar los símbolos ^ y $ de manera equivalente a \A y \z.
El error consiste en suponer que ambos significan inicio y fin de cadena cuando no es así. \A y \z significan, efectivamente, inicio y fin de cadena, pero ^ y $ significan inicio y fin de línea, respectivamente. La diferencia es importante, ya que con ^ y $ se empatarán cadenas que contengan al menos una línea que cumpla con la condición interna, sin necesidad de que la cumpla toda la cadena; y puede ser que no sea eso lo que buscamos.

21 May

Sustitución de cadenas en Ruby (II)

Published by ApuX

Como se mostró en el post anterior, es posible utilizar expresiones regulares para buscar y reemplazar texto en una cadena en Ruby.
Ahora extenderemos el ejemplo para permitir que parte de sustitución se tome de la cadena a sustituir.
Basándonos en el mismo ejemplo que el post anterior, tomaremos como base la siguiente cadena:

Páginas