diff --git a/middleman-core/lib/middleman-core/renderers/sass.rb b/middleman-core/lib/middleman-core/renderers/sass.rb index 9165db23..bf1578b7 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 2e176267..506fc640 100644 --- a/middleman/middleman.gemspec +++ b/middleman/middleman.gemspec @@ -22,7 +22,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.2.17", "< 4.0"]) - s.add_dependency("compass-import-once", ["~> 1.0.4"]) + s.add_dependency("compass-import-once", ["1.0.4"]) s.add_dependency("compass", [">= 0.12.4"]) s.add_dependency("uglifier", ["~> 2.5"]) s.add_dependency("coffee-script", ["~> 2.2.0"])