sinatra 1.1.4 → 1.2.0.a

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.

data/AUTHORS CHANGED
@@ -36,15 +36,6 @@ Sinatra would not be possible:
36
36
  * Rick Olson (technoweenie) for the killer plug at RailsConf '08.
37
37
  * Steven Garcia for the amazing custom artwork you see on 404's and 500's
38
38
  * Pat Nakajima (nakajima) for fixing non-nested params in nested params Hash's.
39
- * Konstantin Haase for his hard work and ongoing commitment to improving
40
- Sinatra, for 1.1.0, 1.2.0 and beyond..
41
- * Zachary Scott for adding Konstantin to the AUTHORS file. He also did help
42
- writing the book, but mainly for adding Konstantin.
43
- * Gabriel Andretta for having people wonder whether our documentation is
44
- actually in English or in Spanish.
45
- * Vasily Polovnyov, Nickolay Schwarz, Luciano Sousa, Wu Jiang, Mickael Riga,
46
- Bernhard Essl, Janos Hardi, Kouhei Yanagita and "burningTyger" for willingly
47
- translating whatever ends up in the README.
48
39
 
49
40
  and last but not least:
50
41
 
data/CHANGES CHANGED
@@ -1,31 +1,12 @@
1
- = 1.1.4 / 2011-04-13
1
+ = 1.2.0 / Not Yet Released
2
2
 
3
- * Compatible with Tilt 1.3. (Konstantin Haase)
3
+ * Added `slim` rendering method for rendering Slim templates. (Steve
4
+ Hodgkiss)
4
5
 
5
- = 1.1.3 / 2011-02-20
6
+ * The `markaby` rendering method now allows passing a block, making inline
7
+ usage possible. Requires Tilt 1.2 or newer. (Konstantin Haase)
6
8
 
7
- * Fixed issues with `user_agent` condition if the user agent header is missing.
8
- (Konstantin Haase)
9
-
10
- * Fix some routing tests that have been skipped by accident (Ross A. Baker)
11
-
12
- * Fix rendering issues with Builder and Nokogiri (Konstantin Haase)
13
-
14
- * Replace last_modified helper with better implementation. (cactus,
15
- Konstantin Haase)
16
-
17
- * Fix issue with charset not being set when using `provides` condition.
18
- (Konstantin Haase)
19
-
20
- * Fix issue with `render` not picking up all alternative file extensions for
21
- a rendering engine - it was not possible to register ".html.erb" without
22
- tricks. (Konstantin Haase)
23
-
24
- = 1.1.2 / 2010-10-25
25
-
26
- Like 1.1.1, but with proper CHANGES file.
27
-
28
- = 1.1.1 / 2010-10-25
9
+ = 1.1.1 / Not Yet Released
29
10
 
30
11
  * README has been translated to Russian (Nickolay Schwarz, Vasily Polovnyov)
31
12
  and Portuguese (Luciano Sousa).
@@ -53,10 +34,6 @@ Like 1.1.1, but with proper CHANGES file.
53
34
  * Headers set by cache_control now always set max_age as an Integer, making
54
35
  sure it is compatible with RFC2616. (Konstantin Haase)
55
36
 
56
- * Further improved handling of string encodings on Ruby 1.9, templates now
57
- honor default_encoding and URLs support unicode characters. (Konstantin
58
- Haase)
59
-
60
37
  = 1.1.0 / 2010-10-24
61
38
 
62
39
  * Before and after filters now support pattern matching, including the
data/README.de.rdoc CHANGED
@@ -433,6 +433,19 @@ Das markaby gem wird benötigt, um Markaby-Templates rendern zu können:
433
433
 
434
434
  Dieser Code rendert <tt>./views/index.mab</tt>.
435
435
 
436
+ === Slim-Templates
437
+
438
+ Das slim gem wird benötigt, um Slim-Templates rendern zu können:
439
+
440
+ ## slim muss eingebunden werden
441
+ require 'slim'
442
+
443
+ get '/' do
444
+ slim :index
445
+ end
446
+
447
+ Dieser Code rendert <tt>./views/index.slim</tt>.
448
+
436
449
  === CoffeeScript-Templates
