Ruby - El mejor amigo de un desarrollador, 1995
Index
Básico
- Ruby
- Intro
- Interprete
- Rubie
- Gema
- Script
- Administradores
- Administrador de Rubies rbenv
- Comandos ruby
- Parámetros Vs. Argumentos
- Interactive Ruby Shell - irb
- Variables
- Métodos
- Expresiones
- if, else, elsif, unless
- Ciclos: while, until, bloques
- Interpolación
- Clases
- Módulos
- Bloques
- Constantes y símbolos
- Ruby on rails
- Pruebas
Ruby
Intro
Creador Yukihiro Matsumoto, liberado en 1995
La belleza de Ruby se encuentra en su equilibrio entre sencillez y potencia.
Es usado para crear sistemas web, escritorio, móvil, administración de servidores.
- Obtén la versión correcta para Ruby: www.ruby-lang.org
- Instala Ruby.
- Verifica desde la consola que se instaló correctamente con el comando:
ruby --version - Lee la documentación: Documentación
- Orientado a objetos
- Variables de tipo de clase dinámico
- Código abierto
- Enfocado en la simplicidad y productividad
- Elegante sintaxis que se siente natural al leerla y fácil al escribirla.
- Definición de métodos en tiempo de ejecución para dar paso a la metaprogramación
- Bloques/closures
- Todo es una expresión por lo tanto devuelve un valor
Interprete
MRI Matz Ruby Interpreter o CRuby (ya que está escrito en C) herramienta que interpreta y ejecuta código Ruby.
Ruby, como lenguaje, tiene algunas implementaciones diferentes: Cardinal, MagLev, IronRuby, mruby, TruffleRuby, Rubinius, JRuby, etc.
Rubie
Versión de Ruby + Plataforma en la que se implementó
Gema
Biblioteca de código escrita en Ruby y empaquetada como
gem
Son piezas de código pequeñas que permiten la portabilidad de funcionalidades a través de cualquier otro sistema de Ruby que este construyendo.
Existen Gemas de terceros como es el caso de https://rubygems.org/
Estas pueden ser obtenidas con el comando
gem
Una de las Gemas más conocidas es:
gem install rails
Puede que requiera de elevación de permisos para su instalación.
Para actualizar el comando gem utilice:
gem update --system
Para listar la lista de gemas:
gem list
https://guides.rubygems.org/
Script
Archivo de texto plano en Ruby que no necesariamente tiene una clase definida.
Administradores de rubies
RVM es una herramienta de línea de comandos que le permite instalar, administrar y trabajar fácilmente con múltiples entornos ruby, desde intérpretes hasta conjuntos de gemas.
Para instalar RVM accede a su página para encontrar el modo de instalación actual.
Por ejemplo para cuando se escribió lo que estas leyendo (05122020) se tenía que hacer con el comando:
gpg2,
al no tenerlo instalado entonces ejecute el siguiente comando para su instalación en Ubuntu:
sudo apt install gnupg2
Listo ya se ejecuto el comando completo como se indica en el sitio.
Ahora intentamos el comando con curl (biblioteca y un intérprete de comandos orientado a la transferencia de archivos):
\curl -sSL https://get.rvm.io | bash -s stable
Terminando la descarga del script se instala e indica que para poder ejecutar
rvm se requiere:
To start using RVM you need to run
source /home//.rvm/scripts/rvm
Para comprobar que esta instalado:
rvm --version
rvm 1.29.10 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
Ahora se tiene que instalar un Rubi, en la Documentación y apartado Rubies, tenemos la sección de Installing (http://rvm.io/rubies/installing):
Para conocer cuales están disponibles se ejecuta el comando:
rvm list known
Instalación rápida:
rvm install 2.1.1
Ooops!, me marco error la instalación, pero me indica que ejecute mejor:
sudo apt install ruby
Comprobrar instalación:
ruby --version (instala la última versión disponible)
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
Nota: puede ser que se requiera instalar Homebrew (Homebrew es un sistema de gestión de paquetes que simplifica la instalación, actualización y eliminación de programas en los sistemas operativos Mac OS de Apple y GNU/Linux. ) para dependencias.
Se puede ejecutar el siguiente comando para saber si tenemos instalados ya rubies:
rvm list
Es posible instalar diferentes motores o interpretes para Ruby.
Para especificar con que motor queremos trabajar se ejecuta el comando:
rvm use <engine>
Por ejemplo:
rvm use jruby
Para verificar que tenemos en uso volvemos a ejecutar el comando de versión:
ruby -v
Para especificar una versión por defecto se usa el comando:
rvm --default use <engine>
Administrador de Rubies rbenv
https://github.com/rbenv/rbenv
How It Works
At a high level, rbenv intercepts Ruby commands using shim executables injected into your PATH, determines which Ruby version has been specified by your application, and passes your commands along to the correct Ruby installation.
Understanding PATH
When you run a command like ruby or rake, your operating system searches through a list of directories to find an executable file with that name. This list of directories lives in an environment variable called PATH, with each directory in the list separated by a colon:
/usr/local/bin:/usr/bin:/bin
Directories in PATH are searched from left to right, so a matching executable in a directory at the beginning of the list takes precedence over another one at the end. In this example, the /usr/local/bin directory will be searched first, then /usr/bin, then /bin.
Understanding Shims
rbenv works by inserting a directory of shims at the front of your PATH:
~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin
Through a process called rehashing, rbenv maintains shims in that directory to match every Ruby command across every installed version of Ruby—irb, gem, rake, rails, ruby, and so on.
Instalación
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc (ubuntu)
~/.rbenv/bin/rbenv init
sudo apt install rbenv
Comandos ruby
Para conocer el manual de ruby:
man ruby
ruby [switches]:
ruby --help
Para enviar un mensaje a la consola:
ruby -e 'puts "Hola mundo"'
La extensión de los archivos en ruby son
.rb así que crearemos el clásico Hola mundo,
para ello cree un nuevo archivo, escriba su código, almacene con la extensión .rb
En este caso la palabra reservada
puts envía como salida a la consola lo que esta encerrado entre
comillas dobles o simples.
Para ejecutar el programa escrito en ruby, use el comando
ruby, un espacio seguido del nombre del
archivo con extensión .rb
La palabra reservada ARGV contiene una lista de argumentos con los que es posible ejecutar un programa:
Ejecute de nuevo con
ruby y el nombre del programa con extensión *.rb
seguido de los argumentos separados por un espacio:
Como parte del resultado estamos indicando mostrar los argumentos con los que fue invocado el programa.
Parámetros Vs. Argumentos
Un parámetro es una variable en la definición de un método.
Cuando se llama a un método, los argumentos son los datos que pasa a los parámetros del método.
Un argumento se refiere a los valores que se pasan dentro de una función cuando se invoca a la función. Estos valores son generalmente la fuente de la función que requiere los argumentos durante el proceso de ejecución. Estos valores se asignan a las variables en la definición de la función que se invoca. El tipo de los valores pasados en la función es el mismo que el de las variables definidas en la definición de la función. También se denominan argumentos reales o parámetros reales.
El parámetro se conoce como las variables que se definen durante la declaración o definición de una función. Estas variables se utilizan para recibir los argumentos que se pasan durante la invocación a una función. Estos parámetros dentro del prototipo de función se utilizan durante la ejecución de la función para la que está definida. También se denominan argumentos formales o parámetros formales.
El parámetro es una variable definida en la definición de la función, mientras que el argumento es el valor real pasado a la función.
El parámetro es un tipo especial de variable declarado en la firma de la función. Es un marcador de posición que se utiliza para acceder a los datos de entrada de la función (argumento).
El argumento, por otro lado, es el valor real que se pasa a una función cuando se invoca a la función.
En programación de computadoras, un parámetro o un argumento formal, es un tipo especial de variable, usado en una subrutina para referirse a uno de los datos proporcionados como entrada a la subrutina. Estos datos son los valores de los argumentos (a menudo llamados argumentos reales o parámetros reales) con los que se llamará / invocará la subrutina. Una lista ordenada de parámetros generalmente se incluye en la definición de una subrutina, de modo que, cada vez que se llama a la subrutina, se evalúan sus argumentos para esa llamada y los valores resultantes se pueden asignar a los parámetros correspondientes.
A diferencia del argumento en el uso matemático habitual, el argumento en ciencias de la computación es, por lo tanto, la expresión de entrada real pasada / suministrada a una función, procedimiento o rutina en la declaración de invocación / llamada, mientras que el parámetro es la variable dentro de la implementación de la subrutina.
Interactive Ruby Shell - irb
El programa se lanza desde una línea de comandos y permite la ejecución de comandos Ruby con respuesta inmediata, experimentando en tiempo real. Cuenta con historial de comandos, capacidades de edición de línea y control de trabajos, y puede comunicarse directamente como un script de shell a través de Internet e interactuar con un servidor en vivo. Fue desarrollado por Keiju Ishitsuka.
Es una herramienta de Ruby, que permite interactuar con el sistema operativo a través del comando
irb
Al momento de ejecutar el comando, accede al entorno de
irb:
En este entorno existen más comandos como
self para saber a quién pertenece.
Es un entorno similar al de Julia y Python, donde se pueden definir variables y despues mostrar su valor, operaciones matemáticas, etc.
De manera similiar a otros ambientes para salir ingrese:
quit
erb
El comando
erb permite usar plantillas de documentos con Ruby,
al estilo de PHP o ASP.
Para que esto sea posible se utiliza una sintaxis familiar si es que tienes experiencia web:
<% sintaxisRuby %>
Por ejemplo podemos tener un documento HTML y definir una variable al estilo Ruby y después mostrar el valor de esta variable, para ello solo tendremos que agregar el signo igual:
<%= variable %>
