sinatra 1.4.5 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sinatra might be problematic. Click here for more details.

Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHORS.md +77 -0
  3. data/CHANGES +30 -0
  4. data/Gemfile +5 -5
  5. data/README.de.md +186 -56
  6. data/README.es.md +76 -76
  7. data/README.fr.md +120 -56
  8. data/README.hu.md +19 -19
  9. data/README.ja.md +44 -46
  10. data/README.ko.md +163 -67
  11. data/README.md +151 -127
  12. data/README.pt-br.md +905 -144
  13. data/README.pt-pt.md +17 -17
  14. data/README.ru.md +88 -52
  15. data/README.zh.md +76 -68
  16. data/lib/sinatra.rb +0 -1
  17. data/lib/sinatra/base.rb +21 -15
  18. data/lib/sinatra/show_exceptions.rb +10 -4
  19. data/lib/sinatra/version.rb +1 -1
  20. data/sinatra.gemspec +1 -1
  21. data/test/asciidoctor_test.rb +2 -2
  22. data/test/base_test.rb +1 -5
  23. data/test/builder_test.rb +2 -2
  24. data/test/coffee_test.rb +8 -2
  25. data/test/compile_test.rb +1 -1
  26. data/test/contest.rb +3 -12
  27. data/test/creole_test.rb +2 -2
  28. data/test/delegator_test.rb +1 -1
  29. data/test/encoding_test.rb +1 -1
  30. data/test/erb_test.rb +1 -1
  31. data/test/extensions_test.rb +1 -1
  32. data/test/filter_test.rb +2 -2
  33. data/test/haml_test.rb +2 -2
  34. data/test/helper.rb +8 -7
  35. data/test/helpers_test.rb +6 -6
  36. data/test/integration_test.rb +3 -3
  37. data/test/less_test.rb +2 -2
  38. data/test/liquid_test.rb +3 -3
  39. data/test/mapped_error_test.rb +5 -5
  40. data/test/markaby_test.rb +2 -2
  41. data/test/markdown_test.rb +6 -3
  42. data/test/mediawiki_test.rb +2 -2
  43. data/test/middleware_test.rb +1 -1
  44. data/test/nokogiri_test.rb +2 -2
  45. data/test/rabl_test.rb +2 -2
  46. data/test/rack_test.rb +1 -1
  47. data/test/radius_test.rb +2 -2
  48. data/test/rdoc_test.rb +4 -4
  49. data/test/readme_test.rb +1 -1
  50. data/test/request_test.rb +4 -1
  51. data/test/response_test.rb +1 -1
  52. data/test/result_test.rb +2 -2
  53. data/test/route_added_hook_test.rb +1 -1
  54. data/test/routing_test.rb +7 -7
  55. data/test/sass_test.rb +3 -3
  56. data/test/scss_test.rb +2 -2
  57. data/test/server_test.rb +10 -2
  58. data/test/settings_test.rb +4 -4
  59. data/test/sinatra_test.rb +1 -1
  60. data/test/slim_test.rb +2 -2
  61. data/test/static_test.rb +2 -2
  62. data/test/streaming_test.rb +2 -2
  63. data/test/stylus_test.rb +2 -2
  64. data/test/templates_test.rb +3 -3
  65. data/test/textile_test.rb +2 -2
  66. data/test/wlang_test.rb +1 -1
  67. data/test/yajl_test.rb +2 -2
  68. metadata +10 -11
  69. data/AUTHORS +0 -61
@@ -75,8 +75,8 @@ través del hash `params`:
75
75
  ``` ruby
76
76
  get '/hola/:nombre' do
77
77
  # coincide con "GET /hola/foo" y "GET /hola/bar"
78
- # params[:nombre] es 'foo' o 'bar'
79
- "Hola #{params[:nombre]}!"
78
+ # params['nombre'] es 'foo' o 'bar'
79
+ "Hola #{params['nombre']}!"
80
80
  end
81
81
  ```
82
82
 
@@ -85,24 +85,24 @@ También puede acceder a los parámetros nombrados usando parámetros de bloque:
85
85
  ``` ruby
86
86
  get '/hola/:nombre' do |n|
87
87
  # coincide con "GET /hola/foo" y "GET /hola/bar"
88
- # params[:nombre] es 'foo' o 'bar'
89
- # n almacena params[:nombre]
88
+ # params['nombre'] es 'foo' o 'bar'
89
+ # n almacena params['nombre']
90
90
  "Hola #{n}!"
91
91
  end
92
92
  ```
93
93
 
