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