module MirrorMirror::SassPatch
Sass
should provide hooks for getting access to the AST a various stages of transformation. So that we don't have to monkeypatch it.
Public Class Methods
included(base)
click to toggle source
# File lib/mirror-mirror/sass_patch.rb, line 7 def self.included(base) if base.respond_to?(:css_tree, true) # Sass >= 3.3 base.send(:alias_method, :css_tree_without_mirror_mirror, :css_tree) base.send(:alias_method, :css_tree, :css_tree_with_mirror_mirror) else # Sass < 3.3 base.send(:alias_method, :render_without_mirror_mirror, :render) base.send(:alias_method, :render, :render_with_mirror_mirror) end end
Public Instance Methods
css_tree_with_mirror_mirror()
click to toggle source
# File lib/mirror-mirror/sass_patch.rb, line 19 def css_tree_with_mirror_mirror root = css_tree_without_mirror_mirror MirrorVisitor.visit(root) root end
render_with_mirror_mirror()
click to toggle source
# File lib/mirror-mirror/sass_patch.rb, line 25 def render_with_mirror_mirror Sass::Tree::Visitors::CheckNesting.visit(self) result = Sass::Tree::Visitors::Perform.visit(self) Sass::Tree::Visitors::CheckNesting.visit(result) # Check again to validate mixins result, extends = Sass::Tree::Visitors::Cssize.visit(result) Sass::Tree::Visitors::Extend.visit(result, extends) MirrorVisitor.visit(result) result.to_s end