summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/zorglub/node.rb17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/zorglub/node.rb b/lib/zorglub/node.rb
index c52649b..64e7144 100644
--- a/lib/zorglub/node.rb
+++ b/lib/zorglub/node.rb
@@ -66,12 +66,12 @@ module Zorglub
end
#
def layout! layout
- @options[:layout] = layout
+ @layout = layout
end
#
def layout
- return '' if @options[:layout].nil?
- File.join(self.class.layout_base_path, @options[:layout])+ext
+ return nil if @layout.nil?
+ File.join(self.class.layout_base_path, @layout)+ext
end
#
def view! view
@@ -227,13 +227,13 @@ module Zorglub
meth, *args = env['PATH_INFO'].sub(/^\//,'').split(/\//)
meth||= 'index'
puts "=> #{meth}(#{args.join ','})" if app.opt :debug
- node = self.new env, {:layout=>layout,:view=>r(meth),:method=>meth,:args=>args}
+ node = self.new env, {:view=>r(meth),:method=>meth,:args=>args}
return error_404 node if not node.respond_to? meth
node.realize!
end
#
def partial meth, *args
- node = self.new nil, {:layout=>nil,:view=>r(meth),:method=>meth.to_s,:args=>args}
+ node = self.new nil, {:partial=>true,:view=>r(meth),:method=>meth.to_s,:args=>args}
return error_404 node if not node.respond_to? meth
node.feed!
node.content
@@ -259,6 +259,7 @@ module Zorglub
@response = Rack::Response.new
@cli_vals ={}
@engine = self.class.engine
+ @layout = ( options[:partial] ? nil : self.class.layout )
@static = self.class.static
self.class.cli_vals.each do |s,v| cli_val s, *v end
end
@@ -308,13 +309,13 @@ module Zorglub
def compile_page!
e, @options[:ext] = app.engine_proc_ext @engine, @options[:ext]
v, l, debug = view, layout, app.opt(:debug)
- puts " * "+(File.exists?(l) ? 'use layout' : 'not found layout')+" : "+l if debug
+ puts " * "+((l and File.exists?(l)) ? 'use layout' : 'not found layout')+" : "+(l ? l : '') if debug
puts " * "+(File.exists?(v) ? 'use view ' : 'not found view ')+" : "+v if debug
- @state = (@options[:layout].nil? ? :partial : :view)
+ @state = (@options[:partial] ? :partial : :view)
@content, mime = e.call v, self if e and File.exists? v
@mime = mime unless mime.nil?
@state = :layout
- @content, mime = e.call l, self if e and File.exists? l
+ @content, mime = e.call l, self if e and l and File.exists? l
@mime = mime unless mime.nil?
end
#