Sinatra (Software)
| Sinatra
| |
|---|---|
| [[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]] | |
| Basisdaten
| |
| Maintainer | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Entwickler | Blake Mizerany (Maintainer: Konstantin Haase) |
| Erscheinungsjahr | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Aktuelle Version | 2.1.0 (5. September 2020) |
| Aktuelle Vorabversion | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Betriebssystem | plattformübergreifend |
| Programmiersprache | Ruby |
| Kategorie | Webframework |
| Lizenz | MIT-Lizenz |
| deutschsprachig | ja |
| 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.<ref>Sinatra: Getting Started. In: sinatrarb.com. Abgerufen am 29. Januar 2012 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Einige bedeutende Firmen verwenden Sinatra, zum Beispiel Apple<ref>Open Source software used by Apple. Abgerufen am 20. Januar 2012.</ref>, die BBC<ref>BBC Zeitgeist. Archiviert vom Vorlage:IconExternal (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.</ref>, LinkedIn<ref>JRubyfying LinkedIn’s Front-end. Abgerufen am 29. Januar 2012 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Engine Yard, Heroku, GitHub und Songbird<ref>Sinatra in The Wild. Abgerufen am 29. Januar 2012.</ref>. Heroku stellt einen großen Teil der Finanzierung von Sinatra zur Verfügung<ref>Sinatra: About. Abgerufen am 29. Januar 2012.</ref>.
Sinatra wurde 2007 erstellt und unter eine Open-Source-Lizenz gestellt.
Beispiele
Beispiel 1: eine Webapp in einer Datei
Eine Hallo-Welt Webapplikation kann beispielsweise so aussehen: <syntaxhighlight lang="ruby">
- !/usr/bin/env ruby
require 'sinatra'
get '/' do
redirect to('/hello/World')
end
get '/hello/:name' do
"Hello #{params[:name]}!"
end </syntaxhighlight>Gestartet wird ein solches Programm mit: <syntaxhighlight lang="bash"> $ ruby test.rb </syntaxhighlight>Öffnet man im Browser:<syntaxhighlight lang="bash"> http://localhost:4567 </syntaxhighlight> Kann man die Ausgabe Hello World! im Browser-Fenster sehen. Ruft man hingegen die URL<syntaxhighlight lang="bash"> http://localhost:4567/hello/Ada </syntaxhighlight> auf, so kann man die Ausgabe Hello Ada! im Browser-Fenster sehen.
Beispiel 2: HTML-Code in der Webapp
Es ist möglich, HTML-Code mit ERuby (erb) in den Quellcode einzubauen:
<syntaxhighlight lang="ruby">
- !/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>
Welcome World!
</header>
Welcome to this Website!
</body> </html> </syntaxhighlight>
Von Sinatra beeinflusste Frameworks
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,<ref>Almost Sinatra</ref> Astaire,<ref>Astaire</ref> Cuba,<ref>Cuba</ref> Padrino (basierend auf Sinatra),<ref>Padrino</ref> Pakyow,<ref>Pakyow</ref> Renee<ref>Renee</ref>
- PHP: Fat-Free,<ref>Fat-Free</ref> Fitzgerald,<ref>Fitzgerald</ref> Glue,<ref><templatestyles src="Webarchiv/styles.css" />Glue ( des Vorlage:IconExternal 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.</ref> klein,<ref>klein</ref> Laravel,<ref>Laravel</ref> Limonade,<ref>Limonade</ref> MiMViC,<ref>MiMViC (Seite nicht mehr abrufbar, festgestellt im Dezember 2018. Suche im Internet Archive )Vorlage:Toter Link/archivebot</ref> Silex,<ref><templatestyles src="Webarchiv/styles.css" />Silex ( des Vorlage:IconExternal 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.</ref> Slim<ref>Slim</ref>
- JavaScript: Express,<ref>Express</ref> Picard,<ref>Picard</ref> Roundabout,<ref>Roundabout</ref> Sammy<ref>Sammy</ref>
- CoffeeScript: Zappa<ref>Zappa</ref>
- Python: Bottle,<ref><templatestyles src="Webarchiv/styles.css" />Bottle ( des Vorlage:IconExternal 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.</ref> Denied<ref><templatestyles src="Webarchiv/styles.css" />Denied ( des Vorlage:IconExternal 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.</ref> (was an April Fools joke<ref>Armin Ronacher: April 1st Post Mortem</ref>), Flask,<ref>Flask</ref> itty,<ref>itty</ref> Juno<ref>Juno</ref>
- Erlang (Programmiersprache): Fresh,<ref>Fresh</ref> Spooky<ref>Spooky</ref>
- Groovy: Graffiti,<ref>Graffiti</ref> Ratpack<ref>Ratpack</ref>
- Scala: Scalatra,<ref>Scalatra</ref> BlueEyes<ref>BlueEyes</ref>
- .NET: Martin,<ref>Martin</ref> Nancy,<ref>Nancy</ref> Nina<ref>Nina</ref>
- Perl: Dancer, Mojolicious<ref>Mojolicious::Lite</ref>
- Java: Spark,<ref>Spark</ref> Napalm,<ref>Napalm (Seite nicht mehr abrufbar, festgestellt im Dezember 2018. Suche im Internet Archive )Vorlage:Toter Link/archivebot</ref> Htmleasy<ref>Htmleasy</ref>
- Haskell: Bird,<ref>Bird</ref> Loli<ref><templatestyles src="Webarchiv/styles.css" />Loli ( des Vorlage:IconExternal 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.</ref>
- Fancy: Sinatra.fy<ref>Sinatra.fy</ref>
- Bash: Astley,<ref>Astley</ref> sh.inatra<ref>sh.inatra</ref>
- C: Bogart<ref>Bogart</ref>
- F#: Frank<ref><templatestyles src="Webarchiv/styles.css" />Frank ( des Vorlage:IconExternal 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.</ref>
- Lua: Mercury,<ref>Mercury</ref> Orbit<ref>Orbit</ref>
- Mirah: Shatner<ref>Shatner</ref>
- Objective-C: RCRouter<ref>RCRouter</ref>
- Vala: Valatra<ref>Valatra</ref>
- Nim: Jester<ref>Jester</ref>
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ß.<ref>"Sinatra Loves Dancer"</ref>
Literatur
- Alan Harris, Konstantin Haase: Sinatra: Up And Running (First ed.). O’Reilly Media, 2012, ISBN 978-1-4493-0423-2, S. 120.
Weblinks
- Sinatra Website auf sinatrarb.com
- Sinatra’s GitHub repository auf github.com
- Video of Blake Mizerany and Adam Wiggins. auf rubyconf2008.confreaks.com
Einzelnachweise
<references />
- Seiten mit Skriptfehlern
- Wikipedia:Defekter Dateilink
- Wikipedia:Defekte Weblinks/Ungeprüfte Archivlinks 2018-12
- Wikipedia:Weblink offline IABot
- Wikipedia:Defekte Weblinks/Ungeprüfte Botmarkierungen 2018-12
- Wikipedia:Defekte Weblinks/Ungeprüfte Archivlinks 2019-05
- Ruby (Programmiersprache)
- Freies Webframework
- Freie Server-Software