diff --git a/middleman-core/lib/middleman-core/renderers/sass.rb b/middleman-core/lib/middleman-core/renderers/sass.rb index 5b85c4f3..550db121 100644 --- a/middleman-core/lib/middleman-core/renderers/sass.rb +++ b/middleman-core/lib/middleman-core/renderers/sass.rb @@ -14,6 +14,11 @@ module Middleman # Default sass options app.set :sass, {} + # Location of SASS .sass_cache directory. + # @return [String] + # set :sass_cache_path, "/tmp/middleman-app-name/sass_cache" + app.set(:sass_cache_path) { File.join(app.root_path, '.sass_cache') } # runtime compile of path + app.before_configuration do template_extensions :scss => :css, :sass => :css diff --git a/middleman-more/features/sass_cache_path.feature b/middleman-more/features/sass_cache_path.feature new file mode 100644 index 00000000..08f0f0ad --- /dev/null +++ b/middleman-more/features/sass_cache_path.feature @@ -0,0 +1,22 @@ +Feature: SASS .sass_cache custom location + + Scenario: Using the default location for .sass_cache folder + Given the Server is running at "sass-cache-path-default-app" + + When I go to "/stylesheets/plain.css" + Then I should see "color: blue;" + + # TODO:: + # Not sure how to test this location, as the directory is stored outside of the app root + # during testing, but inside app root in "production" + + # Then a directory named ".sass_cache" should exist + + + Scenario: Using a custom location for .sass_cache folder + Given the Server is running at "sass-cache-path-custom-app" + + When I go to "/stylesheets/plain.css" + Then I should see "html, body, div, span, applet, object, iframe," + + Then a directory named "/tmp/middleman-more-custom-sass_cache_path" should exist diff --git a/middleman-more/fixtures/sass-cache-path-custom-app/config.rb b/middleman-more/fixtures/sass-cache-path-custom-app/config.rb new file mode 100644 index 00000000..ed058bd5 --- /dev/null +++ b/middleman-more/fixtures/sass-cache-path-custom-app/config.rb @@ -0,0 +1,3 @@ + + +set :sass_cache_path, File.join('/tmp', "#{File.basename(Dir.pwd)}-custom-sass_cache_path") \ No newline at end of file diff --git a/middleman-more/fixtures/sass-cache-path-custom-app/source/stylesheets/plain.css.sass b/middleman-more/fixtures/sass-cache-path-custom-app/source/stylesheets/plain.css.sass new file mode 100644 index 00000000..79115283 --- /dev/null +++ b/middleman-more/fixtures/sass-cache-path-custom-app/source/stylesheets/plain.css.sass @@ -0,0 +1,4 @@ +@import "compass/reset" + +red + color: blue \ No newline at end of file diff --git a/middleman-more/fixtures/sass-cache-path-default-app/config.rb b/middleman-more/fixtures/sass-cache-path-default-app/config.rb new file mode 100644 index 00000000..363c54fe --- /dev/null +++ b/middleman-more/fixtures/sass-cache-path-default-app/config.rb @@ -0,0 +1,3 @@ + +# Using default setting +# set :sass_cache_path, File.join(Dir.pwd, '.sass_cache') \ No newline at end of file diff --git a/middleman-more/fixtures/sass-cache-path-default-app/source/stylesheets/plain.css.sass b/middleman-more/fixtures/sass-cache-path-default-app/source/stylesheets/plain.css.sass new file mode 100644 index 00000000..79115283 --- /dev/null +++ b/middleman-more/fixtures/sass-cache-path-default-app/source/stylesheets/plain.css.sass @@ -0,0 +1,4 @@ +@import "compass/reset" + +red + color: blue \ No newline at end of file diff --git a/middleman-more/lib/middleman-more/core_extensions/compass.rb b/middleman-more/lib/middleman-more/core_extensions/compass.rb index 7c488bc5..2735fb08 100644 --- a/middleman-more/lib/middleman-more/core_extensions/compass.rb +++ b/middleman-more/lib/middleman-more/core_extensions/compass.rb @@ -21,7 +21,7 @@ module Middleman ::Compass.configuration do |config| config.project_path = source_dir config.environment = :development - config.cache_path = File.join(root, ".sass-cache") + config.cache_path = sass_cache_path config.sass_dir = css_dir config.css_dir = css_dir config.javascripts_dir = js_dir