sinatra 1.4.2 → 1.4.3

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.

@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 95ab29a70bb8b47332668d03c988fbcb2922e0ac
4
+ data.tar.gz: a814ad7ff43ae1a4bfe5882cbb70f8df9a6004e8
5
+ SHA512:
6
+ metadata.gz: 0c33567db4dfb6bf90d7629a22391c89fcbe83d1feb1b176913bbd5c9ce78aab09714e347afe29a2a9f06260d4829da45b53d429677a747c23a99cbce5b45405
7
+ data.tar.gz: 6d2dcad14d5021925113eef50e77edf31342b21f5366ed6ab0092cdf40a69b2d7bdb53c4f5bedcc80874f0a644ba152dddd4529d233e4f07032065722ad13615
data/CHANGES CHANGED
@@ -1,3 +1,24 @@
1
+ = 1.4.3 / 2013-06-07
2
+
3
+ * Running a Sinatra file directly or via `run!` it will now ignore an
4
+ empty $PORT env variable. (noxqsgit)
5
+
6
+ * Improve documentation. (burningTyger, Patricio Mac Adden,
7
+ Konstantin Haase, Diogo Scudelletti, Dominic Imhof)
8
+
9
+ * Expose matched pattern as env["sinatra.route"]. (Aman Gupta)
10
+
11
+ * Fix warning on Ruby 2.0. (Craig Little)
12
+
13
+ * Improve running subset of tests in isolation. (Viliam Pucik)
14
+
15
+ * Reorder private/public methods. (Patricio Mac Adden)
16
+
17
+ * Loosen version dependency for rack, so it runs with Rails 3.2.
18
+ (Konstantin Haase)
19
+
20
+ * Request#accept? now returns true instead of a truthy value. (Alan Harris)
21
+
1
22
  = 1.4.2 / 2013-03-21
2
23
 
3
24
  * Fix parsing error for case where both the pattern and the captured part
@@ -1,32 +1,36 @@
1
1
  # Sinatra
2
2
 
3
3
  *Wichtig: Dieses Dokument ist eine Übersetzung aus dem Englischen und unter
4
- Umständen nicht auf dem aktuellen Stand.*
4
+ Umständen nicht auf dem aktuellen Stand (aktuell Sinatra 1.4.2).*
5
5
 
6
6
  Sinatra ist eine
