Ruby es uno de los idiomas más populares utilizados en la web. Comenzamos una nueva sesión aquí en Nettuts + que te presentará a Ruby, así como a los excelentes marcos y herramientas que acompañan el desarrollo de Ruby. Hoy, veremos el increíble sistema de empaquetado que Ruby proporciona para distribuir programas y bibliotecas: Gems.
Es bastante simple, de verdad. Puedes pensar en una gema de Ruby como una biblioteca o complemento. Es una funcionalidad que instalará para satisfacer una necesidad específica. Si eso suena vago, aquí hay algunos problemas prácticos que las gemas resuelven:
Estas son solo algunas de las cosas que puedes hacer con las gemas..
En definitiva, hay una joya para eso..
Antes de que podamos instalar y usar gemas necesitamos instalar la biblioteca RubyGems. Por supuesto, necesitarás que Ruby esté instalado primero, pero ya deberías tenerlo..
Si estás en Ruby 1.9. * (Lo que estamos usando en esta serie), entonces no tienes que preocuparte por instalar RubyGems; está integrado. Si has decidido seguir con Ruby 1.8. *, no es demasiado difícil de instalar. Simplemente diríjase a la página de descarga de RubyGems, descargue el TAR o el ZIP, ábralo y ejecute ruby setup.rb
en el terminal de esa carpeta Es posible que necesite privilegios de administrador para hacer esto (sudo
en sistemas UNIX, inicie la línea de comandos con "Ejecutar como administrador" en Windows). Eso te pondrá en marcha.
Si crees que ya tienes RubyGems instalado, ejecuta gema -v
para obtener el número de versión. La última versión es 1.6.2. Si desea actualizar, ejecute actualización de gemas --sistema
. Una vez más, es posible que necesite privilegios de administrador. Debería mencionar que si está en Windows e instaló Ruby a través de RubyInstaller, tiene RubyGems instalado.
Entonces, ahora que tienes la biblioteca RubyGems instalada, puedes usarla para instalar las gemas que desees. ¿Cómo haces esto? Una vez más, es bastante simple. La parte difícil es encontrar la gema que te gustaría usar; a menudo, puedes buscar en Google cualquier funcionalidad que estés buscando. Una vez que encuentres la gema, instálala así:
gema instala GEM_NAME
Sin embargo, es importante prestar atención a la documentación de la gema. Puede haber algunos argumentos que debe agregar a ese comando; Sin embargo, en la mayoría de los casos, eso debería ayudarte a superar.
Una nota más sobre la instalación de gemas: es posible que note que la documentación de una gema le indica que use sudo
al instalarlo. Si está usando una Mac y está utilizando RVM (como debería ser :)), simplemente deje sudo
apagado. Al usarlo se instalará la gema para todos los usuarios en la computadora, y puede causar problemas con los múltiples entornos de Ruby que pueda tener con RVM.
A medida que avanzamos en esta serie, usaremos varias gemas de Ruby, para que veas cómo funcionarán en un proyecto "real". Si desea intentar instalar algunos ahora, pruebe la gema Markdown (maruku) o la gema Amazon S3 (aws-s3).
gema instalar maruku gema instalar aws-s3
Entonces, tienes tus gemas instaladas; ¿ahora que? Bueno, ¡úsalos, por supuesto! Hay dos formas en que puedes usar gemas. Algunos son programas ruby independientes que ejecutará (la mayoría de las veces desde la línea de comandos) para hacer algo. La gema Rails es un gran ejemplo de esto. Tu corres Rails nuevo PROJECT_NAME
desde la línea de comando para generar un nuevo proyecto de rieles; luego, lo usará en otros momentos para generar modelos, controladores, etc. Luego, hay gemas que solo usará desde sus propios proyectos, como la gema Amazon S3. No es muy bueno por sí solo, pero es bastante útil en conjunto con su código. Si desea utilizar una gema dentro de su código, primero deberá solicitarla. Esto se hace generalmente en la parte superior del archivo..
requiere 'rubygems' # solo es necesario en Ruby 1.8 requiere 'aws / s3' # la gema S3
No creo que hayamos discutido exigir
antes de; Ruby no carga todo por defecto, así que puedes usar exigir
para cargar bibliotecas extra que quieras usar. Veremos más de esto a medida que avancemos..
Finalmente, algunas gemas hacen ambas cosas. La gema de maruku convertirá Markdown a HTML. Lo uso desde la línea de comandos todo el tiempo:
maruku doc.markdown
Se convertirá el documento Markdown a HTML. Sin embargo, también puedes usarlo desde tu código:
require 'maruku' str = "#Este es un título \ n \ n * some \ n * list \ n * items" md = Maruku.new (str) md.to_html_document
Una vez que construya un proyecto, es posible que desee compartirlo o usarlo en otra computadora. Sin embargo, cualquier persona que lo ejecute deberá tener todas las gemas correctas instaladas. Ahora, puede facilitar el proceso de instalación con un proyecto llamado Bundler. Hay mucho que puede hacer Bundler, pero simplemente rasparemos la superficie ahora mismo.
En primer lugar, Bundler es una gema en sí misma; puedes instalarlo ejecutando paquete de instalación de gemas
.
Luego, en la raíz de su proyecto, cree un archivo llamado Gemfile
. Esto declarará qué gemas necesitas para este proyecto..
La primera (s) línea (s) de tu Gemfile le dirá a Bundler dónde conseguir tus gemas. Las gemas viven en repositorios en línea, por lo que deberá saber dónde obtenerlas. La mayoría de las veces, solo usar rubygems.org como fuente será suficiente, pero puede tener varias fuentes si lo desea..
fuente "http; // rubygems.org"
Entonces, simplemente enumera tus gemas así:
gema "rieles", "3.0.1" gema "maruku" gema "aws-s3",: require => "aws / s3"
Tenga en cuenta que podemos decir qué versión de una gema necesitamos si necesitamos una versión específica. Además, note el hash (hemos dejado de lado los paréntesis porque podemos en este caso) en la tercera gema. Esto le dice a Bundler cómo necesitamos exigir
la gema Esto solo es necesario si dos cosas son ciertas: 1) se requiere una gema con un nombre diferente al nombre con el que se instaló, y 2) estamos usando Bundler para requerir las gemas.
Si tienes muchas gemas, puedes usar Bundler para requerirlas todas en tu código. Solo haz esto:
requiere 'bundler / setup' Bundler.require (: predeterminado)
Esto cargará todas esas gemas. Por supuesto, esto es mucho más útil cuando está utilizando algunas de las configuraciones avanzadas de Bundler.
La última vez, les pregunté a los lectores / observadores qué quieren ver a continuación. Usted claramente dijo 'cosas web'? En la próxima lección, pasaremos a utilizar el sencillo framework Sinatra para crear un sitio web. Hasta entonces!