437
450
 
438
451
  Das coffee-script gem und das `coffee`-Programm werden benötigt, um CoffeScript-Templates rendern zu können:
@@ -571,6 +584,16 @@ Filter können optional auch mit einem Pattern ausgestattet werden, welche auf d
571
584
  session[:last_slug] = slug
572
585
  end
573
586
 
587
+ Ähnlich wie Routen können Filter auch mit weiteren Bedingungen eingeschränkt werden:
588
+
589
+ before :agent => /Songbird/ do
590
+ # ...
591
+ end
592
+
593
+ after '/blog/*', :host_name => 'example.com' do
594
+ # ...
595
+ end
596
+
574
597
  == Anhalten
575
598
 
576
599
  Zum sofortigen stoppen eines Request in einem Filter oder einer Route:
data/README.es.rdoc CHANGED
@@ -39,6 +39,11 @@ Cada ruta se asocia con un bloque:
39
39
  .. aniquilar algo ..
40
40
  end
41
41
 
42
+ options '/' do
43
+ .. informar algo ..
44
+ end
45
+
46
+
42
47
  Las rutas son comparadas en el orden en el que son definidas. La primer ruta
43
48
  que coincide con la petición es invocada.
44
49
 
@@ -146,7 +151,7 @@ De esa manera podemos, por ejemplo, implementar fácilmente un streaming:
146
151
 
147
152
  get('/') { Stream.new }
148
153
 
149
- == Archivos Estáticos
154
+ == Archivos estáticos
150
155
 
151
156
  Los archivos estáticos son servidos desde el directorio público
152
157
  <tt>./public</tt>. Podés especificar una ubicación diferente ajustando la
@@ -173,7 +178,7 @@ les pase como argumento.
173
178
 
174
179
  === Plantillas Haml
175
180
 
176
- La gem/librería <tt>haml</tt> es necesaria para para renderizar plantillas HAML:
181
+ La gem/librería haml es necesaria para para renderizar plantillas HAML:
177
182
 
178
183
  ## Vas a necesitar requerir haml en tu app
179
184
  require 'haml'
@@ -206,9 +211,9 @@ y reemplazadas individualmente.
206
211
 
207
212
  Renderiza <tt>./views/index.erb</tt>
208
213
 
209
- === Plantillas Erubis
214
+ === Erubis
210
215
 
211
- La gem/librería <tt>erubis</tt> es necesaria para renderizar plantillas Erubis:
216
+ La gem/librería erubis es necesaria para renderizar plantillas erubis:
212
217
 
213
218
  ## Vas a necesitar requerir erubis en tu app
214
219
  require 'erubis'
@@ -217,23 +222,11 @@ La gem/librería <tt>erubis</tt> es necesaria para renderizar plantillas Erubis:
217
222
  erubis :index
218
223
  end
219
224
 
220
- Renderiza <tt>./views/index.erubis</tt>.
221
-
222
- También es posible reemplazar Erb con Erubis:
223
-
224
- require 'erubis'
225
- Tilt.register :erb, Tilt[:erubis]
226
-
227
- get '/' do
228
- erb :index
229
- end
230
-
231
- Renderiza <tt>./views/index.erb</tt> con Erubis.
225
+ Renderiza <tt>./views/index.erubis</tt>
232
226
 
233
227
  === Plantillas Builder
234
228
 
235
- La gem/librería <tt>builder</tt> es necesaria para renderizar plantillas
236
- builder:
229
+ La gem/librería builder es necesaria para renderizar plantillas builder:
237
230
 
238
231
  ## Vas a necesitar requerir builder en tu app
239
232
  require 'builder'
@@ -246,8 +239,7 @@ Renderiza <tt>./views/index.builder</tt>.
246
239
 
247
240
  === Plantillas Nokogiri
248
241
 
