Make Sinatra compatible with Tilt 2

This commit is contained in:
Yegor Timoschenko 2014-07-22 18:15:34 +07:00
parent 8ce3ce5744
commit e8ea770953
3 changed files with 16 additions and 5 deletions

View File

@ -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

View File

@ -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

View File

@ -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)