Sinatra (Software)

Sinatra

Basisdaten

Entwickler | Blake Mizerany (Maintainer: Konstantin Haase)
Aktuelle Version | 2.1.0
(5. September 2020)
Betriebssystem | plattformübergreifend
Programmier­sprache | Ruby
Kategorie | Webframework
Lizenz | MIT-Lizenz
deutschsprachig | nein
www.sinatrarb.com

Sinatra ist ein freies Webframework und eine in Ruby geschriebene domänenspezifische Sprache. Es ist eine Alternative zu anderen Ruby-Frameworks wie Ruby on Rails, Nitro, Camping und Rango. Sinatra setzt das Rack-Webserver-Interface voraus.

Sinatra wurde von Blake Mizerany entworfen und entwickelt und soll kompakt und flexibel sein. Es folgt nicht dem MVC-Muster, das in anderen Frameworks, wie zum Beispiel Ruby on Rails, zur Anwendung kommt. Stattdessen strebt Sinatra an, Webapplikationen schnell und mit minimalem Aufwand entwickeln zu können.[1]

Einige bedeutende Firmen verwenden Sinatra, zum Beispiel Apple[2], die BBC[3], LinkedIn[4], Engine Yard, Heroku, GitHub und Songbird[5]. Heroku stellt einen großen Teil der Finanzierung von Sinatra zur Verfügung[6].

Sinatra wurde 2007 erstellt und unter eine Open-Source-Lizenz gestellt.

## Beispiele

[Bearbeiten | Quelltext bearbeiten]

### Beispiel 1: eine Webapp in einer Datei

[Bearbeiten | Quelltext bearbeiten]

Eine Hallo-Welt Webapplikation kann beispielsweise so aussehen:

#!/usr/bin/env ruby
require 'sinatra'

get '/' do
redirect to('/hello/World')
end

get '/hello/:name' do
"Hello #{params[:name]}!"
end

Gestartet wird ein solches Programm mit:

$ ruby test.rb

Öffnet man im Browser:

http://localhost:4567

Kann man die Ausgabe Hello World! im Browser-Fenster sehen. Ruft man hingegen die URL

http://localhost:4567/hello/Ada

auf, so kann man die Ausgabe Hello Ada! im Browser-Fenster sehen.

### Beispiel 2: HTML-Code in der Webapp

[Bearbeiten | Quelltext bearbeiten]

Es ist möglich, HTML-Code mit ERuby (erb) in den Quellcode einzubauen:

#!/usr/bin/env ruby
require 'sinatra'

get '/' do
erb :main
end

__END__
@@main
<!doctype html>
<html lang="en">
<head>
<title>Welcome page</title>
<meta charset="utf-8">
</head>
<body>
<header>
<h1>Welcome World!</h1>
</header>
<p>Welcome to this Website!
</p>
</body>
</html>

## Von Sinatra beeinflusste Frameworks

[Bearbeiten | Quelltext bearbeiten]

Sinatra hat etliche Microframeworks in Ruby und anderen Programmiersprachen inspiriert. Normalerweise versuchen solche Frameworks, die domänenspezifische Sprache (DSL) von Sinatra möglichst gut nachzubilden.

* Ruby: Almost Sinatra,[7] Astaire,[8] Cuba,[9] Padrino (basierend auf Sinatra),[10] Pakyow,[11] Renee[12]
* PHP: Fat-Free,[13] Fitzgerald,[14] Glue,[15] klein,[16] Laravel,[17] Limonade,[18] MiMViC,[19] Silex,[20] Slim[21]
* JavaScript: Express,[22] Picard,[23] Roundabout,[24] Sammy[25]
* CoffeeScript: Zappa[26]
* Python: Bottle,[27] Denied[28] (was an April Fools joke[29]), Flask,[30] itty,[31] Juno[32]
* Erlang (Programmiersprache): Fresh,[33] Spooky[34]
* Groovy: Graffiti,[35] Ratpack[36]
* Scala: Scalatra,[37] BlueEyes[38]
* .NET: Martin,[39] Nancy,[40] Nina[41]
* Perl: Dancer, Mojolicious[42]
* Java: Spark,[43] Napalm,[44] Htmleasy[45]
* Haskell: Bird,[46] Loli[47]
* Fancy: Sinatra.fy[48]
* Bash: Astley,[49] sh.inatra[50]
* C: Bogart[51]
* F#: Frank[52]
* Lua: Mercury,[53] Orbit[54]
* Mirah: Shatner[55]
* Objective-C: RCRouter[56]
* Vala: Valatra[57]
* Nim: Jester[58]

