From c74cecb5bee0767f97a5fa4f63e464f5a73d8695 Mon Sep 17 00:00:00 2001 From: Steve Klabnik Date: Thu, 15 Mar 2012 22:04:26 -0600 Subject: [PATCH] Refactor render to class --- config.ru | 2 ++ render.rb | 13 +++++++++++++ resources/blog_resource.rb | 12 +++++------- resources/shoes_homepage.rb | 6 +----- 4 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 render.rb diff --git a/config.ru b/config.ru index 2f31c72..0529640 100644 --- a/config.ru +++ b/config.ru @@ -5,6 +5,8 @@ require 'webmachine/adapters/rack' Dir["resources/*"].each {|f| require "./#{f}" } +require "./render" + Shoes = Webmachine::Application.new do |app| app.routes do add [], ShoesHomepage diff --git a/render.rb b/render.rb new file mode 100644 index 0000000..7061e6a --- /dev/null +++ b/render.rb @@ -0,0 +1,13 @@ +require 'haml' + +class Render + def initialize(view) + @view = view + end + + def render(locals={}) + Haml::Engine.new(File.read("views/layout.html.haml")).render do + Haml::Engine.new(File.read("views/#{@view}.html.haml")).render(Object.new, locals) + end + end +end diff --git a/resources/blog_resource.rb b/resources/blog_resource.rb index 24e7b97..7f2da99 100644 --- a/resources/blog_resource.rb +++ b/resources/blog_resource.rb @@ -19,12 +19,10 @@ def resource_exists? def to_html return "INDEX" unless @post - Haml::Engine.new(File.read("views/layout.html.haml")).render do - Haml::Engine.new(File.read("views/post.html.haml")).render(Object.new, - :contents => @post.output, - :title => @post.metadata["title"], - :date => @post.metadata["date"] - ) - end + Render.new(:post).render( + :contents => @post.output, + :title => @post.metadata["title"], + :date => @post.metadata["date"] + ) end end diff --git a/resources/shoes_homepage.rb b/resources/shoes_homepage.rb index a38fbcd..967e5a1 100644 --- a/resources/shoes_homepage.rb +++ b/resources/shoes_homepage.rb @@ -1,9 +1,5 @@ -require 'haml' - class ShoesHomepage < Webmachine::Resource def to_html - Haml::Engine.new(File.read("views/layout.html.haml")).render do - Haml::Engine.new(File.read("views/index.html.haml")).render - end + Render.new(:index).render end end