94
94
  Los patrones de ruta también pueden incluir parámetros splat (o wildcard),
95
- accesibles a través del arreglo `params[:splat]`:
95
+ accesibles a través del arreglo `params['splat']`:
96
96
 
97
97
  ``` ruby
98
98
  get '/decir/*/al/*' do
99
99
  # coincide con /decir/hola/al/mundo
100
- params[:splat] # => ["hola", "mundo"]
100
+ params['splat'] # => ["hola", "mundo"]
101
101
  end
102
102
 
103
103
  get '/descargar/*.*' do
104
104
  # coincide con /descargar/path/al/archivo.xml
105
- params[:splat] # => ["path/al/archivo", "xml"]
105
+ params['splat'] # => ["path/al/archivo", "xml"]
106
106
  end
107
107
  ```
108
108
 
@@ -117,8 +117,8 @@ end
117
117
  Rutas con Expresiones Regulares:
118
118
 
119
119
  ``` ruby
120
- get %r{/hola/([\w]+)} do
121
- "Hola, #{params[:captures].first}!"
120
+ get /\A\/hola\/([\w]+)\z/ do
121
+ "Hola, #{params['captures'].first}!"
122
122
  end
123
123
  ```
124
124
 
@@ -150,11 +150,11 @@ ejemplo el user agent:
150
150
 
151
151
  ``` ruby
152
152
  get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
153
- "Estás usando la versión de Songbird #{params[:agent][0]}"
153
+ "Estás usando la versión de Songbird #{params['agent'][0]}"
154
154
  end
155
155
 
156
156
  get '/foo' do
157
- # Coincide con browsers que no sean songbird
157
+ # Coincide con navegadores que no sean songbird
158
158
  end
159
159
  ```
160
160
 
@@ -336,8 +336,8 @@ get '/' do
336
336
  end
337
337
  ```
338
338
 
339
- Renderiza `views/index.erb` embebido en `views/post.erb` (por
340
- defecto, la plantilla `:index` es embebida en `views/layout.erb` siempre y
339
+ Renderiza `views/index.erb` incrustado en `views/post.erb` (por
340
+ defecto, la plantilla `:index` es incrustada en `views/layout.erb` siempre y
341
341
  cuando este último archivo exista).
342
342
 
343
343
  Cualquier opción que Sinatra no entienda le será pasada al motor de renderizado
@@ -483,7 +483,7 @@ get('/') { markdown :index }
483
483
  <tr>
484
484
  <td>Dependencias</td>
485
485
  <td>
486
- <a href="http://builder.rubyforge.org/" title="builder">builder</a>
486
+ <a href="https://github.com/jimweirich/builder" title="builder">builder</a>
487
487
  </td>
488
488
  </tr>
489
489
  <tr>
@@ -496,7 +496,7 @@ get('/') { markdown :index }
496
496
  </tr>
497
497
  </table>
498
498
 
499
- Además, acepta un bloque con la definición de la plantilla (ver el ejemplo).
499
+ Además, acepta un bloque con la definición de la plantilla (ver ejemplo).
500
500
 
501
501
  ### Plantillas Nokogiri
502
502
 
@@ -515,7 +515,7 @@ Además, acepta un bloque con la definición de la plantilla (ver el ejemplo).
515
515
  </tr>
516
516
  </table>
517
517
 
518
- Además, acepta un bloque con la definición de la plantilla (ver el ejemplo).
518
+ Además, acepta un bloque con la definición de la plantilla (ver ejemplo).
519
519
 
520
520
  ### Plantillas Sass
521
521
 
@@ -597,8 +597,8 @@ plantilla Liquid, casi siempre va a querer pasarle locales.
597
597
  <a href="https://github.com/rtomayko/rdiscount" title="RDiscount">RDiscount</a>,
598
598
  <a href="https://github.com/vmg/redcarpet" title="RedCarpet">RedCarpet</a>,
599
599
  <a href="http://deveiate.org/projects/BlueCloth" title="BlueCloth">BlueCloth</a>,
600
- <a href="http://kramdown.rubyforge.org/" title="kramdown">kramdown</a> o
601
- <a href="http://maruku.rubyforge.org/" title="maruku">maruku</a>
600
+ <a href="http://kramdown.gettalong.org/" title="kramdown">kramdown</a> o
601
+ <a href="https://github.com/bhollis/maruku" title="maruku">maruku</a>
602
602
  </td>
603
603
  </tr>
604
604
  <tr>
@@ -671,7 +671,7 @@ layout distinto al de la plantilla pasando la opción `:layout_engine`.
671
671
  <table>
672
672
  <tr>
673
673
  <td>Dependencias</td>
674
- <td><a href="http://rdoc.rubyforge.org/" title="RDoc">RDoc</a></td>
674
+ <td><a href="http://rdoc.sourceforge.net/" title="RDoc">RDoc</a></td>
675
675
  </tr>
676
676
  <tr>
677
677
  <td>Extensiones de Archivo</td>
@@ -707,7 +707,7 @@ al de la plantilla pasando la opción `:layout_engine`.
707
707
  <table>
708
708
  <tr>
709
709
  <td>Dependencias</td>
710
- <td><a href="http://radius.rubyforge.org/" title="Radius">Radius</a></td>
710
+ <td><a href="https://github.com/jlong/radius" title="Radius">Radius</a></td>
711
711
  </tr>
712
712
  <tr>
713
713
  <td>Extensiones de Archivo</td>
@@ -719,7 +719,7 @@ al de la plantilla pasando la opción `:layout_engine`.
719
719
  </tr>
720
720
  </table>
721
721
 
722
- Desde que no se puede utilisar métodos de Ruby (excepto por `yield`) de una
722
+ Desde que no se puede utilizar métodos de Ruby (excepto por `yield`) de una
723
723
  plantilla Radius, casi siempre se necesita pasar locales.
724
724
 
725
725
  ### Plantillas Markaby
@@ -739,7 +739,7 @@ plantilla Radius, casi siempre se necesita pasar locales.
739
739
  </tr>
740
740
  </table>
741
741
 
742
- Además, acepta un bloque con la definición de la plantilla (ver el ejemplo).
742
+ Además, acepta un bloque con la definición de la plantilla (ver ejemplo).
743
743
 
744
744
  ### Plantillas RABL
745
745
 
@@ -808,7 +808,7 @@ plantillas:
808
808
  ```
