Ankstesniame šio straipsnio straipsnyje straipsnių serija, mes kalbėjome apie tai, kas yra Sinatra. Šiame straipsnyje apžvelgsime tikrą realų „Sinatra“ kodą, paliesdami keletą „Sinatra“ funkcijų, kurios visos bus nuodugniai išnagrinėtos būsimuose šios serijos straipsniuose.
Prieš pradėdami darbą, turite eiti į priekį ir įdiegti „Sinatra“. „Sinatra“ įdiegti taip paprasta, kaip ir bet kurį kitą brangakmenį. „Sinatra“ turi keletą priklausomybių, tačiau nėra nieko svarbaus, todėl neturėtų kilti problemų diegiant ją bet kurioje platformoje.
$ perlas įdiegti sinatra
Labas pasauli!
Sinatros „Sveikas pasaulis“ programa yra šokiruojančiai paprasta. Neįskaitant būtinų linijų, briaunų ir tarpo, tai tik trys eilutės. Tai nėra tik maža jūsų programos dalis, pavyzdžiui, Rails programos valdiklis, tai yra visas dalykas. Kitas dalykas, kurį galite pastebėti, yra tai, kad norint sugeneruoti programą nereikėjo paleisti nieko panašaus, kaip „Rails“ generatorius. Tiesiog įklijuokite šį kodą į naują „Ruby“ failą ir viskas.
#! / usr / bin / env rubinas
reikalauti 'rubygems'
reikalauti 'sinatra'
gauti '/' daryti
'Labas pasauli!'
galas
Žinoma, tai nėra labai naudinga programa, tai tiesiog „Sveikas pasaulis“, tačiau dar daugiau naudingų programų Sinatroje nėra daug didesnės. Taigi, kaip paleisti šią mažą žiniatinklio programą? Kažkoks kompleksas scenarijus / serveris komanda? Ne, tiesiog paleiskite failą. Tai tik „Ruby“ programa, paleiskite ją!
inatra $ ./hello.rb
== „Sinatra / 0.9.4“ užėmė „4567“ versiją, kurdama atsarginę „Mongrel“ versiją
Dar nelabai jaudina. Pradėtas serveris ir prijungtas prie 4567 prievado, taigi eikite į priekį ir nukreipkite savo interneto naršyklę į http://localhost: 4567/. Yra jūsų pranešimas „Sveikas pasaulis“. Anksčiau „Ruby“ žiniatinklio programos dar nebuvo tokios lengvos.
Parametrų naudojimas
Taigi pažvelkime į ką nors šiek tiek įdomesnio. Padarysime programą, kuri sveikins jus vardu. Norėdami tai padaryti, turėsime naudoti parametrą. Parametrai Sinatroje yra kaip ir visa kita - paprasti ir aiškūs.
#! / usr / bin / env rubinas
reikalauti 'rubygems'
reikalauti 'sinatra'
gauti '/ labas /: vardas' daryti
"Sveiki, # {params [: name]}!"
galas
Kai atliksite šį pakeitimą, turėsite iš naujo paleisti „Sinatra“ programą. Užmuškite jį naudodami „Ctrl-C“ ir paleiskite dar kartą. (Yra kelias aplink tai, bet mes pažvelgsime į tai būsimame straipsnyje.) Dabar parametrai yra aiškūs. Mes atlikome veiksmą, pavadintą /hello/:name. Ši sintaksė imituoja, kaip atrodys URL, todėl eikite į http://localhost: 4567 / labas / Tavo vardas pamatyti tai veikiant.
/hello dalis atitinka tą URL dalį, kurią pateikėte atlikdami užklausą, ir :vardas sugers bet kurį kitą jūsų duotą tekstą ir įdės į params maišos po raktu :vardas. Parametrai yra tiesiog tokie lengvi. Aišku, jūs galite padaryti daug daugiau, įskaitant parametrus, paremtus regexp, tačiau tai yra viskas, ko jums prireiks beveik kiekvienu atveju.
HTML pridėjimas
Galiausiai, paskleiskime šią programą šiek tiek HTML. Sinatra grąžins viską, ką gali gauti iš jūsų URL tvarkyklės, į interneto naršyklę. Kol kas mes ką tik grąžinome teksto eilutę, bet ten be problemų galime pridėti HTML. Čia naudosime ERB, kaip ir „Rails“. Yra ir kitų (be abejo, geresnių) variantų, tačiau tai, ko gero, labiausiai pažįstama, nes jis ateina su „Ruby“, ir čia puikiai tiks.
Pirmiausia Sinatra pateiks vaizdą, pavadintą išdėstymas jei toks egzistuoja. Šis išdėstymo vaizdas turėtų būti derlius pareiškimas. Ši pelno ataskaita užfiksuos konkretaus pateikto rodinio išvestį. Tai leidžia labai paprastai kurti maketus. Pagaliau mes turime Sveiki rodinys, kuris generuoja tikrąjį sveikinimo pranešimą. Tai vaizdas, kuris buvo pateiktas naudojant erb: labas metodo skambutis. Pastebėsite, kad nėra atskirų peržiūros failų. Gali būti, tačiau tokiai mažai programai geriau laikyti visą kodą viename faile. Nors bylos pabaigoje failai pateikiami atskirai.
#! / usr / bin / env rubinas
reikalauti 'rubygems'
reikalauti 'sinatra'
gauti '/ labas /: vardas' daryti
@name = params [: name]
erb: labas
galas
__GALAS__
@@ išdėstymas
@@ SveikiSveiki, !
Ir ten jūs tai turite. Mes turime pilną, funkcionalią „hello world“ programą su maždaug 15 kodo eilučių su vaizdais. Toliau pateiktuose straipsniuose atidžiau pažvelgsime į maršrutus, kaip galite saugoti ir nuskaityti duomenis bei kaip padaryti geresnius vaizdus naudojant HAML.