diff --git a/README.md b/README.md index 0260cc8..6f23906 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,8 @@ for a workaround. - **1.1.0** (unreleased) - [Source line comments](https://github.com/bolandrm/sassc-rails/pull/24) (`app.config.sass.line_comments`) + - [Prevent sass-rails railtie from running](https://github.com/bolandrm/sassc-rails/pull/34) + - [CSS compression may be disabled in test mode](https://github.com/bolandrm/sassc-rails/issues/33). Special thanks to [this Sass-Rails PR](https://github.com/rails/sass-rails/pull/338) for inspiration. - **1.0.0** - Initial Release - Add support for inline source maps diff --git a/lib/sassc/rails/railtie.rb b/lib/sassc/rails/railtie.rb index 2116984..ebf47b0 100644 --- a/lib/sassc/rails/railtie.rb +++ b/lib/sassc/rails/railtie.rb @@ -56,8 +56,8 @@ class Railtie < ::Rails::Railtie end initializer :setup_compression, group: :all do |app| - unless Rails.env.development? - app.config.assets.css_compressor ||= :sass + if !Rails.env.development? + app.config.assets.css_compressor = :sass unless app.config.assets.has_key?(:css_compressor) else # Use expanded output instead of the sass default of :nested unless specified app.config.sass.style ||= :expanded diff --git a/test/sassc_rails_test.rb b/test/sassc_rails_test.rb index 8dc8fea..85e3bef 100644 --- a/test/sassc_rails_test.rb +++ b/test/sassc_rails_test.rb @@ -13,7 +13,7 @@ def setup @app.config.log_level = :debug # reset config back to default - @app.config.assets.css_compressor = nil + @app.config.assets.delete(:css_compressor) @app.config.sass = ActiveSupport::OrderedOptions.new @app.config.sass.preferred_syntax = :scss @app.config.sass.load_paths = [] @@ -21,6 +21,9 @@ def setup # Not actually a default, but it makes assertions more complicated @app.config.sass.line_comments = false + # Add a fake compressor for testing purposes + @app.assets.register_compressor "text/css", :test, TestCompressor + Rails.backtrace_cleaner.remove_silencers! end @@ -186,24 +189,24 @@ def test_special_characters_compile css_output = render_asset("special_characters.scss") end - def css_compressor_config_item_is_not_honored_in_development_mode - @app.config.assets.css_compressor = :test - initialize_dev! - assert_equal nil, Rails.application.config.assets.css_compressor - end - - def css_compressor_config_item_is_honored_if_not_development_mode + def test_css_compressor_config_item_is_honored_if_not_development_mode @app.config.assets.css_compressor = :test initialize_prod! assert_equal :test, Rails.application.config.assets.css_compressor end - def css_compressor_is_defined_in_test_mode - initialize_test! + def test_css_compressor_config_item_may_be_nil_in_test_mode + @app.config.assets.css_compressor = nil + initialize! + assert_equal nil, Rails.application.config.assets.css_compressor + end + + def test_css_compressor_is_defined_in_test_mode + initialize! assert_equal :sass, Rails.application.config.assets.css_compressor end - def css_compressor_is_defined_in_prod_mode + def test_css_compressor_is_defined_in_prod_mode initialize_prod! assert_equal :sass, Rails.application.config.assets.css_compressor end @@ -318,4 +321,6 @@ def test_globbed_imports_work_when_globbed_file_is_added File.delete(new_file) end end + + class TestCompressor; end end