809
809
 
810
810
  Como no podés utilizar Ruby desde Creole, no podés usar layouts escritos en
811
- Creloe. De todos modos, es posible usar un motor de renderizado para el layout
811
+ Creole. De todos modos, es posible usar un motor de renderizado para el layout
812
812
  distinto al de la plantilla pasando la opción `:layout_engine`.
813
813
 
814
814
  ### Plantillas CoffeeScript
@@ -883,7 +883,7 @@ distinto al de la plantilla pasando la opción `:layout_engine`.
883
883
  </tr>
884
884
  </table>
885
885
 
886
- El contenido de La plantilla se evalúa como código Ruby, y la variable `json` es convertida a JSON mediante `#to_json`.
886
+ El contenido de la plantilla se evalúa como código Ruby, y la variable `json` es convertida a JSON mediante `#to_json`.
887
887
 
888
888
  ``` ruby
889
889
  json = { :foo => 'bar' }
@@ -934,7 +934,7 @@ accesibles directamente por las plantillas:
934
934
 
935
935
  ``` ruby
936
936
  get '/:id' do
937
- @foo = Foo.find(params[:id])
937
+ @foo = Foo.find(params['id'])
938
938
  haml '%h1= @foo.nombre'
939
939
  end
940
940
  ```
@@ -943,7 +943,7 @@ O es posible especificar un Hash de variables locales explícitamente:
943
943
 
944
944
  ``` ruby
945
945
  get '/:id' do
946
- foo = Foo.find(params[:id])
946
+ foo = Foo.find(params['id'])
947
947
  haml '%h1= bar.nombre', :locals => { :bar => foo }
948
948
  end
949
949
  ```
@@ -974,7 +974,7 @@ __END__
974
974
  ```
975
975
 
976
976
  NOTA: únicamente las plantillas inline definidas en el archivo fuente que
977
- requiere sinatra son cargadas automáticamente. Llamá `enable
977
+ requiere Sinatra son cargadas automáticamente. Llamá `enable
978
978
  :inline_templates` explícitamente si tenés plantillas inline en otros
979
979
  archivos fuente.
980
980
 
@@ -1052,7 +1052,7 @@ end
1052
1052
 
1053
1053
  get '/foo/*' do
1054
1054
  @nota #=> 'Hey!'
1055
- params[:splat] #=> 'bar/baz'
1055
+ params['splat'] #=> 'bar/baz'
1056
1056
  end
1057
1057
  ```
1058
1058
 
@@ -1110,7 +1110,7 @@ helpers do
1110
1110
  end
1111
1111
 
1112
1112
  get '/:nombre' do