Im Juli 2011 diskreditierte ein Individuum oder eine Gruppe, die sich als Mitglieder des Sinatra-Teams ausgaben, das Dancer-Projekt. Dieser Vorfall hat dazu geführt, dass das Sinatrateam öffentlich das Dancer-Projekt und andere Nachbauten guthieß.[59]

## Literatur

[Bearbeiten | Quelltext bearbeiten]

* Alan Harris, Konstantin Haase: Sinatra: Up And Running (First ed.). O’Reilly Media, 2012, ISBN 978-1-4493-0423-2, S. 120.

## Weblinks

[Bearbeiten | Quelltext bearbeiten]

* Sinatra Website auf sinatrarb.com
* Sinatra’s GitHub repository auf github.com
* Video of Blake Mizerany and Adam Wiggins. auf rubyconf2008.confreaks.com

## Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]

1. ↑ Sinatra: Getting Started. In: sinatrarb.com. Abgerufen am 29. Januar 2012 (englisch).
2. ↑ Open Source software used by Apple. Abgerufen am 20. Januar 2012.
3. ↑ BBC Zeitgeist. Archiviert vom Original (nicht mehr online verfügbar) am 28. November 2010; abgerufen am 29. Januar 2012.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/thechangelog.com
4. ↑ JRubyfying LinkedIn’s Front-end. Abgerufen am 29. Januar 2012 (englisch).
5. ↑ Sinatra in The Wild. Abgerufen am 29. Januar 2012.
6. ↑ Sinatra: About. Abgerufen am 29. Januar 2012.
7. ↑ Almost Sinatra
8. ↑ Astaire
9. ↑ Cuba
10. ↑ Padrino
11. ↑ Pakyow
12. ↑ Renee
13. ↑ Fat-Free
14. ↑ Fitzgerald
15. ↑ Glue (Memento des Originals vom 8. Juli 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/glue.d-xp.com
16. ↑ klein
17. ↑ Laravel
18. ↑ Limonade
19. ↑ MiMViC@1@2Vorlage:Toter Link/mimvic.googlecode.com (Seite nicht mehr abrufbar, festgestellt im Dezember 2018. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
20. ↑ Silex (Memento des Originals vom 30. April 2015 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/silex-project.org
21. ↑ Slim
22. ↑ Express
23. ↑ Picard
24. ↑ Roundabout
25. ↑ Sammy
26. ↑ Zappa
27. ↑ Bottle (Memento des Originals vom 10. Januar 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/bottle.paws.de
28. ↑ Denied (Memento des Originals vom 4. September 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/denied.immersedcode.org
29. ↑ Armin Ronacher: April 1st Post Mortem
30. ↑ Flask
31. ↑ itty
32. ↑ Juno
33. ↑ Fresh
34. ↑ Spooky
35. ↑ Graffiti
36. ↑ Ratpack
37. ↑ Scalatra
38. ↑ BlueEyes
39. ↑ Martin
40. ↑ Nancy
41. ↑ Nina
42. ↑ Mojolicious::Lite
43. ↑ Spark
44. ↑ Napalm@1@2Vorlage:Toter Link/github.com (Seite nicht mehr abrufbar, festgestellt im Dezember 2018. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
45. ↑ Htmleasy
46. ↑ Bird
47. ↑ Loli (Memento des Originals vom 14. Februar 2010 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/github.com
48. ↑ Sinatra.fy
49. ↑ Astley
50. ↑ sh.inatra
51. ↑ Bogart
52. ↑ Frank (Memento des Originals vom 13. Oktober 2011 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/frankfs.net
53. ↑ Mercury
54. ↑ Orbit
55. ↑ Shatner
56. ↑ RCRouter
57. ↑ Valatra
58. ↑ Jester
59. ↑ "Sinatra Loves Dancer"