0
0
Fork 0
zero-blog/page.rb

96 lines
1.7 KiB
Ruby
Raw Normal View History

class Blog < Sinatra::Base
set $settings
# never ever again load the Rack::Session::Pool here
# or the admin pool get's broken and you get thrown out after every request!
# do that in the config.ru, if you have to!
register Sinatra::CompassSupport
get '/' do
2011-07-11 20:01:23 +02:00
if params.has_key? 'page'
@current_page = params['page'].to_i
2011-07-11 20:01:23 +02:00
else
@current_page = 1
2011-07-11 20:01:23 +02:00
end
@page_count = Post.page_count
@posts = Post.get_page(@current_page - 1)
2011-06-24 15:40:37 +02:00
haml :index
end
get '/:year/:month/:day/:title.html' do
@post = Post.find_of_day(
Time.mktime(params[:year], params[:month], params[:day])
).select do |post|
params[:title] == post.title.gsub(/ /, '_').downcase
end
if @post.count > 0
@post = @post[0]
haml :post_single
else
404
end
end
2011-07-05 19:02:26 +02:00
get '/post/:id' do
@post = Post.get_released(params[:id])
if @post.nil?
404
2011-07-05 19:02:26 +02:00
else
haml :post_single
end
end
2011-07-05 19:18:11 +02:00
get '/post/:id/comment.json' do
Post.get_released(params[:id]).acknowledged_comments.to_json
end
2011-08-09 22:18:34 +02:00
get '/atom.xml' do
@posts = Post.get_page(0)
haml :atom, :layout => false
end
2011-06-24 15:40:37 +02:00
get '/stylesheet.css' do
scss :stylesheet
end
2011-06-24 14:21:02 +02:00
get '/404' do
404
end
error 404 do
'where am i? is somebody here? hello?'
end
get '/502' do
502
end
error 502 do
'oh no, i think i wet myself'
end
2011-06-24 15:40:37 +02:00
def link_to display, link
"<a href=\"${link}\">#{display}</a>"
end
2011-06-30 21:16:10 +02:00
def markup content, markup
markup = markup.to_sym
2011-06-30 21:16:10 +02:00
if respond_to? markup
send markup, content
else
content
end
end
def domain path = ''
$settings[:domain] + path
end
def title
$settings[:title]
end
def subtitle
$settings[:subtitle]
end
end