U prethodnom članku u ovom niz članaka, razgovarali smo o tome što je Sinatra. U ovom ćemo članku pogledati neke stvarne funkcionalne šifre Sinatre, dotaknuvši se nekoliko značajki Sinatre, a sve ćemo detaljno istražiti u narednim člancima iz ove serije.
Prije nego što započnete, morat ćete nastaviti naprijed i instalirati Sinatru. Instalacija Sinatre je jednostavna kao i bilo koji drugi dragulj. Sinatra ima nekoliko ovisnosti, ali ništa veliko i ne biste trebali imati problema s instaliranjem na bilo koju platformu.
$ gem instalirati sinatru
Pozdrav svijete!
Sinatra "Hello world" aplikacija je šokantno jednostavna. Ne uključuje tražene linije, shebang i razmak, samo su tri crte. Ovo nije samo neki mali dio vaše aplikacije, poput kontrolera u Rails aplikaciji, ovo je cijela stvar. Još jedna stvar koju ćete primijetiti je da vam nije bilo potrebno pokrenuti ništa poput generatora Rails za generiranje aplikacije. Jednostavno zalijepite sljedeći kôd u novu Ruby datoteku i gotovi ste.
#! / usr / bin / env rubin
zahtijevaju "rubygems"
zahtijevati 'sinatru'
dobiti '/' učiniti
'Pozdrav svijete!'
kraj
To, naravno, nije baš koristan program, već je samo "Hello world", ali čak i korisnije aplikacije u Sinatri nisu puno veće. Pa, kako pokrenuti ovu malenu web aplikaciju? Neka vrsta kompleksa skripta / poslužitelj naredba? Samo, pokrenite datoteku. To je samo Ruby program, pokrenite ga!
inatra $ ./hello.rb
== Sinatra / 0.9.4 zauzeo je fazu 4567 za razvoj s rezervnim kopijama iz Mongrela
Nije još uzbudljivo. Pokrenuo je poslužitelj i vezan za port 4567, pa nastavite i pokažite web pregledniku http://localhost: 4567/. Tu je tvoja "Hello world" poruka. Web aplikacije nikad prije nisu bile tako jednostavne u Rubyju.
Korištenje parametara
Pa pogledajmo nešto malo zanimljivije. Napravimo aplikaciju koja vas pozdravlja po imenu. Da bismo to učinili, trebat ćemo koristiti parametar. Parametri u Sinatri su kao i svi ostali - jednostavni i izravni.
#! / usr / bin / env rubin
zahtijevaju "rubygems"
zahtijevati 'sinatru'
dobiti '/ zdravo /: ime' učiniti
"Pozdrav # {params [: ime]}!"
kraj
Nakon što napravite ovu promjenu, morat ćete ponovo pokrenuti aplikaciju Sinatra. Ubijte ga Ctrl-C i pokrenite ponovo. (Postoji način da se to zaobiđe, ali to ćemo pogledati u budućem članku.) Sada su parametri jasni. Izveli smo akciju pod nazivom /hello/:name. Ta sintaksa oponaša kako će izgledati URL-ovi, pa idite na http://localhost: 4567 / zdravo / tvoje ime da ga vidim u akciji.
/hello dio odgovara onom dijelu URL-a iz zahtjeva koji ste postavili i :Ime apsorbirat će svaki drugi tekst koji mu date i staviti u polje parametri hash pod ključem :Ime. Parametri su jednostavno tako jednostavni. Naravno, možete učiniti puno više s ovim, uključujući parametre temeljene na regexp-u, ali to je sve što će vam trebati u gotovo svakom slučaju.
Dodavanje HTML-a
Za kraj, preusmjerimo ovu aplikaciju s malo HTML-a. Sinatra će vratiti sve što dobije od vašeg URL-a u web preglednik. Do sada smo samo vraćali niz teksta, ali tamo možemo dodati neki HTML bez problema. Ovdje ćemo koristiti ERB, baš kao što se koristi u Railsima. Postoje i druge (vjerojatno bolje) opcije, ali ovo je možda najpoznatije, kao što to dolazi s Rubyjem, i ovdje će se dobro snaći.
Prvo, Sinatra će prikazati pogled pod nazivom raspored ako postoji. Ovaj izgled izgleda trebao bi imati a prinos izjava. Ova izjava o prinosu zabilježit će ishod specifičnog prikaza koji se prikazuje. To vam omogućuje stvaranje jednostavnih izgleda. Napokon imamo a zdravo prikaz koji generira stvarnu pozdravnu poruku. Ovo je pogled prikazan pomoću erb: zdravo poziv metoda. Primijetit ćete da ne postoje zasebne datoteke prikaza. Može postojati, ali za tako malu aplikaciju najbolje je zadržati sav kod u jednoj datoteci. Iako su prikazi odvojeni na kraju datoteke.
#! / usr / bin / env rubin
zahtijevaju "rubygems"
zahtijevati 'sinatru'
dobiti '/ zdravo /: ime' učiniti
@name = params [: ime]
erb: zdravo
kraj
__KRAJ__
@@ izgled
@@ zdravoPozdrav !
I tu ga imate. Imamo kompletnu, funkcionalnu hello svijet aplikaciju u oko 15 redaka koda, uključujući prikaze. U sljedećim ćemo člancima detaljnije pogledati rute, kako možete pohraniti i dohvatiti podatke te kako bolje pregledavati HAML.