1113
- bar(params[:nombre])
1113
+ bar(params['nombre'])
1114
1114
  end
1115
1115
  ```
1116
1116
 
@@ -1145,7 +1145,7 @@ get '/' do
1145
1145
  end
1146
1146
 
1147
1147
  get '/:valor' do
1148
- session[:valor] = params[:valor]
1148
+ session[:valor] = params['valor']
1149
1149
  end
1150
1150
  ```
1151
1151
 
@@ -1163,7 +1163,7 @@ get '/' do
1163
1163
  end
1164
1164
 
1165
1165
  get '/:valor' do
1166
- session[:valor] = params[:valor]
1166
+ session[:valor] = params['valor']
1167
1167
  end
1168
1168
  ```
1169
1169
 
@@ -1230,7 +1230,7 @@ la petición usando `pass`:
1230
1230
 
1231
1231
  ``` ruby
1232
1232
  get '/adivina/:quien' do
1233
- pass unless params[:quien] == 'Franco'
1233
+ pass unless params['quien'] == 'Franco'
1234
1234
  'Adivinaste!'
1235
1235
  end
1236
1236
 
@@ -1263,7 +1263,7 @@ helper, y llamarlo desde `/foo` y `/bar`. Así, vas a simplificar
1263
1263
  las pruebas y a mejorar el rendimiento.
1264
1264
 
1265
1265
  Si querés que la petición se envíe a la misma instancia de la aplicación en
1266
- lugar de a otra, usá `call!` en lugar de `call`.
1266
+ lugar de otra, usá `call!` en lugar de `call`.
1267
1267
 
1268
1268
  En la especificación de Rack podés encontrar más información sobre
1269
1269
  `call`.
@@ -1309,7 +1309,7 @@ para obtener sus valores cuando no se les pasa argumentos.
1309
1309
  A veces vas a querer empezar a enviar la respuesta a pesar de que todavía no
1310
1310
  terminaste de generar su cuerpo. También es posible que, en algunos casos,
1311
1311
  quieras seguir enviando información hasta que el cliente cierre la conexión.
1312
- Cuando esto ocurra, el `stream` helper te va a ser de gran ayuda:
1312
+ Cuando esto ocurra, el helper `stream` te va a ser de gran ayuda:
1313
1313
 
1314
1314
  ``` ruby
1315
1315
  get '/' do
@@ -1331,7 +1331,7 @@ depende de un recurso lento.
1331
1331
 
1332
1332
  Hay que tener en cuenta que el comportamiento del streaming, especialmente el
1333
1333
  número de peticiones concurrentes, depende del servidor web utilizado para
1334
- servir la aplicación. Puede que algunos servidores, como es el caso de
1334
+ alojar la aplicación. Puede que algunos servidores, como es el caso de
1335
1335
  WEBRick, no soporten streaming directamente, así el cuerpo de la respuesta será
1336
1336
  enviado completamente de una vez cuando el bloque pasado a `stream` finalice su
1337
1337
  ejecución. Si estás usando Shotgun, el streaming no va a funcionar.
@@ -1353,7 +1353,7 @@ end
1353
1353
 
1354
1354
  post '/' do
1355
1355
  # escribimos a todos los streams abiertos
1356
- conexiones.each { |salida| salida << params[:mensaje] << "\n" }
1356
+ conexiones.each { |salida| salida << params['mensaje'] << "\n" }
1357
1357
  "mensaje enviado"
1358
1358
  end
1359
1359
  ```
@@ -1512,13 +1512,13 @@ end
1512
1512
  ```
1513
1513
 
1514
1514
  Para usar cachés adecuadamente, deberías considerar usar `etag` o
1515
- `last_modified`. Es recomendable que llames a estos helpers *antes* de hacer
1515
+ `last_modified`. Es recomendable que llames a estos asistentes *antes* de hacer
1516
1516
  cualquier trabajo pesado, ya que van a enviar la respuesta inmediatamente si
1517
1517
  el cliente ya tiene la versión actual en su caché:
1518
1518
 
1519
1519
  ``` ruby
1520
1520
  get '/articulo/:id' do
1521
- @articulo = Articulo.find params[:id]
1521
+ @articulo = Articulo.find params['id']
1522
1522
  last_modified @articulo.updated_at
1523
1523
  etag @articulo.sha1
1524
1524
  erb :articulo
@@ -1557,8 +1557,8 @@ para más detalles).
1557
1557
  De acuerdo con la RFC 2616 tu aplicación debería comportarse diferente si a las
