Usando Sinatra en Ruby

click fraud protection

En el artículo anterior en este serie de artículos, hablamos de lo que es Sinatra. En este artículo, veremos algunos códigos funcionales reales de Sinatra, tocando algunas características de Sinatra, todas las cuales serán exploradas en profundidad en los próximos artículos de esta serie.

Antes de comenzar, deberá continuar e instalar Sinatra. Instalar Sinatra es tan fácil como cualquier otra gema. Sinatra tiene algunas dependencias, pero nada importante y no debería tener problemas para instalarlo en cualquier plataforma.

$ gem instalar sinatra

¡Hola Mundo!

La aplicación Sinatra "Hola mundo" es sorprendentemente simple. Sin incluir las líneas requeridas, shebang y espacios en blanco, son solo tres líneas. Esto no es solo una pequeña parte de su aplicación, como un controlador en una aplicación Rails, esto es todo. Otra cosa que puede notar es que no necesitaba ejecutar nada como el generador Rails para generar una aplicación. Simplemente pegue el siguiente código en un nuevo archivo Ruby y listo.

instagram viewer
#! / usr / bin / env ruby
requieren 'rubygems'
requieren 'sinatra'
conseguir hacer
'¡Hola Mundo!'
final

Por supuesto, este no es un programa muy útil, es solo "Hola mundo", pero las aplicaciones aún más útiles en Sinatra no son mucho más grandes. Entonces, ¿cómo ejecutas esta pequeña aplicación web? Algún tipo de complejo script / servidor ¿mando? No, solo ejecuta el archivo. ¡Es solo un programa Ruby, ejecútalo!

inatra $ ./hello.rb
== Sinatra / 0.9.4 ha tomado el escenario en 4567 para el desarrollo con respaldo de Mongrel

No es muy emocionante todavía. Ha iniciado el servidor y está vinculado al puerto 4567, así que adelante y apunte su navegador web a http://localhost: 4567/. Ahí está tu mensaje de "Hola mundo". Las aplicaciones web nunca antes habían sido tan fáciles en Ruby.

Usando Parámetros

Así que veamos algo un poco más interesante. Hagamos una aplicación que lo saluda por su nombre. Para hacer esto, necesitaremos usar un parámetro. Los parámetros en Sinatra son como todo lo demás: simple y directo.

#! / usr / bin / env ruby
requieren 'rubygems'
requieren 'sinatra'
get '/ hello /: name' do
"Hola # {params [: name]}!"
final

Una vez que haya realizado este cambio, deberá reiniciar la aplicación Sinatra. Mátalo con Ctrl-C y ejecútalo de nuevo. (Hay una forma de evitar esto, pero lo veremos en un artículo futuro). Ahora, los parámetros son sencillos. Hemos hecho una acción llamada /hello/:name. Esta sintaxis está imitando el aspecto de las URL, así que vaya a http://localhost: 4567 / hola / tu nombre para verlo en acción.

los /hello porción coincide con esa porción de la URL de la solicitud que realizó, y :nombre absorberá cualquier otro texto que le des y lo pondrá en el params hash bajo la llave :nombre. Los parámetros son así de fáciles. Por supuesto, hay mucho más que puede hacer con estos, incluidos los parámetros basados ​​en expresiones regulares, pero esto es todo lo que necesitará en casi todos los casos.

Agregar HTML

Finalmente, ampliemos esta aplicación con un poco de HTML. Sinatra devolverá lo que obtenga de su controlador de URL al navegador web. Hasta ahora, acabamos de devolver una cadena de texto, pero podemos agregar algo de HTML allí sin ningún problema. Aquí usaremos ERB, tal como se usa en Rails. Hay otras opciones (posiblemente mejores), pero esta es quizás la más familiar, ya que viene con Ruby, y funcionará bien aquí.

Primero, Sinatra mostrará una vista llamada diseño si existe Esta vista de diseño debe tener un rendimiento declaración. Esta declaración de rendimiento capturará el resultado de la vista específica que se representa. Esto le permite crear diseños de manera muy simple. Finalmente tenemos un Hola view, que genera el mensaje de saludo real. Esta es la vista que se procesó usando el erb: hola llamada al método Notarás que no hay archivos de vista separados. Puede haber, pero para una aplicación tan pequeña, es mejor mantener todo el código en un solo archivo. Aunque las vistas están separadas al final del archivo.

#! / usr / bin / env ruby
requieren 'rubygems'
requieren 'sinatra'
get '/ hello /: name' do
@name = params [: nombre]
erb: hola
final
__FINAL__
@@ diseño





@@ Hola

Hola !

Y ahí lo tienes. Tenemos una aplicación hello world completa y funcional en aproximadamente 15 líneas de código, incluidas las vistas. En los siguientes artículos, veremos más de cerca las rutas, cómo puede almacenar y recuperar datos, y cómo hacer mejores vistas con HAML.

instagram story viewer