lib/sanford/template_engine.rb in sanford-0.16.1 vs lib/sanford/template_engine.rb in sanford-0.17.0

- old
+ new

@@ -11,11 +11,11 @@ @opts = opts || {} @source_path = Pathname.new(@opts['source_path'].to_s) @logger = @opts['logger'] || Sanford::NullLogger.new end - def render(path, service_handler, locals) + def render(name, service_handler, locals) raise NotImplementedError end def ==(other_engine) if other_engine.kind_of?(TemplateEngine) @@ -28,15 +28,20 @@ end class NullTemplateEngine < TemplateEngine - def render(path, service_handler, locals) - template_file = self.source_path.join(path).to_s - unless File.exists?(template_file) - raise ArgumentError, "template file `#{template_file}` does not exist" + def render(template_name, service_handler, locals) + paths = Dir.glob(self.source_path.join("#{template_name}*")) + if paths.size > 1 + raise ArgumentError, "#{template_name.inspect} matches more than one " \ + "file, consider using a more specific template name" end - File.read(template_file) + if paths.size < 1 + raise ArgumentError, "a template file named #{template_name.inspect} " \ + "does not exist" + end + File.read(paths.first.to_s) end end end