249
- La gem/librería <tt>nokogiri</tt> es necesaria para renderizar plantillas
250
- nokogiri:
242
+ La gem/librería nokogiri es necesaria para renderizar plantillas nokogiri:
251
243
 
252
244
  ## Vas a necesitar requerir nokogiri en tu app
253
245
  require 'nokogiri'
@@ -260,8 +252,7 @@ Renderiza <tt>./views/index.nokogiri</tt>.
260
252
 
261
253
  === Plantillas Sass
262
254
 
263
- La gem/librería <tt>haml</tt> o <tt>sass</tt> es necesaria para renderizar
264
- plantillas Sass:
255
+ La gem/librería haml es necesaria para renderizar plantillas Sass:
265
256
 
266
257
  ## Vas a necesitar requerir haml o sass en tu app
267
258
  require 'sass'
@@ -285,8 +276,7 @@ y reemplazadas individualmente.
285
276
 
286
277
  === Plantillas Scss
287
278
 
288
- La gem/librería <tt>haml</tt> o <tt>sass</tt>es necesaria para renderizar
289
- plantillas Scss:
279
+ La gem/librería haml es necesaria para renderizar plantillas Scss:
290
280
 
291
281
  ## Vas a necesitar requerir haml o sass en tu app
292
282
  require 'sass'
@@ -310,7 +300,7 @@ y reemplazadas individualmente.
310
300
 
311
301
  === Plantillas Less
312
302
 
313
- La gem/librería <tt>less</tt> es necesaria para renderizar plantillas Less:
303
+ La gem/librería less es necesaria para renderizar plantillas Less:
314
304
 
315
305
  ## Vas a necesitar requerir less en tu app
316
306
  require 'less'
@@ -323,7 +313,7 @@ Renderiza <tt>./views/stylesheet.less</tt>.
323
313
 
324
314
  === Plantillas Liquid
325
315
 
326
- La gem/librería <tt>liquid</tt> es necesaria para renderizar plantillas Liquid:
316
+ La gem/librería liquid es necesaria para renderizar plantillas Liquid:
327
317
 
328
318
  ## Vas a necesitar requerir liquid en tu app
329
319
  require 'liquid'
@@ -341,8 +331,7 @@ plantilla Liquid, casi siempre vas a querer pasarle locales:
341
331
 
342
332
  === Plantillas Markdown
343
333
 
344
- La gem/librería <tt>rdiscount</tt> es necesaria para renderizar plantillas
345
- Markdown:
334
+ La gem/librería rdiscount es necesaria para renderizar plantillas Markdown:
346
335
 
347
336
  ## Vas a necesitar requerir rdiscount en tu app
348
337
  require "rdiscount"
@@ -359,30 +348,15 @@ generalmente vas a usarlo en combinación con otro motor de renderizado:
359
348
 
360
349
  erb :resumen, :locals => { :texto => markdown(:introduccion) }
361
350
 
362
- Tené en cuenta que también podés llamar al método +markdown+ desde otras
351
+ Tené en cuenta que también podés llamar al método markdown desde otras
363
352
  plantillas:
364
353
 
365
354
  %h1 Hola Desde Haml!
366
355
  %p= markdown(:saludos)
367
356
 
368
- También es posible parsear Markdown con BlueCloth en lugar de RDiscount:
357
+ === Plantilla Textile
369
358
 
370
- require 'bluecloth'
371
-
372
- Tilt.register 'markdown', BlueClothTemplate
373
- Tilt.register 'mkd', BlueClothTemplate
374
- Tilt.register 'md', BlueClothTemplate
375
-
376
- get '/' do
377
- markdown :index
378
- end
379
-
380
- Renderiza <tt>./views/index.md</tt> con BlueCloth.
381
-
382
- === Plantillas Textile
383
-
384
- La gem/librería <tt>RedCloth</tt> es necesaria para renderizar plantillas
385
- Textile:
359
+ La gem/librería RedCloth es necesaria para renderizar plantillas Textile:
386
360
 
387
361
  ## Vas a necesitar requerir redcloth en tu app
