lib/hobo/dryml.rb in hobo-0.8.3 vs lib/hobo/dryml.rb in hobo-0.8.4
- old
+ new
@@ -56,16 +56,16 @@
controller_name = view.controller.class.name.underscore.sub(/_controller$/, "")
page_renderer(view, [], "#{controller_name}/#{EMPTY_PAGE}")
end
- def page_renderer_for_template(view, template)
- page_renderer(view, template.locals.keys, template.path_without_extension)
+ def page_renderer_for_template(view, local_names, template)
+ page_renderer(view, local_names, template.path_without_extension, template.filename)
end
- def page_renderer(view, local_names=[], page=nil)
+ def page_renderer(view, local_names=[], page=nil, filename=nil)
if RAILS_ENV == "development"
clear_cache
Taglib.clear_cache
end
@@ -77,20 +77,19 @@
controller_class = view.controller.class
@tag_page_renderer_classes[controller_class.name] ||=
make_renderer_class("", page, local_names, DEFAULT_IMPORTS, included_taglibs)
@tag_page_renderer_classes[controller_class.name].new(page, view)
else
- template_path = view.finder.pick_template(page, "dryml")
-
- mtime = File.mtime(template_path)
+ filename ||= view._pick_template(page + ".dryml").filename
+ mtime = File.mtime(filename)
renderer_class = @renderer_classes[page]
# do we need to recompile?
- if (!renderer_class or # nothing cached?
- (local_names - renderer_class.compiled_local_names).any? or # any new local names?
+ if (!renderer_class || # nothing cached?
+ (local_names - renderer_class.compiled_local_names).any? || # any new local names?
renderer_class.load_time < mtime) # cache out of date?
- renderer_class = make_renderer_class(File.read(template_path), template_path, local_names,
+ renderer_class = make_renderer_class(File.read(filename), filename, local_names,
DEFAULT_IMPORTS, included_taglibs)
renderer_class.load_time = mtime
@renderer_classes[page] = renderer_class
end
renderer_class.new(page, view)
@@ -104,10 +103,10 @@
"#{controller.camelize}Controller".constantize
end
def controller_taglibs(controller_class)
- (controller_class.respond_to?(:included_taglibs) && controller_class.included_taglibs) || []
+ controller_class.try.included_taglibs || []
end
def subsite_taglib(page)
parts = page.split("/")