Skip to content

Instantly share code, notes, and snippets.

@benburkert
Forked from BrianTheCoder/gist:34586
Created December 11, 2008 18:54
Show Gist options
  • Save benburkert/34821 to your computer and use it in GitHub Desktop.
Save benburkert/34821 to your computer and use it in GitHub Desktop.
# run very flat apps with merb -I <app file>.
# use_orm :datamapper
use_test :rspec
require 'haml'
require 'compass'
Merb::Config.use { |c|
c[:framework] = { :public => [Merb.root / "public", nil] }
c[:session_store] = 'none'
c[:exception_details] = true
c[:log_level] = :debug # or error, warn, info or fatal
c[:log_stream] = STDOUT
# or use file for loggine:
# c[:log_file] = Merb.root / "log" / "merb.log"
c[:reload_classes] = true
c[:reload_templates] = true
c[:use_mutex] = false
# c[:compass] = {
# :stylesheets => Merb.root / 'stylesheets',
# :compiled_stylesheets => Merb.root / 'public' / 'stylesheets'
# }
}
Merb::Router.prepare do
match('/new').defer_to do |request, params|
respond('new')
end
match('/edit').defer_to do |request, params|
respond('edit')
end
match('/').defer_to do |request, params|
respond('index')
end
end
def render(name,object=nil)
@@templates ||= {}
template = (@@template[name] ||= Haml::Engine.new(File.open( Merb.root / "templates" / "#{name}.html.haml").read)
template.render(object)
end
def respond(template_name, object = nil)
[ 200,
{'Content-Type' => 'text/html'},
render('layout', render(template_name))
]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment