Skip to content

Instantly share code, notes, and snippets.

@rhyhann
Created November 30, 2008 15:58
Show Gist options
  • Save rhyhann/30463 to your computer and use it in GitHub Desktop.
Save rhyhann/30463 to your computer and use it in GitHub Desktop.
# Generations
%w(
rubygems dm-core
haml dm-aggregates
sinatra dm-is-paginated
uv dm-is-slugged
ostruct dm-tags
).each {|n| require(n)}
configure do
DataMapper.setup(:default, "sqlite3:///#{Dir.pwd}/db.sqlite3")
Blog = OpenStruct.new(
:title => 'My fancy blog!',
:subtitle => 'Some catchy subtitle',
:per_page => 20,
:theme => :default,
:track_code => :track_code
)
DataMapper.auto_migrate!
set :views, "#{Dir.pwd}/#{Blog.theme}"
end
# Model
class Post
include DataMapper::Resource
property :id ,Serial
property :name ,String
property :content,Text
has_tags(
:tags,
:categories
)
is :slugged, :source => :name
is_paginated
def self.paged(page)
paginated(
:page => page.to_i,
:per_page => Blog.per_page
)
end
def self.slugged(slug)
all.each {|n| return(n) if n.slug == slug}
end
end
# Controller
get '/:page' do
@posts_count, @posts = Post.paged((params[:page] || 1))
haml :posts
end
get '/post/:post' do
@post = Post.slugged(params[:post])
haml :posts
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment