diff --git a/README.es.rdoc b/README.es.rdoc
index 554de397..bf5bcfdf 100644
--- a/README.es.rdoc
+++ b/README.es.rdoc
@@ -1,7 +1,7 @@
= Sinatra
-Sinatra es un DSL (Lenguaje Específico de Dominio) para crear
-aplicaciones web rápidamente en Ruby con un mínimo esfuerzo:
+Sinatra es un DSL para crear aplicaciones web rápidamente en Ruby con un mínimo
+esfuerzo:
# miapp.rb
require 'sinatra'
@@ -9,7 +9,7 @@ aplicaciones web rápidamente en Ruby con un mínimo esfuerzo:
'Hola mundo!'
end
-Instalá la gem (gema) y ejecutá la aplicación con:
+Instalá la gem y ejecutá la aplicación con:
gem install sinatra
ruby -rubygems miapp.rb
@@ -18,8 +18,8 @@ Podés verla en: http://localhost:4567
== Rutas
-En Sinatra, una ruta es un método HTTP apareado con un patrón de una URL.
-Cada ruta es asociada con un bloque:
+En Sinatra, una ruta está compuesta por un método HTTP y un patrón de una URL.
+Cada ruta se asocia con un bloque:
get '/' do
.. mostrar algo ..
@@ -45,7 +45,7 @@ través de el hash params:
get '/hola/:nombre' do
# coincide con "GET /hola/foo" y "GET /hola/bar"
- # params[:nombre] es 'foo' o 'bar' respectivamente
+ # params[:nombre] es 'foo' o 'bar'
"Hola #{params[:nombre]}!"
end
@@ -55,9 +55,8 @@ También podés acceder a los parámetros nombrados usando parámetros de bloque
"Hola #{n}!"
end
-Los patrones de ruta también pueden incluir parámetros splat o wildcard
-(plaf o comodín), accesibles a través del arreglo
-params[:splat].
+Los patrones de ruta también pueden incluir parámetros splat (o wildcard),
+accesibles a través del arreglo params[:splat].
get '/decir/*/al/*' do
# coincide con /decir/hola/al/mundo
@@ -69,7 +68,7 @@ Los patrones de ruta también pueden incluir parámetros splat o wildcard
params[:splat] # => ["path/al/archivo", "xml"]
end
-Búsqueda de rutas con Expresiones Regulares:
+Rutas con Expresiones Regulares:
get %r{/hola/([\w]+)} do
"Hola, #{params[:captures].first}!"
@@ -82,10 +81,10 @@ O con un parámetro de bloque:
end
Las rutas pueden incluir una variedad de condiciones de selección, como por
-ejemplo el user agent (agente de usuario):
+ejemplo el user agent:
get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
- "Estás usando la versión #{params[:agent][0]} de Songbird"
+ "Estás usando la versión de Songbird #{params[:agent][0]}"
end
get '/foo' do
@@ -106,16 +105,15 @@ ejemplo, el archivo ./public/css/style.css se accede a través de
== Vistas / Plantillas
-Se asume que las plantillas (templates) están ubicadas directamente
-bajo el directorio ./views. Para usar un directorio de vistas
-(views) diferente:
+Se asume que las plantillas están ubicadas directamente bajo el directorio
+./views. Para usar un directorio de vistas diferente:
set :views, File.dirname(__FILE__) + '/plantillas'
Es importante acordarse que siempre tenés que referenciar a las plantillas con
símbolos, incluso cuando se encuentran en un subdirectorio (en este caso tenés
que usar :'subdir/plantilla'). Los métodos de renderización van a
-renderizar directamente cualquier string que reciban como argumento.
+renderizar directamente cualquier string que se les pase como argumento.
=== Plantillas Haml
@@ -129,7 +127,6 @@ La gem/librería haml es necesaria para para renderizar plantillas HAML:
end
Renderiza ./views/index.haml.
-{Haml's options}[http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#options]
Las {opciones de Haml}[http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#options]
pueden ser ajustadas globalmente a través de las configuraciones de Sinatra,
@@ -231,15 +228,15 @@ Renderiza el template contenido en el string.
=== Accediendo a Variables en Plantillas
Las plantillas son evaluadas dentro del mismo contexto que los manejadores de
-ruta (route handlers). Las variables de instancia asignadas en los
-manejadores de ruta son accesibles directamente por las plantillas:
+ruta. Las variables de instancia asignadas en los manejadores de ruta son
+accesibles directamente por las plantillas:
get '/:id' do
@foo = Foo.find(params[:id])
haml '%h1= @foo.nombre'
end
-O es posible especificar un Hash explícito de variables locales:
+O es posible especificar un Hash de variables locales explícitamente:
get '/:id' do
foo = Foo.find(params[:id])
@@ -299,7 +296,7 @@ una plantilla es renderizada. Podés desactivar los layouts pasando
haml :index, :layout => !request.xhr?
end
-== Ayudantes (Helpers)
+== Ayudantes
Usá el método top-level helpers para definir métodos ayudantes que
pueden ser utilizados dentro de los manejadores de rutas y las plantillas:
@@ -314,9 +311,9 @@ pueden ser utilizados dentro de los manejadores de rutas y las plantillas:
bar(params[:nombre])
end
-== Filtros (Filters)
+== Filtros
-Los Before Filters son evaluados antes de cada petición dentro del contexto de
+Los filtros before son evaluados antes de cada petición dentro del contexto de
la petición y pueden modificar la petición y la respuesta. Las variables de
instancia asignadas en los filtros son accesibles por las rutas y las
plantillas:
@@ -331,10 +328,10 @@ plantillas:
params[:splat] #=> 'bar/baz'
end
-Los After Filter son evaluados después de cada petición dentro del contexto de
-la petición y también pueden modificar la petición y la respuesta. Las
-variables de instancia asignadas en before filters y rutas son accesibles por
-los after filters:
+Los filtros After son evaluados después de cada petición dentro del contexto de
+la petición y también pueden modificar la petición y la respuesta. Las
+variables de instancia asignadas en los filtros before y rutas son accesibles
+por los filtros after:
after do
puts response.status
@@ -352,7 +349,7 @@ patrón:
session[:ultimo_slug] = slug
end
-== Interrumpiendo (Halting)
+== Interrupción
Para detener inmediatamente una petición dentro de un filtro o una ruta usá:
@@ -374,7 +371,7 @@ Con encabezados ...
halt 402, { 'Content-Type' => 'text/plain' }, 'venganza'
-== Pasando
+== Paso
Una ruta puede pasarle el procesamiento a la siguiente ruta que coincida con
la petición usando pass:
@@ -415,7 +412,7 @@ Ejecutar cuando el entorno es :production o :test:
== Manejo de errores
Los manejadores de errores se ejecutan dentro del mismo contexto que las rutas
-y los before filters, lo que significa que podés usar, por ejemplo,
+y los filtros before, lo que significa que podés usar, por ejemplo,
haml, erb, halt, etc.
=== No encontrado (Not Found)
@@ -507,9 +504,9 @@ método top-level +use+:
end
Las semánticas de +use+ son idénticas a las definidas para el DSL
-Rack::Builder[http://rack.rubyforge.org/doc/classes/Rack/Builder.html]
-(más frecuentemente usadas desde archivos rackup). Por ejemplo, el método
-+use+ acepta argumentos múltiples/variables así como bloques:
+Rack::Builder[http://rack.rubyforge.org/doc/classes/Rack/Builder.html] (más
+frecuentemente usado desde archivos rackup). Por ejemplo, el método +use+
+acepta argumentos múltiples/variables así como bloques:
use Rack::Auth::Basic do |nombre_de_usuario, password|
nombre_de_usuario == 'admin' && password == 'secreto'
@@ -520,11 +517,11 @@ debugging, enrutamiento URL, autenticación, y manejo de sesiones. Sinatra
usa muchos de estos componentes automáticamente de acuerdo a su configuración
para que típicamente no tengas que usarlas (con +use+) explícitamente.
-== Testing
+== Pruebas
-Los test para las aplicaciones Sinatra pueden ser escritos utilizando
-cualquier framework o librería de testing basada en Rack. Se recomienda
-usar {Rack::Test}[http://gitrdoc.com/brynary/rack-test]:
+Las pruebas para las aplicaciones Sinatra pueden ser escritas utilizando
+cualquier framework o librería de pruebas basada en Rack. Se recomienda usar
+{Rack::Test}[http://gitrdoc.com/brynary/rack-test]:
require 'mi_app_sinatra'
require 'rack/test'
@@ -536,14 +533,14 @@ usar {Rack::Test}[http://gitrdoc.com/brynary/rack-test]:
Sinatra::Application
end
- def test_por_defecto
+ def test_mi_defecto
get '/'
assert_equal 'Hola Mundo!', last_response.body
end
def test_con_parametros
get '/saludar', :name => 'Franco'
- assert_equal 'Hola Franco!', last_response.body
+ assert_equal 'Hola Frank!', last_response.body
end
def test_con_entorno_rack
@@ -566,7 +563,6 @@ para micro-aplicaciones (por ejemplo, un único archivo de aplicación, los
directorios ./public y ./views, logging, página con detalles de excepción,
etc.). Ahí es donde Sinatra::Base entra en el juego:
-
require 'sinatra/base'
class MiApp < Sinatra::Base
@@ -656,8 +652,7 @@ Para actualizar el código fuente de Sinatra en el futuro:
adicional, noticias, y enlaces a otros recursos.
* {Contribuyendo}[http://www.sinatrarb.com/contributing] - ¿Encontraste un
error?. ¿Necesitás ayuda?. ¿Tenés un parche?.
-* {Lighthouse}[http://sinatra.lighthouseapp.com] - Seguimiento de problemas y
- planeamiento de lanzamientos.
+* {Issue tracker}[http://sinatra.lighthouseapp.com]
* {Twitter}[http://twitter.com/sinatra]
* {Lista de Correo}[http://groups.google.com/group/sinatrarb/topics]
* {IRC: #sinatra}[irc://chat.freenode.net/#sinatra] en http://freenode.net