From 8dd007b3978d855ee3984b3c3f59b3eb4281b8fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Fri, 6 Jan 2012 10:07:38 +0100 Subject: fix haml engine, add spec --- lib/zorglub/engines/haml.rb | 4 ++-- spec/data/view/node0/engines.haml | 1 + spec/node_spec.rb | 6 ++++++ spec/spec_helper.rb | 8 ++++++++ 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 spec/data/view/node0/engines.haml diff --git a/lib/zorglub/engines/haml.rb b/lib/zorglub/engines/haml.rb index a0353f7..458f29a 100644 --- a/lib/zorglub/engines/haml.rb +++ b/lib/zorglub/engines/haml.rb @@ -9,9 +9,9 @@ module Zorglub def self.proc path,obj if Zorglub::Config.engines_cache_enabled key = path.sub Zorglub::Config.root,'' - haml = obj.app.engines_cache[key] ||= ::Haml::Engine.new( File.open(path,'r'){|f| f.read }, Zorglub::Config.haml_options ) + haml = obj.app.engines_cache[key] ||= ::Haml::Engine.new( ::File.open(path,'r'){|f| f.read }, Zorglub::Config.haml_options ) else - haml = ::Haml::Engine.new( File.open(path,'r'){|f| f.read }, Zorglub::Config.haml_options ) + haml = ::Haml::Engine.new( ::File.open(path,'r'){|f| f.read }, Zorglub::Config.haml_options ) end html = haml.render(obj) return html, 'text/html' diff --git a/spec/data/view/node0/engines.haml b/spec/data/view/node0/engines.haml new file mode 100644 index 0000000..b9ea984 --- /dev/null +++ b/spec/data/view/node0/engines.haml @@ -0,0 +1 @@ +%h1="Hello world" diff --git a/spec/node_spec.rb b/spec/node_spec.rb index 701c700..3e1c957 100644 --- a/spec/node_spec.rb +++ b/spec/node_spec.rb @@ -199,6 +199,12 @@ describe Zorglub do r = Node0.my_call '/plain_file' r.body[0].should == "plain file\n" end + # + it "haml engine should work" do + r = Node0.my_call '/engines/haml' + r.body[0].should == "

Hello world

\n" + end + # end # end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2e402a5..a531ce9 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -12,6 +12,7 @@ require 'yaml' # require 'zorglub' require 'zorglub/engines/file' +require 'zorglub/engines/haml' # HASH_PROC = Proc.new { |path,obj| {:path=>path,:layout=>obj.layout,:view=>obj.view,:args=>obj.args,:map=>obj.map}.to_yaml } STATIC_PROC = Proc.new { |path,obj| ["VAL #{obj.value}",'text/static'] } @@ -79,6 +80,13 @@ class Node0 < Zorglub::Node engine :file ext 'txt' end + def engines name + no_layout + case name + when 'haml' + engine :haml + end + end end # class Node1 < Zorglub::Node -- cgit v1.1-2-g2b99