Používanie Sinatry v Ruby

click fraud protection

V predchádzajúcom článku séria článkov, hovorili sme o tom, čo je Sinatra. V tomto článku sa pozrieme na niektoré skutočné funkčné kódy Sinatra, ktoré sa dotýkajú niekoľkých funkcií Sinatry, ktoré sa podrobne preskúmajú v nadchádzajúcich článkoch tejto série.

Predtým, ako začnete, budete musieť pokračovať a nainštalovať Sinatru. Inštalácia Sinatra je rovnako ľahká ako akýkoľvek iný klenot. Sinatra má niekoľko závislostí, ale nič väčšie a nemali by ste mať žiadne problémy s inštaláciou na akejkoľvek platforme.

$ gem install sinatra

Ahoj, svet!

Aplikácia Sinatra „Hello world“ je šokujúco jednoduchá. Nezahŕňajú potrebné riadky, shebang a medzeru, sú to iba tri riadky. Nejde iba o malú časť vašej aplikácie, napríklad o kontrolér v aplikácii Rails, to je všetko. Ďalšou vecou, ​​ktorú si môžete všimnúť, je, že na generovanie aplikácie nemusíte spúšťať nič ako generátor Rails. Stačí vložiť nasledujúci kód do nového súboru Ruby a máte hotovo.

#! / usr / bin / env ruby
vyžadovať „rubygemy“
vyžadovať 'sinatra'
dostať '/' robiť
"Ahoj, svet!"
koniec
instagram viewer

Toto samozrejme nie je veľmi užitočný program, je to len „Ahoj svet“, ale ešte užitočnejšie aplikácie v Sinatre nie sú oveľa väčšie. Ako teda spúšťate túto malú webovú aplikáciu? Nejaký komplex script / server Príkaz? Nie, stačí spustiť súbor. Je to len program Ruby, spustite ho!

inatra $ ./hello.rb
== Sinatra / 0.9.4 nastúpila do fázy 4567 pre vývoj so zálohou od Mongrel

Zatiaľ nie príliš vzrušujúce. Je spustený server a je viazaný na port 4567, takže choďte do toho a nasmerujte svoj webový prehľadávač http://localhost: 4567/. Je tu vaša správa „Ahoj svet“. Webové aplikácie nikdy predtým v Ruby neboli také ľahké.

Použitie parametrov

Pozrime sa na niečo trochu zaujímavejšie. Vytvorme aplikáciu, ktorá vás pozdraví menom. Ak to chceme urobiť, musíme použiť parameter. Parametre v Sinatre sú ako všetko ostatné - jednoduché a priame.

#! / usr / bin / env ruby
vyžadovať „rubygemy“
vyžadovať 'sinatra'
get '/ ahoj /: meno' robiť
„Dobrý deň # {params [: name]}!“
koniec

Po vykonaní tejto zmeny budete musieť reštartovať aplikáciu Sinatra. Zabite ho pomocou Ctrl-C a znova spustite. (Existuje spôsob, ako to obísť, ale pozrieme sa na to v budúcom článku.) Teraz sú parametre jednoduché. Urobili sme akciu s názvom /hello/:name. Táto syntax napodobňuje, ako budú adresy URL vyzerať, takže choďte na http://localhost: 4567 / ahoj / Vaše meno vidieť to v akcii.

/hello časť sa zhoduje s tou časťou adresy URL, ktorú ste zadali, a :názov absorbuje akýkoľvek iný text, ktorý mu dáte, a vloží ho do params hash pod kľúčom :názov. Parametre sú také ľahké. S nimi samozrejme môžete urobiť omnoho viac, vrátane parametrov založených na regexe, ale toto je všetko, čo budete potrebovať takmer v každom prípade.

Pridávanie HTML

Nakoniec poďme túto aplikáciu rozprestrieť trochou HTML. Sinatra vráti do webového prehľadávača všetko, čo dostane z ovládača URL. Zatiaľ sme práve vracali reťazec textu, ale môžeme tam pridať nejaký HTML bez problémov. Použijeme tu ERB, rovnako ako v Rails. Existujú aj iné (pravdepodobne lepšie) možnosti, ale toto je možno najznámejšie, čo sa týka Ruby, a bude to v poriadku.

Najprv Sinatra vykreslí pohľad s názvom dispozície ak existuje. Toto zobrazenie rozloženia by malo mať výťažok vyhlásenia. Toto vyhlásenie o výnose zachytí výstup konkrétneho vykresľovaného zobrazenia. To vám umožní vytvárať rozloženie veľmi jednoducho. Nakoniec máme a Ahoj zobrazenie, ktoré generuje skutočnú hello správu. Toto je zobrazenie, ktoré bolo poskytnuté pomocou erb: ahoj metóda volania. Všimnite si, že neexistujú žiadne samostatné súbory prezerania. Môže existovať, ale pre tak malú aplikáciu je najlepšie ponechať celý kód v jednom súbore. Aj keď sú názory oddelené na konci súboru.

#! / usr / bin / env ruby
vyžadovať „rubygemy“
vyžadovať 'sinatra'
get '/ ahoj /: meno' robiť
@name = params [: name]
erb: ahoj
koniec
__KONIEC__
@@ layout





@@ Ahoj

Ahoj !

A tu to máte. Máme kompletnú a funkčnú aplikáciu hello world v približne 15 riadkoch kódu vrátane zobrazení. V nasledujúcich článkoch sa bližšie pozrieme na trasy, ako môžete ukladať a získavať údaje a ako robiť lepšie zobrazenia pomocou HAML.

instagram story viewer