7
7
  [DSL](http://de.wikipedia.org/wiki/Domänenspezifische_Sprache), die das
8
8
  schnelle Erstellen von Webanwendungen in Ruby mit minimalem Aufwand
9
9
  ermöglicht:
10
10
 
11
+ Sinatra via `rubygems` installieren:
12
+
13
+ ```shell
14
+ gem install sinatra
15
+ ```
16
+
17
+ Eine Datei mit dem Namen `myapp.rb` erstellen:
18
+
11
19
  ```ruby
12
- # myapp.rb
13
20
  require 'sinatra'
14
21
  get '/' do
15
22
  'Hallo Welt!'
16
23
  end
17
24
  ```
18
25
 
19
- Einfach via `rubygems` installieren und starten:
26
+ und im gleichen Verzeichnis ausführen:
20
27
 
21
- ```ruby
22
- gem install sinatra
28
+ ```shell
23
29
  ruby myapp.rb
24
30
  ```
25
31
 
26
- Die Seite kann nun unter http://localhost:4567 betrachtet werden.
27
-
28
- Es wird empfohlen, den Thin-Server via `gem install thin` zu installieren, den
29
- Sinatra dann, soweit vorhanden, automatisch verwendet.
32
+ Die Seite kann nun unter [http://localhost:4567](http://localhost:4567)
33
+ aufgerufen werden.
30
34
 
31
35
  ## Inhalt
32
36
 
@@ -145,7 +149,6 @@ end
145
149
  unlink '/' do
146
150
  .. trenne etwas ..
147
151
  end
148
-
149
152
  ```
150
153
 
151
154
  Die Routen werden in der Reihenfolge durchlaufen, in der sie definiert wurden.
@@ -157,7 +160,7 @@ Die Muster der Routen können benannte Parameter beinhalten, die über den
157
160
  ```ruby
158
161
  get '/hallo/:name' do
159
162
  # passt auf "GET /hallo/foo" und "GET /hallo/bar"
160
- # params[:name] ist 'foo' oder 'bar'
163
+ # params[:name] ist dann 'foo' oder 'bar'
161
164
  "Hallo #{params[:name]}!"
162
165
  end
163
166
  ```
@@ -166,16 +169,17 @@ Man kann auf diese auch mit Block-Parametern zugreifen:
166
169
 
167
170
  ```ruby
168
171
  get '/hallo/:name' do |n|
172
+ # n entspricht hier params[:name]
169
173
  "Hallo #{n}!"
170
174
  end
171
175
  ```
172
176
 
173
- Routen-Muster können auch mit Splat- oder Wildcard-Parametern über das
177
+ Routen-Muster können auch mit sog. Splat- oder Wildcard-Parametern über das
174
178
  `params[:splat]`-Array angesprochen werden:
175
179
 
176
180
  ```ruby
177
181
  get '/sag/*/zu/*' do
178
- # passt auf /sag/hallo/zu/welt
182
+ # passt z.B. auf /sag/hallo/zu/welt
179
183
  params[:splat] # => ["hallo", "welt"]
180
184
  end
181
185
 
@@ -224,21 +228,25 @@ Abgleich mit den Routen modifiziert wird.
224
228
 
225
229
  ### Bedingungen
226
230
 
227
- An Routen können eine Vielzahl von Bedingungen angehängt werden, die erfüllt
231
+ An Routen können eine Vielzahl von Bedingungen geknüpft werden, die erfüllt
228
232
  sein müssen, damit der Block ausgeführt wird. Möglich wäre etwa eine
229
- Einschränkung des User-Agents:
233
+ Einschränkung des User-Agents über die interne Bedingung `:agent`:
230
234
 
231
235
  ```ruby
232
236
  get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
233
237
  "Du verwendest Songbird Version #{params[:agent][0]}"
234
238
  end
239
+ ```
235
240
 
241
+ Wird Songbird als Browser nicht verwendet, springt Sinatra zur nächsten Route:
242
+
243
+ ```ruby
236
244
  get '/foo' do
237
245
  # passt auf andere Browser
238
246
  end
239
247
  ```
240
248
 
241
- Andere mitgelieferte Bedingungen sind `host_name` und `provides`:
249
+ Andere mitgelieferte Bedingungen sind `:host_name` und `:provides`:
242
250
 
243
251
  ```ruby
244
252
  get '/', :host_name => /^admin\./ do
@@ -254,12 +262,12 @@ get '/', :provides => ['rss', 'atom', 'xml'] do
254
262
  end
255
263
  ```
256
264
 
257
- Es können auch andere Bedingungen relativ einfach hinzugefügt werden:
265
+ Eigene Bedingungen können relativ einfach hinzugefügt werden:
258
266
 
259
267
  ```ruby
260
- set(:probability) { |value| condition { rand <= value } }
268
+ set(:wahrscheinlichkeit) { |value| condition { rand <= value } }
261
269
 
262
- get '/auto_gewinnen', :probability => 0.1 do
270
+ get '/auto_gewinnen', :wahrscheinlichkeit => 0.1 do
263
271
  "Du hast gewonnen!"
264
272
  end
265
273
 
@@ -308,7 +316,6 @@ einen Rack-Rückgabewert, einen Rack-Body oder einen HTTP-Status-Code handelt:
308
316
  Block nur mit Strings als Übergabewerte aufruft.
309
317
  * Ein Fixnum, das den Status-Code festlegt.
310
318
 
311
-
312
319
  Damit lässt sich relativ einfach Streaming implementieren:
313
320
 
314
321
  ```ruby
@@ -370,16 +377,17 @@ get %r{^(?!/index$)} do
370
377
  # ...
371
378
  end
372
379
  ```
380
+
373
381
  ## Statische Dateien
374
382
 
375
- Statische Dateien werden aus dem `./public`-Ordner ausgeliefert. Es ist möglich,
383
+ Statische Dateien werden im `./public`-Ordner erwartet. Es ist möglich,
376
384
  einen anderen Ort zu definieren, indem man die `:public_folder`-Option setzt:
377
385
 
378
386
  ```ruby
379
387
  set :public_folder, File.dirname(__FILE__) + '/static'
380
388
  ```
381
389
 
382
- Zu beachten ist, dass der Ordnername public nicht Teil der URL ist. Die Datei
390
+ Zu beachten ist, dass der Ordnername `public` nicht Teil der URL ist. Die Datei
383
391
  `./public/css/style.css` ist unter `http://example.com/css/style.css` zu finden.
384
392
 
385
393
  Um den `Cache-Control`-Header mit Informationen zu versorgen, verwendet man
@@ -426,7 +434,8 @@ get '/' do
426
434
  end
427
435
  ```
428
436
 
429
- Für alle Templates können auch generelle Einstellungen festgelegt werden:
437
+ Für alle Templates können auch Einstellungen, die für alle Routen gelten,
438
+ festgelegt werden:
430
439
 
431
440
  ```ruby
432
441
  set :haml, :format => :html5
@@ -443,7 +452,7 @@ Einstellungen:
443
452
 
444
453
  <dl>
445
454
  <dt>locals</dt>
446
- <dd>Liste von lokalen Variablen, die and das Dokument weitergegeben werden.
455
+ <dd>Liste von lokalen Variablen, die an das Dokument weitergegeben werden.
447
456
  Praktisch für Partials:
448
457
 
449
458
  <tt>erb "<%= foo %>", :locals => {:foo => "bar"}</tt></dd>
@@ -453,7 +462,7 @@ Einstellungen:
453
462
  auf <tt>settings.default_encoding</tt>.</dd>
454
463
 
455
464
  <dt>views</dt>
456
- <dd>Ordner, aus dem die Templates heraus geladen werden. Voreingestellt auf
465
+ <dd>Ordner, aus dem die Templates geladen werden. Voreingestellt auf
457
466
  <tt>settings.views</tt>.</dd>
458
467
 
459
468
  <dt>layout</dt>
@@ -464,7 +473,7 @@ Einstellungen:
464
473
  <tt>erb :index, :layout => !request.xhr?</tt></dd>
465
474
 
466
475
  <dt>content_type</dt>
467
- <dd>Content-Type den das Template ausgibt. Voreinstellung hängt von der
476
+ <dd>Content-Typ den das Template ausgibt. Voreinstellung hängt von der
468
477
  Templatesprache ab.</dd>
469
478
 
470
479
  <dt>scope</dt>
@@ -478,6 +487,7 @@ Einstellungen:
478
487
  den Renderer, der für das Template verwendet wird:
479
488
 
480
489
  <tt>set :rdoc, :layout_engine => :erb</tt></dd>
490
+
481
491
  <dt>layout_options</dt>
482
492
  <dd>Besondere Einstellungen, die nur für das Rendering verwendet werden:
483
493
 
@@ -1045,8 +1055,8 @@ Templates eingesetzt.
1045
1055
 
1046
1056
  ### Templates mit `yield` und verschachtelte Layouts
1047
1057
 
1048
- Ein Layout ist üblicherweise ein Template, dass ein `yield` aufruft. Ein solches
1049
- Template kann entweder wie oben beschrieben über die `:template` option
1058
+ Ein Layout ist üblicherweise ein Template, das ein `yield` aufruft. Ein solches
1059
+ Template kann entweder wie oben beschrieben über die `:template` Option
1050
1060
  verwendet werden oder mit einem Block gerendert werden:
1051
1061
 
1052
1062
  ``` ruby
@@ -1130,7 +1140,9 @@ verwendet. Durch `:layout => false` kann das Ausführen verhindert werden:
1130
1140
 
1131
1141
  ```ruby
1132
1142
  get '/' do
1133
- haml :index, :layout => request.xhr?
1143
+ haml :index, :layout => !request.xhr?
1144
+ # !request.xhr? prüft, ob es sich um einen asynchronen Request handelt.
1145
+ # wenn nicht, dann verwende ein Layout (negiert durch !)
1134
1146
  end
1135
1147
  ```
1136
1148
 
@@ -1194,8 +1206,8 @@ after do
1194
1206
  end
1195
1207
  ```
1196
1208
 
1197
- Filter können optional auch mit einem Muster ausgestattet werden, welches auf
1198
- den Request-Pfad passen muss, damit der Filter ausgeführt wird:
1209
+ Filter können optional auch mit einem Muster ausgestattet werden, das auf den
1210
+ Request-Pfad passen muss, damit der Filter ausgeführt wird:
1199
1211
 
1200
1212
  ```ruby
1201
1213
  before '/protected/*' do
@@ -1278,7 +1290,7 @@ wählen, damit sich alle Instanzen der Applikation dasselbe Session-Secret
1278
1290
  teilen:
1279
1291
 
1280
1292
  ```ruby
1281
- set :session_secret, 'super secret'
1293
+ set :session_secret, 'super_geheimes_Gegeimnis'
1282
1294
  ```
1283
1295
 
1284
1296
  Zur weiteren Konfiguration kann man einen Hash mit Optionen in den `sessions`
@@ -1296,7 +1308,7 @@ Zum sofortigen Stoppen eines Request in einem Filter oder einer Route:
1296
1308
  halt
1297
1309
  ```
1298
1310
 
1299
- Der Status kann beim Stoppen auch angegeben werden:
1311
+ Der Status kann beim Stoppen mit angegeben werden:
1300
1312
 
1301
1313
  ```ruby
1302
1314
  halt 410
@@ -1347,8 +1359,9 @@ gefunden wird.
1347
1359
 
1348
1360
  ### Eine andere Route ansteuern
1349
1361
 
1350
- Manchmal entspricht `pass` nicht den Anforderungen, wenn das Ergebnis einer
1351
- anderen Route gefordert wird. Um das zu erreichen, lässt sich `call` nutzen:
1362
+ Wenn nicht zu einer anderen Route gesprungen werden soll, sondern nur das
1363
+ Ergebnis einer anderen Route gefordert wird, kann `call` für einen internen
1364
+ Request verwendet werden:
1352
1365
 
1353
1366
  ```ruby
1354
1367
  get '/foo' do
@@ -1369,16 +1382,13 @@ Wenn der Request innerhalb derselben Applikations-Instanz aufgerufen und keine
1369
1382
  Kopie der Instanz erzeugt werden soll, kann `call!` anstelle von `call`
1370
1383
  verwendet werden.
1371
1384
 
1372
- Die Rack-Spezifikationen enthalten weitere Informationen zu `call`.
1373
-
1374
1385
  ### Body, Status-Code und Header setzen
1375
1386
 
1376
- Es ist möglich und empfohlen, den Status-Code sowie den Response-Body mit
1377
- einem Returnwert in der Route zu setzen. In manchen Situationen kann es jedoch
1378
- sein, dass der Body an irgendeiner anderen Stelle während der Ausführung
1379
- gesetzt wird. Das lässt sich mit der Helfer-Methode `body` bewerkstelligen.
1380
- Wird `body` verwendet, lässt sich der Body jederzeit über diese Methode
1381
- aufrufen:
1387
+ Es ist möglich und empfohlen, den Status-Code sowie den Response-Body mit einem
1388
+ Returnwert in der Route zu setzen. In manchen Situationen kann es jedoch sein,
1389
+ dass der Body an anderer Stelle während der Ausführung gesetzt werden soll.
1390
+ Dafür kann man die Helfer-Methode `body` einsetzen. Ist sie gesetzt, kann sie zu
1391
+ einem späteren Zeitpunkt aufgerufen werden:
1382
1392
 
1383
1393
  ```ruby
1384
1394
  get '/foo' do
@@ -1430,7 +1440,7 @@ end
1430
1440
  ```
1431
1441
 
1432
1442
  Damit lassen sich Streaming-APIs realisieren, sog.
1433
- [Server Sent Events](http://dev.w3.org/html5/eventsource/) die als Basis für
1443
+ [Server Sent Events](http://dev.w3.org/html5/eventsource/), die als Basis für
1434
1444
  [WebSockets](http://en.wikipedia.org/wiki/WebSocket) dienen. Ebenso können sie
1435
1445
  verwendet werden, um den Durchsatz zu erhöhen, wenn ein Teil der Daten von
1436
1446
  langsamen Ressourcen abhängig ist.
@@ -1987,6 +1997,7 @@ Schutzmechanismen zu deaktivieren:
1987
1997
  ```ruby
1988
1998
  set :protection, :except => [:path_traversal, :session_hijacking]
1989
1999
  ```
2000
+
1990
2001
  #### Mögliche Einstellungen
1991
2002
 
1992
2003
  <dl>
@@ -2010,8 +2021,9 @@ set :protection, :except => [:path_traversal, :session_hijacking]
2010
2021
  Inline-, View- und öffentliche Verzeichnis des Projekts festzustellen.</dd>
2011
2022
 
2012
2023
  <dt>bind</dt>
2013
- <dd>IP-Address, an die gebunden wird (Standardwert: <tt>0.0.0.0</tt>). Wird
2014
- nur für den eingebauten Server verwendet.</dd>
2024
+ <dd>IP-Address, an die gebunden wird (Standardwert: <tt>0.0.0.0</tt>
2025
+ <em>oder</em> <tt>localhost</tt>). Wird nur für den eingebauten Server
2026
+ verwendet.</dd>
2015
2027
 
2016
2028
  <dt>default_encoding</dt>
2017
2029
  <dd>Das Encoding, falls keines angegeben wurde. Standardwert ist
@@ -2080,8 +2092,8 @@ set :protection, :except => [:path_traversal, :session_hijacking]
2080
2092
 
2081
2093
  <dt>server</dt>
2082
2094
  <dd>Server oder Liste von Servern, die als eingebaute Server zur Verfügung
2083
- stehen. Standardmäßig auf <tt>[‘thin’, ‘mongrel’, ‘webrick’]</tt>
2084
- voreingestellt. Die Anordnung gibt die Priorität vor.</dd>
2095
+ stehen. Die Reihenfolge gibt die Priorität vor, die Voreinstellung hängt von
2096
+ der verwendenten Ruby Implementierung ab.</dd>
2085
2097
 
2086
2098
  <dt>sessions</dt>
2087
2099
  <dd>Sessions auf Cookiebasis mittels
@@ -2134,7 +2146,7 @@ und `"test"` werden Templates automatisch gecached.
2134
2146
  Um die Anwendung in einer anderen Umgebung auszuführen kann man die `-e`
2135
2147
  Option verwenden:
2136
2148
 
2137
- ```
2149
+ ```shell
2138
2150
  ruby my_app.rb -e [ENVIRONMENT]
2139
2151
  ```
2140
2152
 
@@ -2187,7 +2199,7 @@ end
2187
2199
 
2188
2200
  bekommt man dieses:
2189
2201
 
2190
- ```
2202
+ ```shell
2191
2203
  Au weia, etwas Schlimmes ist passiert
2192
2204
  ```
2193
2205
 
@@ -2426,7 +2438,7 @@ end
2426
2438
 
2427
2439
  Starte mit:
2428
2440
 
2429
- ```
2441
+ ```shell
2430
2442
  ruby mein_app.rb
2431
2443
  ```
2432
2444
 
@@ -2441,7 +2453,7 @@ run MeineApp
2441
2453
 
2442
2454
  Starte:
2443
2455
 
2444
- ```
2456
+ ```shell
2445
2457
  rackup -p 4567
2446
2458
  ```
2447
2459
 
@@ -2637,8 +2649,8 @@ end
2637
2649
 
2638
2650
  Im Anfrage-Scope befindet man sich:
2639
2651
 
2640
- * In get/head/post/put/delete-Blöcken
2641
- * In before/after-Filtern
2652
+ * In get, head, post, put, delete, options, patch, link und unlink Blöcken
2653
+ * In before und after Filtern
2642
2654
  * In Helfer-Methoden
2643
2655
  * In Templates
2644
2656
 
@@ -2668,7 +2680,7 @@ eingebunden](http://github.com/sinatra/sinatra/blob/master/lib/sinatra/main.rb
2668
2680
 
2669
2681
  Sinatra-Anwendungen können direkt von der Kommandozeile aus gestartet werden:
2670
2682
 
2671
- ```
2683
+ ```shell
2672
2684
  ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-h HOST] [-s HANDLER]
2673
2685
  ```
2674
2686
 
@@ -2688,67 +2700,52 @@ Die Optionen sind:
2688
2700
  Die folgenden Versionen werden offiziell unterstützt:
2689
2701
 
2690
2702
  <dl>
2691
- <dt>Ruby 1.8.7</dt>
2692
- <dd>1.8.7 wird vollständig unterstützt, aber solange nichts dagegen spricht,
2693
- wird ein Update auf 1.9.2 oder ein Umstieg auf JRuby/Rubinius empfohlen.
2694
- Unterstützung für 1.8.7 wird es mindestens bis Sinatra 2.0 und Ruby 2.0
2695
- geben, es sei denn, dass der unwahrscheinliche Fall eintritt und 1.8.8
2696
- rauskommt. Doch selbst dann ist es eher wahrscheinlich, dass 1.8.7 weiterhin
2697
- unterstützt wird. <b>Ruby 1.8.6 wird nicht mehr unterstützt.</b> Soll Sinatra
2698
- unter 1.8.6 eingesetzt werden, muss Sinatra 1.2 verwendet werden, dass noch
2699
- bis zum Release von Sinatra 1.4.0 fortgeführt wird.</dd>
2700
-
2701
- <dt>Ruby 1.9.2</dt>
2702
- <dd>1.9.2 wird voll unterstützt und empfohlen. Version 1.9.2p0 sollte nicht
2703
- verwendet werden, da unter Sinatra immer wieder Segfaults auftreten.
2704
- Unterstützung wird es mindestens bis zum Release von Ruby 1.9.4/2.0 geben und
2705
- das letzte Sinatra Release für 1.9 wird so lange unterstützt, wie das Ruby
2706
- Core-Team 1.9 pflegt.</dd>
2707
-
2708
- <dt>Ruby 1.9.3</dt>
2709
- <dd>1.9.3 wird vollständig unterstützt und empfohlen. Achtung, bei einem
2710
- Wechsel zu 1.9.3 werden alle Sessions ungültig.</dd>
2711
-
2712
- <dt>Rubinius</dt>
2713
- <dd>Rubinius (rbx >= 1.2.4) wird offiziell unter Einbezug aller Templates
2714
- unterstützt. Die kommende 2.0 Version wird ebenfalls unterstützt, samt 1.9
2715
- Modus.</dd>
2716
-
2717
- <dt>JRuby</dt>
2718
- <dd>JRuby wird offiziell unterstützt (JRuby >= 1.6.7). Probleme mit
2719
- Template- Bibliotheken Dritter sind nicht bekannt. Falls JRuby zum Einsatz
2720
- kommt, sollte aber darauf geachtet werden, dass ein JRuby-Rack-Handler zum
2721
- Einsatz kommt – die Thin und Mongrel Web-Server werden bisher nicht
2722
- unterstütz. JRubys Unterstützung für C-Erweiterungen sind zur Zeit ebenfalls
2723
- experimenteller Natur, betrifft im Moment aber nur die RDiscount, Redcarpet,
2724
- RedCloth und [[Yajl]] Templates.</dd>
2703
+ <dt>Ruby 1.8.7</dt>
2704
+ <dd>1.8.7 wird vollständig unterstützt, ein Wechsel zu JRuby oder Rubinius wird
2705
+ aber empfohlen. Ruby 1.8.7 wird noch bis Sinatra 2.0 unterstützt werden. Frühere
2706
+ Versionen von Ruby sind nicht kompatibel mit Sinatra.</dd>
2707
+
2708
+ <dt>Ruby 1.9.2</dt>
2709
+ <dd>1.9.2 wird mindestens bis Sinatra 1.5 voll unterstützt. Version 1.9.2p0
2710
+ sollte nicht verwendet werden, da unter Sinatra immer wieder Segfaults
2711
+ auftreten.</dd>
2712
+
2713
+ <dt>Ruby 1.9.3</dt>
2714
+ <dd>1.9.3 wird vollständig unterstützt und empfohlen. Achtung, bei einem
2715
+ Upgrade von einer früheren Version von Ruby zu Ruby 1.9.3 werden alle Sessions
2716
+ ungültig. Ruby 1.9.3 wird bis Sinatra 2.0 unterstützt werden.</dd>
2717
+
2718
+ <dt>Rubinius</dt>
2719
+ <dd>Rubinius (Version >= 2.x) wird offiziell unterstützt. Es wird empfohlen, den
2720
+ <a href="http://puma.io">Puma Server</a> zu installieren (<tt>gem install puma
2721
+ </tt>)</dd>
2722
+
2723
+ <dt>JRuby</dt>
2724
+ <dd>Aktuelle JRuby Versionen werden offiziell unterstützt. Es wird empfohlen,
2725
+ keine C-Erweiterungen zu verwenden und als Server Trinidad zu verwenden
2726
+ (<tt>gem install trinidad</tt>).</dd>
2725
2727
  </dl>
2726
2728
 
2727
- Weiterhin werden wir die kommende Ruby-Versionen im Auge behalten.
2728
-
2729
2729
  Die nachfolgend aufgeführten Ruby-Implementierungen werden offiziell nicht von
2730
2730
  Sinatra unterstützt, funktionieren aber normalerweise:
2731
2731
 
2732
2732
  * Ruby Enterprise Edition
2733
2733
  * Ältere Versionen von JRuby und Rubinius
2734
- * MacRuby, Maglev, IronRuby
2735
- * Ruby 1.9.0 und 1.9.1 (wird jedoch nicht empfohlen, s.o.)
2736
-
2734
+ * MacRuby (<tt>gem install control_tower</tt> wird empfohlen), Maglev, IronRuby
2735
+ * Ruby 1.9.0 und 1.9.1
2737
2736
 
2738
2737
  Nicht offiziell unterstützt bedeutet, dass wenn Sachen nicht funktionieren,
2739
2738
  wir davon ausgehen, dass es nicht an Sinatra sondern an der jeweiligen
2740
- Implentierung liegt.
2739
+ Implementierung liegt.
2741
2740
 
2742
2741
  Im Rahmen unserer CI (Kontinuierlichen Integration) wird bereits ruby-head
2743
- (das kommende Ruby 2.0.0) und 1.9.4 mit eingebunden. Da noch alles im Fluss
2744
- ist, kann zur Zeit für nichts garantiert werden. Es kann aber erwartet werden,
2745
- dass Ruby 2.0.0p0 und 1.9.4p0 von Sinatra unterstützt werden wird.
2742
+ (das kommende Ruby 2.1.0) mit eingebunden. Es kann davon ausgegangen
2743
+ werden, dass Sinatra Ruby 2.1.0 vollständig unterstützen wird.
2746
2744
 
2747
- Sinatra sollte auf jedem Betriebssystem laufen, dass den gewählten Ruby-
2748
- Interpreter unterstützt.
2745
+ Sinatra sollte auf jedem Betriebssystem laufen, dass einen funktionierenden
2746
+ Ruby-Interpreter aufweist.
2749
2747
 
2750
- Sinatra wird aktuell nicht unter Cardinal, SmallRuby, BleuRuby oder
2751
- irgendeiner Version von Ruby vor 1.8.7 laufen.
2748
+ Sinatra läuft aktuell nicht unter Cardinal, SmallRuby, BlueRuby oder Ruby <= 1.8.7.
2752
2749
 
2753
2750
  ## Der neuste Stand (The Bleeding Edge)
2754
2751
 
@@ -2756,7 +2753,7 @@ Um auf dem neusten Stand zu bleiben, kann der Master-Branch verwendet werden.
2756
2753
  Er sollte recht stabil sein. Ebenso gibt es von Zeit zu Zeit prerelease Gems,
2757
2754
  die so installiert werden:
2758
2755
 
2759
- ```
2756
+ ```shell
2760
2757
  gem install sinatra --pre
2761
2758
  ```
2762
2759
 
@@ -2768,7 +2765,7 @@ nachfolgenden Weg.
2768
2765
 
2769
2766
  Soweit Bundler noch nicht installiert ist:
2770
2767
 
2771
- ```
2768
+ ```shell
2772
2769
  gem install bundler
2773
2770
  ```
2774
2771
 
@@ -2790,16 +2787,16 @@ Gemfile von Sinatra hinzugefügt.
2790
2787
 
2791
2788
  Jetzt kannst du deine Applikation starten:
2792
2789
 
2793
- ```
2790
+ ```shell
2794
2791
  bundle exec ruby myapp.rb
2795
2792
  ```
2796
2793
 
2797
2794
  ### Eigenes Repository
2798
2795
  Um auf dem neuesten Stand von Sinatras Code zu sein, kann eine lokale Kopie
2799
- angelegt werden. Gestartet wird in der Anwendung mit dem `sinatra/lib`- Ordner
2796
+ angelegt werden. Gestartet wird in der Anwendung mit dem `sinatra/lib`-Ordner
2800
2797
  im `LOAD_PATH`:
2801
2798
 
2802
- ```
2799
+ ```shell
2803
2800
  cd myapp
2804
2801
  git clone git://github.com/sinatra/sinatra.git
2805
2802
  ruby -Isinatra/lib myapp.rb
@@ -2820,7 +2817,7 @@ end
2820
2817
 
2821
2818
  Um Sinatra-Code von Zeit zu Zeit zu aktualisieren:
2822
2819
 
2823
- ```
2820
+ ```shell
2824
2821
  cd myproject/sinatra
2825
2822
  git pull
2826
2823
  ```
@@ -2829,7 +2826,7 @@ git pull
2829
2826
 
2830
2827
  Aus der eigenen lokalen Kopie kann nun auch ein globales Gem gebaut werden:
2831
2828
 
2832
- ```
2829
+ ```shell
2833
2830
  git clone git://github.com/sinatra/sinatra.git
2834
2831
  cd sinatra
2835
2832
  rake sinatra.gemspec
@@ -2839,7 +2836,7 @@ rake install
2839
2836
  Falls Gems als Root installiert werden sollen, sollte die letzte Zeile
2840
2837
  folgendermaßen lauten:
2841
2838
 
2842
- ```
2839
+ ```shell
2843
2840
  sudo rake install
2844
2841
  ```
2845
2842
 
@@ -2857,7 +2854,8 @@ SemVer und SemVerTag.
2857
2854
  * [Issue-Tracker](http://github.com/sinatra/sinatra/issues)
2858
2855
  * [Twitter](http://twitter.com/sinatra)
2859
2856
  * [Mailing-Liste](http://groups.google.com/group/sinatrarb)
2860
- * [ #sinatra](irc://chat.freenode.net/#sinatra) auf http://freenode.net
2857
+ * [#sinatra](irc://chat.freenode.net/#sinatra) auf http://freenode.net Es
2858
+ gibt dort auch immer wieder deutschsprachige Entwickler, die gerne weiterhelfen.
2861
2859
  * [Sinatra Book](http://sinatra-book.gittr.com) Kochbuch Tutorial
2862
2860
  * [Sinatra Recipes](http://recipes.sinatrarb.com/) Sinatra-Rezepte aus der
2863
2861
  Community