Небольшое веб приложение на Sinatra.

Пользуясь оставшим временем, которое мне дал военкомат, разработаем/рассмотрим небольшое веб приложение на Sinatra. Sinatra — это вебфреймворк на языке Ruby.В некоторых источниках пишется, что это даже лучщий GUI каркас для приложений на Ruby, представляя всю его мощь. Поэтому задача была такая – написать веб приложение, которое будет расчитывать количество дней до прибития домой из армии. Алгоритм очень прост. Привожу его тут:

 t0=Time.now #задаем настоящее время
 t1=Time.local(2012,10,01)# точка рассчета
 sec0=t1-t0 #вычисляем разницу в секундах
 sec1=sec0.round #округляем
 @dni=(((sec1/60)/60))/24 #вычисляем количество дней

Теперь нам нужно этот код использовать в самом фреймворке. Для этого сначала читаем мануал Sinatra, даже не нужно углубляться(пока не нужно) — информация на главной странице нам уже достаточна. Для начала надо установить gem sinatra. А далее записываем:

require 'rubygems'
require 'sinatra'

get '/hi' do
  "Hello World!"
end

в файл application.rb и сохраняем его. При выполнения файла,

$ruby application.rb
Sinatra has taken the stage ...
Listening on localhost:4567

мы можем запустить в браузере по адресу localhost:4567 наше приложение.
Теперь когда все удачно установлено и запускается, впихиваем наш код в само веб приложение.

require 'rubygems'
require 'sinatra'
require 'haml'

get '/' do	
 t0=Time.now
 t1=Time.local(2012,10,01)
 sec0=t1-t0
 sec1=sec0.round
 @dni=(((sec1/60)/60))/24
 haml :index
end


Здесь я добавил Haml( язык разметки для упрощёной генерации XHTML) чтобы быстро и легко создавать html странички. Дальше создаем папку views в корне нашего приложения(до сих пор оно состояло всего из одного файла) и добавляем туда файл index.haml — нужно обратить внимание — здесь haml a не html. Так как обрабатываеть его будет Haml. И его содержимое:

%html
%head
	%title Herbi
	%link(rel="stylesheet" type="text/css" href="css/mystyle.css")
%body
	#header 
		%h1 Herbiden gelmeye 
	#article
		%p= "#{@dni}"
	%h2 gun galib.
	#footer
		%h4 Sayt Sinatra ve Haml ile yazilib.
		%h4 Biotin 2011-2012.

Как видно в коде, добавил css, поместив его в новые вложенные папки public/css в корне директории. Собвстенно это все.
Чтобы указать время локализации(Баку) выполняем в консоли:

heroku config:add TZ=Asia/Baku --app "название нашего приложения на heroku"

Рабочую версию разместил на heroku по адресу herbi.heroku.com. А также дополнительно код проекта со всеми файлами и с css разместил на github.com (смотри на странице about us & projects ).
  • 0
  • 04 октября 2011, 00:27
  • Biotin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.