1558
1558
  cabeceras If-Match o If-None-Match se le asigna el valor `*` cuando el
1559
1559
  recurso solicitado ya existe. Sinatra asume para peticiones seguras (como get)
1560
- e idempotentes (como put) que el recurso existe, mientras que para el resto
1561
- (como post) asume que no. Podes cambiar este comportamiento con la opción
1560
+ y potentes (como put) que el recurso existe, mientras que para el resto
1561
+ (como post) asume que no. Podés cambiar este comportamiento con la opción
1562
1562
  `:new_resource`:
1563
1563
 
1564
1564
  ``` ruby
@@ -1616,7 +1616,7 @@ Estas opciones son:
1616
1616
  página de error.
1617
1617
 
1618
1618
  Si el Rack handler lo soporta, se intentará no transmitir directamente desde el
1619
- proceso de Ruby. Si usás este método, Sinatra se va a encargar automáticamente
1619
+ proceso de Ruby. Si usás este método, Sinatra se va a encargar automáticamente de las
1620
1620
  peticiones de rango.
1621
1621
 
1622
1622
  ### Accediendo al objeto de la petición
@@ -1647,7 +1647,7 @@ get '/foo' do
1647
1647
  request["UNA_CABECERA"] # valor de la cabecera UNA_CABECERA
1648
1648
  request.referrer # la referencia del cliente o '/'
1649
1649
  request.user_agent # user agent (usado por la condición :agent)
1650
- request.cookies # hash de las cookies del browser
1650
+ request.cookies # hash de las cookies del navegador
1651
1651
  request.xhr? # es una petición ajax?
1652
1652
  request.url # "http://ejemplo.com/ejemplo/foo"
1653
1653
  request.path # "/ejemplo/foo"
@@ -1681,7 +1681,7 @@ end
1681
1681
 
1682
1682
  ### Archivos Adjuntos
1683
1683
 
1684
- Podés usar el método helper `attachment` para indicarle al navegador que
1684
+ Podés usar el helper `attachment` para indicarle al navegador que
1685
1685
  almacene la respuesta en el disco en lugar de mostrarla en pantalla:
1686
1686
 
1687
1687
  ``` ruby
@@ -1783,7 +1783,7 @@ que llama al bloque que recibe para cada path posible. Esto no representa un
1783
1783
  problema de rendimiento debido a que `render` va a usar `break` ni bien
1784
1784
  encuentre un archivo que exista. Además, las ubicaciones de las plantillas (y
1785
1785
  su contenido) se cachean cuando no estás en el modo de desarrollo. Es bueno
1786
- tener en cuenta lo anteiror si escribís un método medio loco.
1786
+ tener en cuenta lo anterior si escribís un método extraño.
1787
1787
 
1788
1788
  ## Configuración
1789
1789
 
