Gemas 3
Instalando PostgreSQL para Ruby on Rails en OSX
PostgreSQL es un excelente motor de bases de datos pero para los que estamos acostumbrados a las bondades de OSX de que todo sea una simple aplicación que se descarga y estamos listos puede ser frustrante.
Este error lo obtenemos cuando tenemos declarada la gema pg en el gemfile (aunque sea exclusivamente para el entorno de producción) y nosotros no la tenemos dentro de nuestro computador. Si no queremos ocupar la gema pg lo que podemos hacer es decirle a bundle que no la instale localmente, esto se puede lograr con:
bundle install --without production
Pero, ¿Qué pasa si realmente queremos instalar la gema para poder homologar el entorno de desarrollo con el entorno de producción, o, queremos descargar la base de datos de heroku (que está en Postgres) y ocuparla dentro de nuestro computador?
Instalando PostgresSQL
Paso 1: Descargar e instalar postgresAPP
Paso 2:
Agregar al path la carpeta de binarios Este paso es ligeramente más complejo, hay que abrir con sublime, vim, nano o el editor que quieras el archivo .bash_profile que se encuentra oculto en la carpeta de usuarios (todo los archivos que empiezan con un punto están ocultos en OSX y en Linux), ahí dentro tienes que agregar al final:
PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
Y con eso estaríamos listos, ahora tienes que abrir una nueva terminal (cada vez que modificas el path tienes que abrir una terminal nueva para que cargue, vas a la carpeta de tu proyecto rails y bundle install.
Te gustaría descargar la base de datos de Heroku para ocuparla localmente?, aquí los pasos para descargarla y usarla.
Pequeño Scrapper de Wikipedia
Un scrapper es un pequeño programa (normalmente llamado script) que cumple la función de extraer datos de una página web leyendo su contenido.
En el caso de ruby es muy fácil hacer un scrapper de una página web utilizando la gema mechanize, por ejemplo digamos si quisiéramos extraer el contenido de la wikipedia de la página 2014 (lo más importante del año hasta ahora) podríamos hacer lo siguiente:
Paso 1) instalar la gema Mechanize desde el terminal
$gem install mechanize
Paso 2) crear el script “wiki-parser.rb”
require "open-uri"
require "mechanize"
def main()
agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
agent.get("http://es.wikipedia.org/wiki/2014") do |page|
puts page.parser.css('#content').text
end
end
main()
¿ Cómo funciona?
Primero crea una agente, este agente será el que se conecte con la página y la descargue, en la siguiente línea se especifica un user_agent así el servidor que te entrega la página crees que te estas conectando desde Safari, aunque bien podrías decir que el llamado viene de firefox, chrome, o incluso Internet Explorer.
Finalmente el agente se conecta con la página de la wikipedia y muestra el contenido que esté debajo dentro del area de contenido, o sea que este script no muestra la información que está en las barras de navegación, para saber donde tienes que apuntar puedes dentro de una página web puedes entrar a ella y ocupar el inspector de elementos.
Actualización de vistas parciales de Rails en tiempo real
Puedes ver el listado de pasos a seguir para implementar vistas parciales sincronizadas de forma automática en la página oficial.