Sinatra'yı Ruby'de kullanma

click fraud protection

Bu makalenin önceki makalesinde makale dizisi, Sinatra'nın ne olduğu hakkında konuştuk. Bu yazıda, bazı Sinatra özelliklerine değinen bazı gerçek fonksiyonel Sinatra kodlarına bakacağız, hepsi bu serideki gelecek makalelerde derinlemesine incelenecek.

Başlamadan önce, devam etmeli ve Sinatra'yı kurmalısın. Sinatra'yı kurmak diğer mücevherler kadar kolaydır. Sinatra'nın birkaç bağımlılığı var, ancak önemli bir şey yok ve herhangi bir platformda kurarken herhangi bir sorun yaşamamalısınız.

$ gem install sinatra

Selam Dünya!

Sinatra "Merhaba dünya" uygulaması şok edici derecede basit. Gerekli çizgiler, shebang ve boşluk dahil değil, sadece üç satır. Bu, uygulamanızın sadece küçük bir kısmı değil, bir Rails uygulamasındaki bir denetleyici gibi, hepsi bu. Fark edebileceğiniz başka bir şey, bir uygulama oluşturmak için Rails jeneratörü gibi bir şey çalıştırmanız gerekmediğidir. Aşağıdaki kodu yeni bir Ruby dosyasına yapıştırmanız yeterlidir.

#! / usr / bin / env yakut
'rubygems' gerektir
'sinatra' gerektir
Yapmak
'Selam Dünya!'
son
instagram viewer

Tabii ki bu çok kullanışlı bir program değil, sadece "Merhaba dünya", ama Sinatra'daki daha da kullanışlı uygulamalar çok daha büyük değil. Peki, bu küçük Web uygulamasını nasıl çalıştırıyorsunuz? Bir çeşit kompleks komut / sunucu Komut? Hayır, sadece dosyayı çalıştırın. Bu sadece bir Ruby programı, çalıştırın!

inatra $ ./hello.rb
== Sinatra / 0.9.4, Mongrel'in desteğiyle 4567'de sahne aldı

Henüz çok heyecan verici değil. Sunucu başlatıldı ve 4567 bağlantı noktasına bağlı, bu yüzden devam edin ve Web tarayıcınızı http://localhost: 4567/. "Merhaba dünya" mesajınız. Web uygulamaları Ruby'de daha önce hiç bu kadar kolay olmamıştı.

Parametreleri Kullanma

Şimdi biraz daha ilginç bir şeye bakalım. Sizi adıyla selamlayan bir uygulama yapalım. Bunu yapmak için bir parametre kullanmamız gerekecek. Sinatra'daki parametreler her şey gibidir - basit ve anlaşılır.

#! / usr / bin / env yakut
'rubygems' gerektir
'sinatra' gerektir
'/ merhaba /: ad' yap
"Merhaba # {params [: ad]}!"
son

Bu değişikliği yaptıktan sonra Sinatra uygulamasını yeniden başlatmanız gerekir. Ctrl-C ile öldürün ve tekrar çalıştırın. (Bunun bir yolu var, ama gelecekteki bir makalede buna bakacağız.) Şimdi parametreler basit. Adında bir işlem yaptık /hello/:name. Bu sözdizimi, URL'lerin nasıl görüneceğini taklit ediyor, bu nedenle http://localhost: 4567 / merhaba / Adınız eylemde görmek için.

/hello bölümü, URL'nin yaptığınız istek kısmının bir bölümü ile eşleşir ve : adı verdiğiniz diğer metinleri alır ve parametreler anahtarın altındaki karma : adı. Parametreler bu kadar kolaydır. Elbette regexp tabanlı parametreler de dahil olmak üzere bunlarla yapabileceğiniz çok daha fazla şey var, ancak neredeyse her durumda ihtiyacınız olan tek şey bu.

HTML Ekleme

Son olarak, bu uygulamayı biraz HTML ile genişletelim. Sinatra, URL işleyicinizden aldığı her şeyi web tarayıcısına iade edecektir. Şimdiye kadar, sadece bir metin dizesi döndürüyoruz, ancak oraya sorunsuz bir şekilde HTML ekleyebiliriz. Burada Rayları kullandığımız gibi ERB'yi kullanacağız. Başka (tartışmasız daha iyi) seçenekler var, ama bu Ruby ile birlikte geldiği gibi belki de en tanıdık ve burada iyi olacak.

İlk olarak Sinatra, Yerleşim eğer varsa. Bu düzen görünümünde bir Yol ver Beyan. Bu getiri ifadesi, oluşturulan belirli görünümün çıktısını yakalayacaktır. Bu, çok basit bir şekilde mizanpajlar oluşturmanıza olanak tanır. Sonunda, Merhaba Gerçek merhaba mesajını oluşturan görünüm. Bu, erb: merhaba yöntem çağrısı. Ayrı görünüm dosyaları olmadığını fark edeceksiniz. Olabilir, ancak böyle küçük bir uygulama için, tüm kodu tek bir dosyada tutmak en iyisidir. Dosya sonunda dosyalar ayrılmış olmasına rağmen.

#! / usr / bin / env yakut
'rubygems' gerektir
'sinatra' gerektir
'/ merhaba /: ad' yap
@name = params [: ad]
erb: merhaba
son
__SON__
@@ Yerleşim





@@ Merhaba

Merhaba !

İşte buyur. Görünümler de dahil olmak üzere yaklaşık 15 satırlık kodda eksiksiz, işlevsel bir merhaba dünya uygulaması var. Aşağıdaki makalelerde rotalara, verileri nasıl depolayabileceğiniz ve alabileceğinize ve HAML ile nasıl daha iyi görünümler elde edeceğinize daha yakından bakacağız.

instagram story viewer