sassc-rails icon indicating copy to clipboard operation
sassc-rails copied to clipboard

Add ability to specify the :precision option

Open phiggins opened this issue 8 years ago • 3 comments

Followup to our twitter conversation earlier today: https://twitter.com/pete_higgins/status/747861010359402496

I am switching a rails app from using sass-rails to sassc-rails and looking for differences in the compiled CSS between the two. I noticed that sass has many more degrees of precision from the results of doing math in sass than sassc does. Sass has the option to specify the precision, which bootstrap-sass relies on: https://github.com/twbs/bootstrap-sass/blob/0a64ad76107e0363e0d504287c0f9b88c6679399/lib/bootstrap-sass.rb#L64-L65 This means that whne using sassc some of the derived values have a much lower precision which can lead to small differences cropping up, as mentioned in the issue linked to in the bootstrap-sass documentation above. Even if there are no visible differences, since I am switching from sass-rails to sassc-rails, I'd feel more confident that nothing was going to change between the two of them if their compiled CSS was the same, minus whitespace differences, etc.

For now I've been able to change the precision with sassc-rails by adding a monkeypatch like this to my project, which is not ideal:

if defined?(SassC)
  SassC::Engine.include Module.new do
    def precision
      super || 8
    end
  end

phiggins avatar Jun 28 '16 21:06 phiggins

Would be great if #85 could be merged.

rastersysteme avatar Sep 11 '17 09:09 rastersysteme

@phiggins For your workaround to work, you need to use prepend instead of include:

# config/initializers/sassc.rb
require 'sassc'

SassC::Engine.prepend(Module.new do
  def precision
    super || 10
  end
end)

Also due to missing parenthesis what you're actually calling is Engine.include(Module.new) do .. end which does nothing at all.

glebm avatar Mar 19 '19 21:03 glebm

This works as well:

# config/initializers/sassc.rb

if defined?(SassC)
  class SassC::Engine
    def precision
      8
    end
  end
end

rastersysteme avatar Mar 20 '19 06:03 rastersysteme