Sinatra | |
---|---|
Basisdaten | |
Entwickler | Blake Mizerany (Maintainer: Konstantin Haase) |
Aktuelle Version | 2.1.0 (5. September 2020) |
Betriebssystem | plattformübergreifend |
Programmiersprache | 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.
Einige bedeutende Firmen verwenden Sinatra, zum Beispiel Apple, die BBC, LinkedIn, Engine Yard, Heroku, GitHub und Songbird. Heroku stellt einen großen Teil der Finanzierung von Sinatra zur Verfügung.
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:
#!/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
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
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, Astaire, Cuba, Padrino (basierend auf Sinatra), Pakyow, Renee
- PHP: Fat-Free, Fitzgerald, Glue, klein, Laravel, Limonade, MiMViC, Silex, Slim
- JavaScript: Express, Picard, Roundabout, Sammy
- CoffeeScript: Zappa
- Python: Bottle, Denied (was an April Fools joke), Flask, itty, Juno
- Erlang (Programmiersprache): Fresh, Spooky
- Groovy: Graffiti, Ratpack
- Scala: Scalatra, BlueEyes
- .NET: Martin, Nancy, Nina
- Perl: Dancer, Mojolicious
- Java: Spark, Napalm, Htmleasy
- Haskell: Bird, Loli
- Fancy: Sinatra.fy
- Bash: Astley, sh.inatra
- C: Bogart
- F#: Frank
- Lua: Mercury, Orbit
- Mirah: Shatner
- Objective-C: RCRouter
- Vala: Valatra
- Nim: Jester
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ß.
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
- ↑ Sinatra: Getting Started. In: sinatrarb.com. Abgerufen am 29. Januar 2012 (englisch).
- ↑ Open Source software used by Apple. Abgerufen am 20. Januar 2012.
- ↑ BBC Zeitgeist. (Nicht mehr online verfügbar.) Archiviert vom 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.
- ↑ JRubyfying LinkedIn’s Front-end. Abgerufen am 29. Januar 2012 (englisch).
- ↑ Sinatra in The Wild. Abgerufen am 29. Januar 2012.
- ↑ Sinatra: About. Abgerufen am 29. Januar 2012.
- ↑ Almost Sinatra
- ↑ Astaire
- ↑ Cuba
- ↑ Padrino
- ↑ Pakyow
- ↑ Renee
- ↑ Fat-Free
- ↑ Fitzgerald
- ↑ Glue (Memento des 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.
- ↑ klein
- ↑ Laravel
- ↑ Limonade
- ↑ MiMViC (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.
- ↑ Silex (Memento des 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.
- ↑ Slim
- ↑ Express
- ↑ Picard
- ↑ Roundabout
- ↑ Sammy
- ↑ Zappa
- ↑ Bottle (Memento des 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.
- ↑ Denied (Memento des 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.
- ↑ Armin Ronacher: April 1st Post Mortem
- ↑ Flask
- ↑ itty
- ↑ Juno
- ↑ Fresh
- ↑ Spooky
- ↑ Graffiti
- ↑ Ratpack
- ↑ Scalatra
- ↑ BlueEyes
- ↑ Martin
- ↑ Nancy
- ↑ Nina
- ↑ Mojolicious::Lite
- ↑ Spark
- ↑ Napalm (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.
- ↑ Htmleasy
- ↑ Bird
- ↑ Loli (Memento des 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.
- ↑ Sinatra.fy
- ↑ Astley
- ↑ sh.inatra
- ↑ Bogart
- ↑ Frank (Memento des 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.
- ↑ Mercury
- ↑ Orbit
- ↑ Shatner
- ↑ RCRouter
- ↑ Valatra
- ↑ Jester
- ↑ "Sinatra Loves Dancer"