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("/")