388
362
  require "redcloth"
@@ -398,7 +372,7 @@ generalmente vas a usarlo en combinación con otro motor de renderizado:
398
372
 
399
373
  erb :resumen, :locals => { :texto => textile(:introduccion) }
400
374
 
401
- Tené en cuenta que también podés llamar al método +textile+ desde otras
375
+ Tené en cuenta que también podés llamar al método textile desde otras
402
376
  plantillas:
403
377
 
404
378
  %h1 Hola Desde Haml!
@@ -406,7 +380,7 @@ plantillas:
406
380
 
407
381
  === Plantillas RDoc
408
382
 
409
- La gem/librería <tt>rdoc</tt> es necesaria para renderizar plantillas RDoc:
383
+ La gem/librería RDoc es necesaria para renderizar plantillas RDoc:
410
384
 
411
385
  ## Vas a necesitar requerir rdoc en tu app
412
386
  require "rdoc"
@@ -422,7 +396,7 @@ generalmente vas a usarlo en combinación con otro motor de renderizado:
422
396
 
423
397
  erb :resumen, :locals => { :texto => rdoc(:introduccion) }
424
398
 
425
- Tené en cuenta que también podés llamar al método +rdoc+ desde otras
399
+ Tené en cuenta que también podés llamar al método rdoc desde otras
426
400
  plantillas:
427
401
 
428
402
  %h1 Hola Desde Haml!
@@ -430,7 +404,7 @@ plantillas:
430
404
 
431
405
  === Plantillas Radius
432
406
 
433
- La gem/librería <tt>radius</tt> es necesaria para renderizar plantillas Radius:
407
+ La gem/librería radius es necesaria para renderizar plantillas Radius:
434
408
 
435
409
  ## Vas a necesitar requerir radius en tu app
436
410
  require 'radius'
@@ -448,8 +422,7 @@ plantilla Radius, casi siempre vas a querer pasarle locales:
448
422
 
449
423
  === Plantillas Markaby
450
424
 
451
- La gem/librería <tt>markaby</tt> es necesaria para renderizar plantillas
452
- Markaby:
425
+ La gem/librería markaby es necesaria para renderizar plantillas Markaby:
453
426
 
454
427
  ## Vas a necesitar requerir markaby en tu app
455
428
  require 'markaby'
@@ -460,16 +433,30 @@ Markaby:
460
433
 
461
434
  Renderiza <tt>./views/index.mab</tt>.
462
435
 
463
- === Plantillas CoffeeScript
436
+ Si tenés Tilt 1.2 o posterior, podés usar markaby inline:
464
437
 
465
- La gem/librería <tt>coffee-script</tt> y al menos <b>una</b> de las siguientes
466
- opciones para ejecutar JavaScript:
438
+ get '/' do
439
+ markaby { h1 "Bienvenido!" }
440
+ end
441
+
442
+
443
+ === Plantillas Slim
467
444
 
468
- * +node+ (de Node.js) en tu path
469
- * utilizar OSX
470
- * la gem/librería +therubyracer+
445
+ La gem/librería slim es necesaria para renderizar plantillas Slim:
471
446
 
472
- son necesarios para renderizar plantillas CoffeeScript:
447
+ ## Vas a necesitar requerir slim en tu app
448
+ require 'slim'
449
+
450
+ get '/' do
451
+ slim :index
452
+ end
453
+
454
+ Renderiza <tt>./views/index.slim</tt>.
455
+
456
+ === Plantillas CoffeeScript
457
+
458
+ La gem/librería coffee-script y el binario `coffee` son necesarios para
459
+ renderizar plantillas CoffeeScript:
473
460
 
474
461
  ## Vas a necesitar requerir coffee-script en tu app
475
462
  require 'coffee-script'
@@ -480,13 +467,13 @@ son necesarios para renderizar plantillas CoffeeScript:
480
467
 
481
468
  Renderiza <tt>./views/application.coffee</tt>.
482
469
 
