diff --git a/middleman-core/lib/middleman-core/file_renderer.rb b/middleman-core/lib/middleman-core/file_renderer.rb index 67cea5b4..e103fcd1 100644 --- a/middleman-core/lib/middleman-core/file_renderer.rb +++ b/middleman-core/lib/middleman-core/file_renderer.rb @@ -67,7 +67,12 @@ module Middleman # Allow hooks to manipulate the result after render @app.class.callbacks_for_hook(:after_render).each do |callback| - content = callback.call(content, path, locs, template_class) + # Uber::Options::Value doesn't respond to call + if callback.respond_to?(:call) + content = callback.call(content, path, locs, template_class) + elsif callback.respond_to?(:evaluate) + content = callback.evaluate(self, content, path, locs, template_class) + end end output = ::ActiveSupport::SafeBuffer.new '' diff --git a/middleman-core/lib/middleman-core/renderers/sass.rb b/middleman-core/lib/middleman-core/renderers/sass.rb index 2514f2da..9c7a237a 100644 --- a/middleman-core/lib/middleman-core/renderers/sass.rb +++ b/middleman-core/lib/middleman-core/renderers/sass.rb @@ -1,6 +1,35 @@ require 'sass' require 'compass/import-once' +GLOB = /\*|\[.+\]/ + +# Hack around broken sass globs when combined with import-once +# Targets compass-import-once 1.0.4 +# Tracking issue: https://github.com/chriseppstein/compass/issues/1529 +module Compass + module ImportOnce + module Importer + def find_relative(uri, base, options, *args) + if uri =~ GLOB + force_import = true + else + uri, force_import = handle_force_import(uri) + end + maybe_replace_with_dummy_engine(super(uri, base, options, *args), options, force_import) + end + + def find(uri, options, *args) + if uri =~ GLOB + force_import = true + else + uri, force_import = handle_force_import(uri) + end + maybe_replace_with_dummy_engine(super(uri, options, *args), options, force_import) + end + end + end +end + module Middleman module Renderers # Sass renderer diff --git a/middleman/middleman.gemspec b/middleman/middleman.gemspec index 91bc1e91..bdb77455 100644 --- a/middleman/middleman.gemspec +++ b/middleman/middleman.gemspec @@ -24,6 +24,7 @@ Gem::Specification.new do |s| s.add_dependency('middleman-sprockets', '>= 3.1.2') s.add_dependency('haml', ['>= 4.0.5']) s.add_dependency('sass', ['>= 3.3.4']) + s.add_dependency("compass-import-once", ["1.0.4"]) s.add_dependency('compass', ['>= 1.0.0.alpha.19']) s.add_dependency('uglifier', ['~> 2.5']) s.add_dependency('coffee-script', ['~> 2.2.0'])