diff --git a/Gemfile b/Gemfile index 13bee90d..6df880fd 100644 --- a/Gemfile +++ b/Gemfile @@ -59,6 +59,7 @@ if RUBY_ENGINE == "ruby" gem 'sass' gem 'reel-rack' gem 'celluloid', '~> 0.16.0' + gem 'commonmarker', '~> 0.20.0' gem 'simplecov', require: false end diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb index 630ad177..a02fdf0e 100644 --- a/lib/sinatra/base.rb +++ b/lib/sinatra/base.rb @@ -786,15 +786,8 @@ module Sinatra def find_template(views, name, engine) yield ::File.join(views, "#{name}.#{@preferred_extension}") - 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 + Tilt.default_mapping.extensions_for(engine).each do |ext| + yield ::File.join(views, "#{name}.#{ext}") unless ext == @preferred_extension end end diff --git a/sinatra-contrib/lib/sinatra/respond_with.rb b/sinatra-contrib/lib/sinatra/respond_with.rb index 8521ca98..ed788c4b 100644 --- a/sinatra-contrib/lib/sinatra/respond_with.rb +++ b/sinatra-contrib/lib/sinatra/respond_with.rb @@ -173,16 +173,12 @@ module Sinatra settings.template_engines[ext].each { |e| possible << [e, name] } end possible.each do |engine, template| - # not exactly like Tilt[engine], but does not trigger a require - if Tilt.respond_to?(:mappings) - klass = Tilt.mappings[Tilt.normalize(engine)].first - else - begin - klass = Tilt[engine] - rescue LoadError - next - end + begin + klass = Tilt[engine] + rescue LoadError + next end + find_template(settings.views, template, klass) do |file| next unless File.exist? file return settings.rendering_method(engine) << template.to_sym diff --git a/sinatra-contrib/sinatra-contrib.gemspec b/sinatra-contrib/sinatra-contrib.gemspec index 7d0d7852..6f683f05 100644 --- a/sinatra-contrib/sinatra-contrib.gemspec +++ b/sinatra-contrib/sinatra-contrib.gemspec @@ -39,7 +39,7 @@ EOF s.add_dependency "sinatra", version s.add_dependency "mustermann", "~> 1.0" s.add_dependency "backports", ">= 2.8.2" - s.add_dependency "tilt", ">= 1.3", "< 3" + s.add_dependency "tilt", "~> 2.0" s.add_dependency "rack-protection", version s.add_dependency "multi_json" diff --git a/test/markdown_test.rb b/test/markdown_test.rb index 7c7deecf..b363d406 100644 --- a/test/markdown_test.rb +++ b/test/markdown_test.rb @@ -69,17 +69,18 @@ MarkdownTest = proc do end # Will generate RDiscountTest, KramdownTest, etc. -map = Tilt.respond_to?(:lazy_map) ? Tilt.lazy_map['md'].map(&:first) : Tilt.mappings['md'] +markdown_templates = Tilt.lazy_map['md'].map { |klass, _require_path| klass } -map.each do |t| +markdown_templates.each do |template_name| begin - t = eval(t) if t.is_a? String - t.new { "" } - klass = Class.new(Minitest::Test) { define_method(:engine) { t }} + template = Object.const_get(template_name) + + klass = Class.new(Minitest::Test) { define_method(:engine) { template } } klass.class_eval(&MarkdownTest) - name = t.name[/[^:]+$/].sub(/Template$/, '') << "Test" + + name = template_name.split('::').last.sub(/Template$/, 'Test') Object.const_set name, klass rescue LoadError, NameError - warn "#{$!}: skipping markdown tests with #{t}" + warn "#{$!}: skipping markdown tests with #{template_name}" end end diff --git a/test/static_test.rb b/test/static_test.rb index d0cbbb03..e8408b14 100644 --- a/test/static_test.rb +++ b/test/static_test.rb @@ -198,7 +198,7 @@ class StaticTest < Minitest::Test it 'sets cache control headers on static files if set' do @app.set :static_cache_control, :public env = Rack::MockRequest.env_for("/#{File.basename(__FILE__)}") - status, headers, body = @app.call(env) + _, headers, _ = @app.call(env) assert headers.has_key?('Cache-Control') assert_equal headers['Cache-Control'], 'public' @@ -207,7 +207,7 @@ class StaticTest < Minitest::Test [:public, :must_revalidate, {:max_age => 300}] ) env = Rack::MockRequest.env_for("/#{File.basename(__FILE__)}") - status, headers, body = @app.call(env) + _, headers, _ = @app.call(env) assert headers.has_key?('Cache-Control') assert_equal( headers['Cache-Control'],