483
- === Plantillas Embebidas
470
+ === Plantillas Inline
484
471
 
485
472
  get '/' do
486
473
  haml '%div.titulo Hola Mundo'
487
474
  end
488
475
 
489
- Renderiza el template embebido en el string.
476
+ Renderiza el template contenido en el string.
490
477
 
491
478
  === Accediendo a Variables en Plantillas
492
479
 
@@ -552,39 +539,13 @@ Las plantillas también pueden ser definidas usando el método top-level
552
539
  end
553
540
 
554
541
  Si existe una plantilla con el nombre "layout", va a ser usada cada vez que
555
- una plantilla es renderizada. Podés desactivar los layouts individualmente
556
- pasando <tt>:layout => false</tt> o globalmente con
557
- <tt>set :haml, :layout => false</tt>.
542
+ una plantilla es renderizada. Podés desactivar los layouts pasando
543
+ <tt>:layout => false</tt>.
558
544
 
559
545
  get '/' do
560
546
  haml :index, :layout => !request.xhr?
561
547
  end
562
548
 
563
- === Asociando Extensiones de Archivo
564
-
565
- Para asociar una extensión de archivo con un motor de renderizado, usá
566
- <tt>Tilt.register</tt>. Por ejemplo, si querés usar la extensión +tt+ para
567
- las plantillas Textile, podés hacer lo siguiente:
568
-
569
- Tilt.register :tt, Tilt[:textile]
570
-
571
- === Agregando Tu Propio Motor de Renderizado
572
-
573
- Primero, registrá tu motor con Tilt, y después, creá tu método de renderizado:
574
-
575
- Tilt.register :mipg, MiMotorParaPlantillaGenial
576
-
577
- helpers do
578
- def mypg(*args) render(:mypg, *args) end
579
- end
580
-
581
- get '/' do
582
- mypg :index
583
- end
584
-
585
- Renderiza <tt>./views/index.mypg</tt>. Mirá https://github.com/rtomayko/tilt
586
- para aprender más de Tilt.
587
-
588
549
  == Ayudantes
589
550
 
590
551
  Usá el método top-level <tt>helpers</tt> para definir métodos ayudantes que
@@ -638,6 +599,16 @@ patrón:
638
599
  session[:ultimo_slug] = slug
639
600
  end
640
601
 
602
+ Al igual que las rutas, los filtros también aceptan condiciones:
603
+
604
+ before :agent => /Songbird/ do
605
+ # ...
606
+ end
607
+
608
+ after '/blog/*', :host_name => 'ejemplo.com' do
609
+ # ...
610
+ end
611
+
641
612
  == Interrupción
642
613
 
643
614
  Para detener inmediatamente una petición dentro de un filtro o una ruta usá:
@@ -747,7 +718,7 @@ Ejecutar cuando el entorno es <tt>:production</tt> o <tt>:test</tt>:
747
718
  ...
748
719
  end
749
720
 
750
- == Manejo de Errores
721
+ == Manejo de errores
751
722
 
752
723
  Los manejadores de errores se ejecutan dentro del mismo contexto que las rutas
753
724
  y los filtros before, lo que significa que podés usar, por ejemplo,
@@ -913,6 +884,13 @@ etc.). Ahí es donde Sinatra::Base entra en el juego:
913
884
  end
914
885
  end
915
886
 
887
+ La clase MiApp es un componente Rack independiente que puede actuar como Rack
888
+ middleware, una aplicación Rack, o Rails metal. Podés usar (con +use+) o
889
+ ejecutar (con +run+) esta clase desde un archivo rackup +config.ru+; o,
890
+ controlar un componente de servidor provisto como una librería:
891
+
892
+ MiApp.run! :host => 'localhost', :port => 9090
893
+
916
894
  Las subclases de Sinatra::Base tienen disponibles exactamente los mismos
917
895
  métodos que los provistos por el DSL de top-level. La mayoría de las
918
896
  aplicaciones top-level se pueden convertir en componentes Sinatra::Base con
