diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb index d853e88c..08cb8a3f 100644 --- a/lib/sinatra/base.rb +++ b/lib/sinatra/base.rb @@ -769,9 +769,16 @@ module Sinatra # named name.ext, where ext is registered on engine. def find_template(views, name, engine) yield ::File.join(views, "#{name}.#{@preferred_extension}") - Tilt.mappings.each do |ext, engines| - next unless ext != @preferred_extension and engines.include? engine - yield ::File.join(views, "#{name}.#{ext}") + + if Tilt.respond_to?(:mappings) + Tilt.mappings.each do |ext, engines| + next unless ext != @preferred_extension and engines.include? engine + yield ::File.join(views, "#{name}.#{ext}") + end + else + Tilt.default_mapping.extensions_for(engine).each do |ext| + yield ::File.join(views, "#{name}.#{ext}") unless ext == @preferred_extension + end end end diff --git a/sinatra.gemspec b/sinatra.gemspec index 16734a0a..26d2e25f 100644 --- a/sinatra.gemspec +++ b/sinatra.gemspec @@ -14,6 +14,6 @@ Gem::Specification.new 'sinatra', Sinatra::VERSION do |s| s.rdoc_options = %w[--line-numbers --inline-source --title Sinatra --main README.rdoc --encoding=UTF-8] s.add_dependency 'rack', '~> 1.4' - s.add_dependency 'tilt', '~> 1.3', '>= 1.3.4' + s.add_dependency 'tilt', '>= 1.3', '< 3' s.add_dependency 'rack-protection', '~> 1.4' end diff --git a/test/markdown_test.rb b/test/markdown_test.rb index d74bc703..c41072cb 100644 --- a/test/markdown_test.rb +++ b/test/markdown_test.rb @@ -69,8 +69,12 @@ MarkdownTest = proc do end # Will generate RDiscountTest, KramdownTest, etc. -Tilt.mappings['md'].each do |t| +map = Tilt.respond_to?(:lazy_map) ? Tilt.lazy_map['md'].map(&:first) + : Tilt.mappings['md'] + +map.each do |t| begin + t = eval(t) if t.is_a? String t.new { "" } klass = Class.new(Test::Unit::TestCase) { define_method(:engine) { t }} klass.class_eval(&MarkdownTest)