From dbb4301660bc78cdeb7691f81eeec1b13e4aeb9b Mon Sep 17 00:00:00 2001 From: Gabriel Andretta Date: Tue, 29 Mar 2011 14:07:14 -0300 Subject: [PATCH] document Sinatra.new in spanish readme Signed-off-by: Konstantin Haase --- README.es.rdoc | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/README.es.rdoc b/README.es.rdoc index 634a6005..9295a70b 100644 --- a/README.es.rdoc +++ b/README.es.rdoc @@ -1665,6 +1665,48 @@ aplicación basada en Rack (Rails/Ramaze/Camping/...): get('/') { "Hola #{session['nombre_de_usuario']}." } end +=== Creación Dinámica de Aplicaciones + +Puede que en algunas ocasiones quieras crear nuevas aplicaciones en +tiempo de ejecución sin tener que asignarlas a una constante. Para +esto tenés `Sinatra.new`: + + require 'sinatra/base' + mi_app = Sinatra.new { get('/') { "hola" } } + mi_app.run! + +Acepta como argumento opcional una aplicación desde la que se +heredará: + + require 'sinatra/base' + + controller = Sinatra.new do + enable :logging + helpers MisHelpers + end + + map('/a') do + run Sinatra.new(controller) { get('/') { 'a' } } + end + + map('/b') do + run Sinatra.new(controller) { get('/') { 'b' } } + end + +Construir aplicaciones de esta forma resulta especialmente útil para +testear extensiones Sinatra o para usar Sinatra en tus librerías. + +Por otro lado, hace extremadamente sencillo usar Sinatra como +middleware: + + require 'sinatra/base' + + use Sinatra do + get('/') { ... } + end + + run ProyectoRails::Application + == Ámbitos y Ligaduras El ámbito en el que te encontrás determina que métodos y variables están