Skip to content

Commit 7175227

Browse files
committed
update compression scheme
1 parent 265406b commit 7175227

File tree

4 files changed

+46
-9
lines changed

4 files changed

+46
-9
lines changed

lib/sassc/rails.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
require_relative "rails/functions"
55
require_relative "rails/importer"
66
require_relative "rails/template"
7+
require_relative "rails/compressor"
78
require_relative "rails/railtie"

lib/sassc/rails/compressor.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require 'sprockets/sass_compressor'
2+
3+
class Sprockets::SassCompressor
4+
def call(*args)
5+
input = if defined?(data)
6+
data
7+
else
8+
args[0][:data]
9+
end
10+
11+
SassC::Engine.new(
12+
input,
13+
{
14+
style: :compressed
15+
}
16+
).render
17+
end
18+
alias :evaluate :call
19+
end

lib/sassc/rails/railtie.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class Railtie < ::Rails::Railtie
5656
app.config.assets.css_compressor = nil
5757

5858
if !Rails.env.development?
59-
app.config.sass.style = :compressed
59+
app.config.assets.css_compressor ||= :sass
6060
else
6161
# Use expanded output instead of the sass default of :nested unless specified
6262
app.config.sass.style ||= :expanded

test/sassc_rails_test.rb

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,12 @@ def test_style_config_item_is_defaulted_to_expanded_in_development_mode
155155
assert_equal :expanded, Rails.application.config.sass.style
156156
end
157157

158-
def test_style_config_item_is_honored_in_development_mode
158+
def test_style_config_item_is_honored
159159
@app.config.sass.style = :nested
160-
initialize_dev!
160+
initialize!
161161
assert_equal :nested, Rails.application.config.sass.style
162162
end
163163

164-
def test_style_config_item_is_not_honored_if_environment_is_not_development
165-
initialize_prod!
166-
assert_equal :compressed, Rails.application.config.sass.style
167-
end
168-
169164
def test_context_is_being_passed_to_erb_render
170165
initialize!
171166

@@ -178,12 +173,34 @@ def test_special_characters_compile
178173
css_output = render_asset("special_characters.scss")
179174
end
180175

176+
def css_compressor_config_item_is_not_honored_in_development_mode
177+
@app.config.assets.css_compressor = :test
178+
initialize_dev!
179+
assert_equal nil, Rails.application.config.assets.css_compressor
180+
end
181+
182+
def css_compressor_config_item_is_honored_if_not_development_mode
183+
@app.config.assets.css_compressor = :test
184+
initialize_prod!
185+
assert_equal :test, Rails.application.config.assets.css_compressor
186+
end
187+
188+
def css_compressor_is_defined_in_test_mode
189+
initialize_test!
190+
assert_equal :sass, Rails.application.config.assets.css_compressor
191+
end
192+
193+
def css_compressor_is_defined_in_prod_mode
194+
initialize_prod!
195+
assert_equal :sass, Rails.application.config.assets.css_compressor
196+
end
197+
181198
def test_compression_works
182199
initialize_prod!
183200

184201
asset = render_asset("application.scss")
185202
assert_equal <<-CSS, asset
186-
.hello{color:#fff}
203+
.hello{color:#FFF}
187204
CSS
188205
end
189206

0 commit comments

Comments
 (0)