@@ -929,64 +907,6 @@ desactivadas por defecto, incluyendo el servidor incorporado. Mirá
929
907
  {Opciones y Configuraciones}[http://sinatra.github.com/configuration.html]
930
908
  para detalles sobre las opciones disponibles y su comportamiento.
931
909
 
932
- === Sirviendo una Aplicación Modular
933
-
934
- Las dos opciones más comunes para iniciar una aplicación modular son, iniciarla
935
- activamente con <tt>run!</tt>:
936
-
937
- # mi_app.rb
938
- require 'sinatra/base'
939
-
940
- class MiApp < Sinatra::Base
941
- # ... código de la app ...
942
-
943
- # iniciar el servidor si el archivo fue ejecutado directamente
944
- run! if app_file == $0
945
- end
946
-
947
- Iniciar con:
948
-
949
- ruby mi_app.rb
950
-
951
- O, con un archivo <tt>config.ru</tt>, que permite usar cualquier handler Rack:
952
-
953
- # config.ru
954
- require 'mi_app'
955
- run MiApp
956
-
957
- Después ejecutar:
958
-
959
- rackup -p 4567
960
-
961
- === Usando una Aplicación Clásica con un Archivo config.ru
962
-
963
- Escribí el archivo de tu aplicación:
964
-
965
- # app.rb
966
- require 'sinatra'
967
-
968
- get '/' do
969
- 'Hola mundo!'
970
- end
971
-
972
- Y el <tt>config.ru</tt> correspondiente:
973
-
974
- require 'app'
975
- run Sinatra::Application
976
-
977
- === ¿Cuándo Usar config.ru?
978
-
979
- Indicadores de que probablemente querés usar <tt>config.ru</tt>:
980
-
981
- * Querés realizar el deploy con un hanlder Rack distinto (Passenger, Unicorn,
982
- Heroku, ...).
983
- * Querés usar más de una subclase de <tt>Sinatra::Base</tt>.
984
- * Querés usar Sinatra únicamente para middleware, pero no como un endpoint.
985
-
986
- <b>No hay necesidad de utilizar un archivo <tt>config.ru</tt> exclusivamente
987
- porque tenés una aplicación modular, y no necesitás una aplicación modular para
988
- iniciarla con <tt>config.ru</tt>.</b>
989
-
990
910
  === Utilizando Sinatra como Middleware
991
911
 
992
912
  Sinatra no solo es capaz de usar otro Rack middleware, sino que a su vez,
@@ -996,7 +916,7 @@ aplicación basada en Rack (Rails/Ramaze/Camping/...).
996
916
 
997
917
  require 'sinatra/base'
998
918
 
999
- class PantallaDeLogin< Sinatra::Base
919
+ class PantallaDeLogin < Sinatra::Base
1000
920
  enable :sessions
1001
921
 
1002
922
  get('/login') { haml :login }
@@ -1086,7 +1006,7 @@ desde el ámbito de la petición utilizando `settings`:
1086
1006
 
1087
1007
  Tenés la ligadura al ámbito de la petición dentro de:
1088
1008
 
1089
- * bloques pasados a get/head/post/put/delete
1009
+ * bloques pasados a get/head/post/put/delete/options
1090
1010
  * filtros before/after
1091
1011
  * métodos ayudantes
1092
1012
  * plantillas/vistas
@@ -1109,7 +1029,7 @@ Pegale una mirada al código: acá está el
1109
1029
  {Sinatra::Delegator mixin}[http://github.com/sinatra/sinatra/blob/ceac46f0bc129a6e994a06100aa854f606fe5992/lib/sinatra/base.rb#L1128]
1110
1030
  que es {incluido en el espacio de nombres principal}[http://github.com/sinatra/sinatra/blob/ceac46f0bc129a6e994a06100aa854f606fe5992/lib/sinatra/main.rb#L28].
1111
1031
 
1112
- == Línea de Comandos
1032
+ == Línea de comandos
1113
1033
 
1114
1034
  Las aplicaciones Sinatra pueden ser ejecutadas directamente:
1115
1035
 
@@ -1124,71 +1044,33 @@ Las opciones son:
1124
1044
  -s # especifica el servidor/manejador rack (thin es usado por defecto)
1125
1045
  -x # activa el mutex lock (está desactivado por defecto)
1126
1046
 
1127
- == A la Vanguardia
1128
-
1129
- Si querés usar el código de Sinatra más reciente, sentite libre de ejecutar
1130
- tu aplicación sobre la rama master, en general es bastante estable.
1131
-
1132
- También liberamos prereleases de vez en cuando, así, podés hacer
1133
-
1134
- gem install sinatra --pre
1135
-
1136
- Para obtener algunas de las últimas características.
1137
-
1138
- === Con Bundler
1139
-
1140
- Esta es la manera recomendada para ejecutar tu aplicación sobre la última
1141
- versión de Sinatra usando {Bundler}[http://gembundler.com/].
1142
-
1143
- Primero, instalá bundler si no lo hiciste todavía:
1144
-
1145
- gem install bundler
1146
-
1147
- Después, en el directorio de tu proyecto, creá un archivo +Gemfile+:
1148
-
1149
- source :rubygems
1150
- gem 'sinatra', :git => "git://github.com/sinatra/sinatra.git"
1151
-
1152
- # otras dependencias
1153
- gem 'haml' # por ejemplo, si usás haml
1154
- gem 'activerecord', '~> 3.0' # quizás también necesités ActiveRecord 3.x
1155
-
1156
- Tené en cuenta que tenés que listar todas las dependencias directas de tu
1157
- aplicación. No es necesario listar las dependencias de Sinatra (Rack y Tilt)
1158
- porque Bundler las agrega directamente.
1047
+ == A la vanguardia
1159
1048
 
1160
- Ahora podés arrancar tu aplicación así:
1161
-
1162
- bundle exec ruby miapp.rb
1163
-
1164
- === Con Git
1165
-
1166
- Cloná el repositorio localmente y ejecutá tu aplicación, asegurándote que el
1167
- directorio <tt>sinatra/lib</tt> esté en el <tt>LOAD_PATH</tt>:
1049
+ Si querés usar el código de Sinatra más reciente, cloná el repositorio
1050
+ localmente y ejecutá tu aplicación, asegurándote que el directorio
1051
+ <tt>sinatra/lib</tt> esté en el <tt>LOAD_PATH</tt>:
1168
1052
 
1169
1053
  cd miapp
1170
1054
  git clone git://github.com/sinatra/sinatra.git
1171
1055
  ruby -Isinatra/lib miapp.rb
1172
1056
 
1173
- Para actualizar el código fuente de Sinatra en el futuro:
1174
-
1175
- cd miapp/sinatra
1176
- git pull
1177
-
1178
- === Instalación Global
1057
+ Otra opción consiste en agregar el directorio <tt>sinatra/lib</tt> al
1058
+ <tt>LOAD_PATH</tt> dentro de tu aplicación:
1179
1059
 
1180
- Podés construir la gem vos mismo:
1060
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/sinatra/lib'
1061
+ require 'rubygems'
1062
+ require 'sinatra'
1181
1063
 
1182
- git clone git://github.com/sinatra/sinatra.git
1183
- cd sinatra
1184
- rake sinatra.gemspec
1185
- rake install
1064
+ get '/acerca-de' do
1065
+ "Estoy usando la versión " + Sinatra::VERSION
1066
+ end
1186
1067
 
1187
- Si instalás tus gems como root, el último paso debería ser
1068
+ Para actualizar el código fuente de Sinatra en el futuro:
1188
1069
 
1189
- sudo rake install
1070
+ cd miproyecto/sinatra
1071
+ git pull
1190
1072
 
1191
- == Lecturas Recomendadas
1073
+ == Más
1192
1074
 
1193
1075
  * {Sito web del proyecto}[http://www.sinatrarb.com/] - Documentación
1194
1076
  adicional, noticias, y enlaces a otros recursos.