@@ -1844,7 +1844,7 @@ end
1844
1844
  Sinatra usa [Rack::Protection](https://github.com/rkh/rack-protection#readme)
1845
1845
  para defender a tu aplicación de los ataques más comunes. Si por algún motivo,
1846
1846
  querés desactivar esta funcionalidad, podés hacerlo como se indica a
1847
- continuación (tené en cuenta que tu aplicación va a quedar expuesta a un
1847
+ continuación (ten en cuenta que tu aplicación va a quedar expuesta a un
1848
1848
  montón de vulnerabilidades bien conocidas):
1849
1849
 
1850
1850
  ``` ruby
@@ -1881,14 +1881,14 @@ set :protection, :except => [:path_traversal, :session_hijacking]
1881
1881
  Deshabilitada por defecto.
1882
1882
  </dd>
1883
1883
 
1884
- <dt>add_charsets</dt>
1884
+ <dt>add_charset</dt>
1885
1885
  <dd>
1886
1886
  Tipos mime a los que el helper <tt>content_type</tt> les
1887
1887
  añade automáticamente el charset.
1888
1888
 
1889
1889
  En general, no deberías asignar directamente esta opción,
1890
1890
  sino añadirle los charsets que quieras:
1891
- <tt>settings.add_charsets &lt;&lt; "application/foobar"</tt>
1891
+ <tt>settings.add_charset &lt;&lt; "application/foobar"</tt>
1892
1892
  </dd>
1893
1893
 
1894
1894
  <dt>app_file</dt>
@@ -1974,7 +1974,7 @@ set :protection, :except => [:path_traversal, :session_hijacking]
1974
1974
 
1975
1975
  <dt>public_folder</dt>
1976
1976
  <dd>
1977
- Path del directorio desde donde se sirven los archivos
1977
+ Lugar del directorio desde donde se sirven los archivos
1978
1978
  públicos. Solo se utiliza cuando se sirven archivos
1979
1979
  estáticos (ver la opción <tt>static</tt>). Si no
1980
1980
  está presente, se infiere del valor de la opción
@@ -1990,7 +1990,7 @@ set :protection, :except => [:path_traversal, :session_hijacking]
1990
1990
 
1991
1991
  <dt>root</dt>
1992
1992
  <dd>
1993
- Path del directorio raíz del proyecto. Si no está
1993
+ Lugar del directorio raíz del proyecto. Si no está
1994
1994
  presente, se infiere del valor de la opción
1995
1995
  <tt>app_file</tt>.
1996
1996
  </dd>
@@ -2012,7 +2012,7 @@ set :protection, :except => [:path_traversal, :session_hijacking]
2012
2012
 
2013
2013
  <dt>running</dt>
2014
2014
  <dd>
2015
- Indica si el servidor integrado está ejecutandose, ¡no
2015
+ Indica si el servidor integrado está ejecutándose, ¡no
2016
2016
  cambiés esta configuración!.
2017
2017
  </dd>
2018
2018
 
@@ -2053,7 +2053,7 @@ set :protection, :except => [:path_traversal, :session_hijacking]
2053
2053
  <dt>static_cache_control</dt>
2054
2054
  <dd>
2055
2055
  Cuando Sinatra está sirviendo archivos estáticos, y
2056
- está opción está habilitada, les va a agregar encabezados
2056
+ esta opción está habilitada, les va a agregar encabezados
2057
2057
  <tt>Cache-Control</tt> a las respuestas. Para esto
2058
2058
  utiliza el helper <tt>cache_control</tt>. Se encuentra
2059
2059
  deshabilitada por defecto. Notar que es necesario
@@ -2115,7 +2115,7 @@ obtener de la variable Rack `sinatra.error`:
2115
2115
 
2116
2116
  ``` ruby
2117
2117
  error do
2118
- 'Disculpá, ocurrió un error horrible - ' + env['sinatra.error'].name
2118
+ 'Disculpá, ocurrió un error horrible - ' + env['sinatra.error'].message
2119
2119
  end
2120
2120
  ```
2121
2121
 
@@ -2164,7 +2164,7 @@ cuando se ejecuta dentro del entorno de desarrollo "development".
2164
2164
 
2165
2165
  ## Rack Middleware
2166
2166
 
2167
- Sinatra corre sobre Rack[http://rack.rubyforge.org/], una interfaz minimalista
2167
+ Sinatra corre sobre [Rack](http://rack.github.io/), una interfaz minimalista
2168
2168
  que es un estándar para frameworks webs escritos en Ruby. Una de las
2169
2169
  características más interesantes de Rack para los desarrolladores de aplicaciones
2170
2170
  es el soporte de "middleware" -- componentes que se ubican entre el servidor y
@@ -2187,7 +2187,7 @@ end
2187
2187
  ```
2188
2188
 
2189
2189
  La semántica de `use` es idéntica a la definida para el DSL
2190
- Rack::Builder[http://rack.rubyforge.org/doc/classes/Rack/Builder.html] (más
2190
+ Rack::Builder[http://rubydoc.info/github/rack/rack/master/Rack/Builder] (más
2191
2191
  frecuentemente usado en archivos rackup). Por ejemplo, el método `use`
2192
2192
  acepta argumentos múltiples/variables así como bloques:
2193
2193
 
@@ -2198,9 +2198,9 @@ end
2198
2198
  ```
2199
2199
 
2200
2200
  Rack es distribuido con una variedad de middleware estándar para logging,
2201
- debugging, enrutamiento URL, autenticación, y manejo de sesiones. Sinatra
2201
+ debugging, enrutamiento URL, autenticación y manejo de sesiones. Sinatra
2202
2202
  usa muchos de estos componentes automáticamente de acuerdo a su configuración
2203
- para que típicamente no tengas que usarlas (con `use`) explícitamente.
2203
+ para que usualmente no tengas que usarlas (con `use`) explícitamente.
2204
2204
 
2205
2205
  Podés encontrar middleware útil en
2206
2206
  [rack](https://github.com/rack/rack/tree/master/lib/rack),
@@ -2215,10 +2215,10 @@ cualquier framework o librería de pruebas basada en Rack. Se recomienda usar
2215
2215
 
2216
2216
  ``` ruby
2217
2217
  require 'mi_app_sinatra'
2218
- require 'test/unit'
2218
+ require 'minitest/autorun'
2219
2219
  require 'rack/test'
2220
2220
 
2221
- class MiAppTest < Test::Unit::TestCase
2221
+ class MiAppTest < Minitest::Test
2222
2222
  include Rack::Test::Methods
2223
2223
 
2224
2224
  def app
@@ -2244,10 +2244,10 @@ end
2244
2244
 
2245
2245
  ## Sinatra::Base - Middleware, Librerías, y Aplicaciones Modulares
2246
2246
 
2247
- Definir tu aplicación en el top-level funciona bien para micro-aplicaciones
2247
+ Definir tu aplicación en el nivel superior funciona bien para micro-aplicaciones
2248
2248
  pero trae inconvenientes considerables a la hora de construir componentes
2249
2249
  reutilizables como Rack middleware, Rails metal, librerías simples con un
2250
- componente de servidor, o incluso extensiones de Sinatra. El DSL de top-level
2250
+ componente de servidor o incluso extensiones de Sinatra. El DSL de alto nivel
2251
2251
  asume una configuración apropiada para micro-aplicaciones (por ejemplo, un
2252
2252
  único archivo de aplicación, los directorios `./public` y
2253
2253
  `./views`, logging, página con detalles de excepción, etc.). Ahí es
@@ -2287,13 +2287,13 @@ para detalles sobre las opciones disponibles y su comportamiento.
2287
2287
  Contrariamente a la creencia popular, no hay nada de malo con el estilo clásico.
2288
2288
  Si se ajusta a tu aplicación, no es necesario que la cambies a una modular.
2289
2289
 
2290
- Las desventaja de usar el estilo clásico en lugar del modular consiste en que
2290
+ La desventaja de usar el estilo clásico en lugar del modular consiste en que
2291
2291
  solamente podés tener una aplicación Sinatra por proceso Ruby. Si tenés
2292
- planificado usar más, cambiá al estilo modular. Al mismo tiempo, tené en
2292
+ planificado usar más, cambiá al estilo modular. Al mismo tiempo, ten en
2293
2293
  cuenta que no hay ninguna razón por la cuál no puedas mezclar los estilos
2294
2294
  clásico y modular.
2295
2295
 
2296
- A continuación se detallan las diferencias (sutiles) entre las configuraciones
2296
+ A continuación se detallan las diferencias (sútiles) entre las configuraciones
2297
2297
  de ambos estilos:
2298
2298
 
2299
2299
  <table>
@@ -2397,11 +2397,11 @@ require './app'
2397
2397
  run Sinatra::Application
2398
2398
  ```
2399
2399
 
2400
- ### ¿Cuándo Usar config.ru?
2400
+ ### ¿Cuándo usar config.ru?
2401
2401
 
2402
2402
  Indicadores de que probablemente querés usar `config.ru`:
2403
2403
 
2404
- * Querés realizar el deploy con un hanlder Rack distinto (Passenger, Unicorn,
2404
+ * Querés realizar el deploy con un handler Rack distinto (Passenger, Unicorn,
2405
2405
  Heroku, ...).
2406
2406
  * Querés usar más de una subclase de `Sinatra::Base`.
2407
2407
  * Querés usar Sinatra únicamente para middleware, pero no como un endpoint.
@@ -2426,8 +2426,8 @@ class PantallaDeLogin < Sinatra::Base
2426
2426
  get('/login') { haml :login }
2427
2427
 
2428
2428
  post('/login') do
2429
- if params[:nombre] == 'admin' && params[:password] == 'admin'
2430
- session['nombre_de_usuario'] = params[:nombre]
2429
+ if params['nombre'] == 'admin' && params['password'] == 'admin'
2430
+ session['nombre_de_usuario'] = params['nombre']
2431
2431
  else
2432
2432
  redirect '/login'
2433
2433
  end
@@ -2552,8 +2552,8 @@ class MiApp < Sinatra::Base
2552
2552
  # Ámbito de petición para '/definir_ruta/:nombre'
2553
2553
  @valor = 42
2554
2554
 
2555
- settings.get("/#{params[:nombre]}") do
2556
- # Ámbito de petición para "/#{params[:nombre]}"
2555
+ settings.get("/#{params['nombre']}") do
2556
+ # Ámbito de petición para "/#{params['nombre']}"
2557
2557
  @valor # => nil (no es la misma petición)
2558
2558
  end
2559
2559
 
@@ -2620,7 +2620,7 @@ Las siguientes versiones de Ruby son soportadas oficialmente:
2620
2620
  embargo, que eso ocurra es muy poco probable, e incluso el caso de que lo
2621
2621
  haga, puede que se siga dando soporte a 1.8.7. <b>Hemos dejado de soportar
2622
2622
  Ruby 1.8.6.</b> Si querés ejecutar Sinatra sobre 1.8.6, podés utilizar la
2623
- versión 1.2, pero tené en cuenta que una vez que Sinatra 1.4.0 sea liberado,
2623
+ versión 1.2, pero ten en cuenta que una vez que Sinatra 1.4.0 sea liberado,
2624
2624
  ya no se corregirán errores por más que se reciban reportes de los mismos.
2625
2625
  </dd>
2626
2626
 
@@ -2629,12 +2629,12 @@ Las siguientes versiones de Ruby son soportadas oficialmente:
2629
2629
  1.9.2 es soportado y recomendado. No uses 1.9.2p0, porque se producen fallos
2630
2630
  de segmentación cuando se ejecuta Sinatra. El soporte se mantendrá al menos
2631
2631
  hasta que se libere la versión 1.9.4/2.0 de Ruby. El soporte para la última
2632
- versión de la serie 1.9 se mantendrá mientras lo haga el core team de Ruby.
2632
+ versión de la serie 1.9 se mantendrá mientras lo haga el equipo principal de Ruby.
2633
2633
  </dd>
2634
2634
 
2635
2635
  <dt>Ruby 1.9.3</dt>
2636
2636
  <dd>
2637
- 1.9.3 es soportado y recomendado. Tené en cuenta que el cambio a 1.9.3 desde
2637
+ 1.9.3 es soportado y recomendado. Ten en cuenta que el cambio a 1.9.3 desde
2638
2638
  una versión anterior va a invalidar todas las sesiones.
2639
2639
  </dd>
2640
2640
 
@@ -2651,7 +2651,7 @@ Las siguientes versiones de Ruby son soportadas oficialmente:
2651
2651
  con librerías de plantillas de terceras partes. Sin embargo, si elegís usar
2652
2652
  JRuby, deberías examinar sus Rack handlers porque el servidor web Thin no es
2653
2653
  soportado completamente. El soporte de JRuby para extensiones C se encuentra
2654
- en una etapa experimental, sin embargo, de momento solamente RDiscount,
2654
+ en una etapa experimental, sin embargo, de momento, solamente RDiscount,
2655
2655
  Redcarpet, RedCloth y Yajl, así como Thin y Mongrel se ven afectadas.
2656
2656
  </dd>
2657
2657
  </dl>
@@ -2666,7 +2666,7 @@ oficialmente. De cualquier manera, pueden ejecutar Sinatra:
2666
2666
  * MacRuby, Maglev e IronRuby
2667
2667
  * Ruby 1.9.0 y 1.9.1 (pero no te recomendamos que los uses)
2668
2668
 
2669
- No estar soportada oficialmente, significa que si las cosas solamente se rompen
2669
+ No ser soportada oficialmente, significa que si las cosas se rompen
2670
2670
  ahí y no en una plataforma soportada, asumimos que no es nuestro problema sino
2671
2671
  el suyo.
2672
2672
 
@@ -2699,7 +2699,7 @@ Para obtener algunas de las últimas características.
2699
2699
  Esta es la manera recomendada para ejecutar tu aplicación sobre la última
2700
2700
  versión de Sinatra usando [Bundler](http://gembundler.com/).
2701
2701
 
2702
- Primero, instalá bundler si no lo hiciste todavía:
2702
+ Primero, instalá Bundler si no lo hiciste todavía:
2703
2703
 
2704
2704
  ``` shell
2705
2705
  gem install bundler
@@ -2776,7 +2776,7 @@ siguiendo las especificaciones SemVer y SemVerTag.
2776
2776
  * [Twitter](http://twitter.com/sinatra)
2777
2777
  * [Lista de Correo](http://groups.google.com/group/sinatrarb/topics)
2778
2778
  * [IRC: #sinatra](irc://chat.freenode.net/#sinatra) en http://freenode.net
2779
- * [Sinatra Book](http://sinatra-book.gittr.com) Tutorial (en inglés).
2779
+ * [Sinatra Book](https://github.com/sinatra/sinatra-book/) Tutorial (en inglés).
2780
2780
  * [Sinatra Recipes](http://recipes.sinatrarb.com/) Recetas contribuidas
2781
2781
  por la comunidad (en inglés).
2782
2782
  * Documentación de la API para la