From 197093b36cf3e93ec0fc35f18e33dc6bff75e87c Mon Sep 17 00:00:00 2001 From: Kevin Glowacz Date: Thu, 8 Sep 2016 17:18:34 -0500 Subject: [PATCH] Tilt 2 (#1974) * Updates for mappings change in tilt 2 * drop RedcarpetTemplate::Redcarpet2 which was removed in tilt 2 * require Tilt 2.0 or higher * Make use of tilt 2's extensions_for method instead --- middleman-core/lib/middleman-core/application.rb | 4 ++-- middleman-core/lib/middleman-core/file_renderer.rb | 8 ++++---- middleman-core/lib/middleman-core/renderers/redcarpet.rb | 2 +- middleman-core/lib/middleman-core/template_renderer.rb | 4 +--- middleman-core/middleman-core.gemspec | 2 +- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/middleman-core/lib/middleman-core/application.rb b/middleman-core/lib/middleman-core/application.rb index 918f65ee..fb1ab93f 100644 --- a/middleman-core/lib/middleman-core/application.rb +++ b/middleman-core/lib/middleman-core/application.rb @@ -344,11 +344,11 @@ module Middleman # Clean up missing Tilt exts def prune_tilt_templates! - ::Tilt.mappings.each_key do |key| + ::Tilt.default_mapping.lazy_map.each_key do |key| begin ::Tilt[".#{key}"] rescue LoadError, NameError - ::Tilt.mappings.delete(key) + ::Tilt.default_mapping.lazy_map.delete(key) end end end diff --git a/middleman-core/lib/middleman-core/file_renderer.rb b/middleman-core/lib/middleman-core/file_renderer.rb index a3e8b193..26a38dc7 100644 --- a/middleman-core/lib/middleman-core/file_renderer.rb +++ b/middleman-core/lib/middleman-core/file_renderer.rb @@ -3,8 +3,8 @@ require 'active_support/core_ext/string/output_safety' require 'active_support/core_ext/module/delegation' require 'middleman-core/contracts' -::Tilt.mappings.delete('html') # WTF, Tilt? -::Tilt.mappings.delete('csv') +::Tilt.default_mapping.lazy_map.delete('html') +::Tilt.default_mapping.lazy_map.delete('csv') module Middleman class FileRenderer @@ -123,8 +123,8 @@ module Middleman # Find all the engines which handle this extension in tilt. Look for # config variables of that name and merge it extension_class = ::Middleman::Util.tilt_class(ext) - ::Tilt.mappings.each do |mapping_ext, engines| - next unless engines.include? extension_class + + ::Tilt.default_mapping.extensions_for(extension_class).each do |mapping_ext| engine_options = @app.config[mapping_ext.to_sym] || {} options.merge!(engine_options) end diff --git a/middleman-core/lib/middleman-core/renderers/redcarpet.rb b/middleman-core/lib/middleman-core/renderers/redcarpet.rb index 1542489c..b2171f22 100644 --- a/middleman-core/lib/middleman-core/renderers/redcarpet.rb +++ b/middleman-core/lib/middleman-core/renderers/redcarpet.rb @@ -3,7 +3,7 @@ require 'active_support/core_ext/module/attribute_accessors' module Middleman module Renderers - class RedcarpetTemplate < ::Tilt::RedcarpetTemplate::Redcarpet2 + class RedcarpetTemplate < ::Tilt::RedcarpetTemplate # because tilt has decided to convert these # in the wrong direction ALIASES = { diff --git a/middleman-core/lib/middleman-core/template_renderer.rb b/middleman-core/lib/middleman-core/template_renderer.rb index 0dcf2af8..8100a56d 100644 --- a/middleman-core/lib/middleman-core/template_renderer.rb +++ b/middleman-core/lib/middleman-core/template_renderer.rb @@ -64,9 +64,7 @@ module Middleman extension_class = ::Middleman::Util.tilt_class(options[:preferred_engine]) # Get a list of extensions for a preferred engine - preferred_engines += ::Tilt.mappings.select do |_, engines| - engines.include? extension_class - end.keys + preferred_engines += ::Tilt.default_mapping.extensions_for(extension_class) end preferred_engines << '*' diff --git a/middleman-core/middleman-core.gemspec b/middleman-core/middleman-core.gemspec index 9e50403b..44626407 100644 --- a/middleman-core/middleman-core.gemspec +++ b/middleman-core/middleman-core.gemspec @@ -21,7 +21,7 @@ Gem::Specification.new do |s| # Core s.add_dependency('bundler', ['~> 1.1']) s.add_dependency('rack', ['>= 1.4.5', '< 2.0']) - s.add_dependency('tilt', ['~> 1.4.1']) + s.add_dependency('tilt', ['~> 2.0']) s.add_dependency('erubis') s.add_dependency('fast_blank') s.add_dependency('parallel')