/
app.rb
46 lines (36 loc) · 1.03 KB
/
app.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
require 'rubygems'
require 'sinatra'
require 'ruty'
require 'modules/mxit/mxit'
@@loader = nil
# this gets called before each request is processed
before do
# create Ruty template engine instance
@@loader = Ruty::Loaders::Filesystem.new(:dirname => './views') if @@loader == nil
# Strip the last / from the path
request.env['PATH_INFO'].gsub!(/\/$/, '')
# create mxit object
@mxit = Mxit.new request.env
end
# sample event details link
get '/event_details/:e_uri' do |e_uri|
do_render :coming_soon, :message => "coming soon for #{e_uri}"
end
# sample landing page
get '' do
data = {
:events => [
{ :uri => 1, :name => "Test event 1" },
{ :uri => 2, :name => "Test event 2" }
]
}
do_render :index, data
end
private
# render templates
def do_render(template, obj)
# add global template variables
obj = { :root => @env['SCRIPT_NAME'] + "/", :mxit => @mxit }.merge obj
# use ruty to render templates from symbol name
@@loader.get_template(template.to_s + ".html").render(obj)
end