class Sass::Tree::Visitors::SetOptions

A visitor for setting options on the Sass tree

Public Class Methods

new(options) click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 9
def initialize(options)
  @options = options
end
visit(root, options) click to toggle source

@param root [Tree::Node] The root node of the tree to visit. @param options [{Symbol => Object}] The options has to set.

# File lib/sass/tree/visitors/set_options.rb, line 5
def self.visit(root, options); new(options).send(:visit, root); end

Protected Instance Methods

visit(node) click to toggle source
Calls superclass method Sass::Tree::Visitors::Base::visit
# File lib/sass/tree/visitors/set_options.rb, line 13
def visit(node)
  node.instance_variable_set('@options', @options)
  super
end
visit_comment(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 18
def visit_comment(node)
  node.value.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)}
  yield
end
visit_cssimport(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 130
def visit_cssimport(node)
  node.query.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)} if node.query
  yield
end
visit_debug(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 23
def visit_debug(node)
  node.expr.options = @options
  yield
end
visit_directive(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 120
def visit_directive(node)
  node.value.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)}
  yield
end
visit_each(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 33
def visit_each(node)
  node.list.options = @options
  yield
end
visit_error(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 28
def visit_error(node)
  node.expr.options = @options
  yield
end
visit_extend(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 38
def visit_extend(node)
  node.selector.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)}
  yield
end
visit_for(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 43
def visit_for(node)
  node.from.options = @options
  node.to.options = @options
  yield
end
visit_function(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 49
def visit_function(node)
  node.args.each do |k, v|
    k.options = @options
    v.options = @options if v
  end
  node.splat.options = @options if node.splat
  yield
end
visit_if(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 58
def visit_if(node)
  node.expr.options = @options if node.expr
  visit(node.else) if node.else
  yield
end
visit_import(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 64
def visit_import(node)
  # We have no good way of propagating the new options through an Engine
  # instance, so we just null it out. This also lets us avoid caching an
  # imported Engine along with the importing source tree.
  node.imported_file = nil
  yield
end
visit_media(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 125
def visit_media(node)
  node.query.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)}
  yield
end
visit_mixin(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 81
def visit_mixin(node)
  node.args.each {|a| a.options = @options}
  node.keywords.each {|_k, v| v.options = @options}
  node.splat.options = @options if node.splat
  node.kwarg_splat.options = @options if node.kwarg_splat
  yield
end
visit_mixindef(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 72
def visit_mixindef(node)
  node.args.each do |k, v|
    k.options = @options
    v.options = @options if v
  end
  node.splat.options = @options if node.splat
  yield
end
visit_prop(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 89
def visit_prop(node)
  node.name.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)}
  node.value.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)}
  yield
end
visit_return(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 95
def visit_return(node)
  node.expr.options = @options
  yield
end
visit_rule(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 100
def visit_rule(node)
  node.rule.each {|c| c.options = @options if c.is_a?(Sass::Script::Tree::Node)}
  yield
end
visit_supports(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 135
def visit_supports(node)
  node.condition.options = @options
  yield
end
visit_variable(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 105
def visit_variable(node)
  node.expr.options = @options
  yield
end
visit_warn(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 110
def visit_warn(node)
  node.expr.options = @options
  yield
end
visit_while(node) { || ... } click to toggle source
# File lib/sass/tree/visitors/set_options.rb, line 115
def visit_while(node)
  node.expr.options = @options
  yield
end