Webanwendung mit Sinatra

Die Ruby-Bibliotheken verwalten Sie mittels RubyGem. Um Web-Anwendungen mit Sinatra zu programmieren, richten Sie mit dem Kommando gem install sinatra das Sinatra-gem ein. Listing 2 zeigt eine vollwertige Web-Anwendung, die Sie nach dem Start mit ruby webapp.rb im Browser unter der Adresse http://localhost:4567/ aufrufen.

Listing 2

require 'sinatra'
puts Sinatra::VERSION
get '/' do
  'Hello world!'
end

Datenbank befüllen

Jetzt müssen Sie die Messdaten noch geeignet ablegen, wozu in der Regel eine Datenbank dient. Bei SQLite handelt es sich um eine solche, die für einfache Zwecke oft genügt und trotzdem SQL versteht. Sie richten das gute Stück aus dem Debian-Paket sqlite3 ein. Um es aus Ruby heraus zu verwenden, benötigen Sie zudem das Ruby-gem sqlite3 benötigt.

Eine neue Datenbankdatei db.sqlite3, die zum Beispiel die Temperaturwerte zu den jeweiligen Zeitpunkten aufnimmt, erstellen Sie mit dem Befehl

$ sqlite3 db.sqlite3 'create table temperatures(zeit integer, t real)

Das Ruby-Programm in Listing 3 greift mit Hilfe von ActiveRecord auf diese Datenbank zu und füllt sie mit den Werten, die es aus einer CSV-Datei wetter.csv einliest. Die Zeilen in der CSV-Datei wiederum enthalten die Daten der Wetterstation im Format aus Listing 1.

Das Schöne an ActiveRecord: Es kümmert sich automatisch um alles, was man für das Lesen und Schreiben von Datenbanken braucht. So erkennt es in Listing 3 an den Namen der Klasse Temperature, dass es in der Datenbank die Tabelle temperatures verwenden muss, und am Namen der Variablen (zeit und t), in welche Spalten der Datenbanktabelle es schreiben muss.

Listing 3

require 'csv'
require 'active_record'
data = CSV.read('weather.csv', { col_sep: ':' })
ActiveRecord::Base.establish_connection({"adapter"=>"sqlite3", "database"=>"db.sqlite3"})
class Temperature < ActiveRecord::Base
  validates_uniqueness_of :zeit
end
data.each do |d|
  werte = { zeit: d[0], t: d[11] }
  Temperature.create werte
end

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare
Gute Arbeit
W. Spitzner (unangemeldet), Sonntag, 26. April 2015 18:49:47
Ein/Ausklappen

Eine genauere Beschreibung des Ablaufes mit den Befehlsfolgen wäre schön gewesen. So muß man das Rad noch einmal neu erfinden. Für Anfänger völlig ungeeignet.
Schade..


Bewertung: 271 Punkte bei 69 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...