Sha256: 3bd3da63c4788acb0251e060f70611f6da144fea5b7976dadb5ffea6b74bd2e0

Contents?: true

Size: 1.91 KB

Versions: 375

Compression:

Stored size: 1.91 KB

Contents

# A visitor for setting options on the Sass tree
class Sass::Tree::Visitors::SetOptions < Sass::Tree::Visitors::Base
  # @param root [Tree::Node] The root node of the tree to visit.
  # @param options [{Symbol => Object}] The options has to set.
  def self.visit(root, options); new(options).send(:visit, root); end

  protected

  def initialize(options)
    @options = options
  end

  def visit(node)
    node.instance_variable_set('@options', @options)
    super
  end

  def visit_debug(node)
    node.expr.options = @options
    yield
  end

  def visit_each(node)
    node.list.options = @options
    yield
  end

  def visit_extend(node)
    node.selector.each {|c| c.options = @options if c.is_a?(Sass::Script::Node)}
    yield
  end

  def visit_for(node)
    node.from.options = @options
    node.to.options = @options
    yield
  end

  def visit_function(node)
    node.args.each do |k, v|
      k.options = @options
      v.options = @options if v
    end
    yield
  end

  def visit_if(node)
    node.expr.options = @options if node.expr
    visit(node.else) if node.else
    yield
  end

  def visit_mixindef(node)
    node.args.each do |k, v|
      k.options = @options
      v.options = @options if v
    end
    yield
  end

  def visit_mixin(node)
    node.args.each {|a| a.options = @options}
    node.keywords.each {|k, v| v.options = @options}
    yield
  end

  def visit_prop(node)
    node.name.each {|c| c.options = @options if c.is_a?(Sass::Script::Node)}
    node.value.options = @options
    yield
  end

  def visit_return(node)
    node.expr.options = @options
    yield
  end

  def visit_rule(node)
    node.rule.each {|c| c.options = @options if c.is_a?(Sass::Script::Node)}
    yield
  end

  def visit_variable(node)
    node.expr.options = @options
    yield
  end

  def visit_warn(node)
    node.expr.options = @options
    yield
  end

  def visit_while(node)
    node.expr.options = @options
    yield
  end
end

Version data entries

375 entries across 94 versions & 7 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/sass-3.1.17/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.5 vendor/bundle/gems/sass-3.1.18/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.5 vendor/bundle/gems/sass-3.1.15/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.5 vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.5 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.5 vendor/bundle/gems/haml-3.1.4/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.5 vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.4 vendor/bundle/gems/sass-3.1.15/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.4 vendor/bundle/gems/sass-3.1.17/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.4 vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.4 vendor/bundle/gems/haml-3.1.4/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.4 vendor/bundle/gems/sass-3.1.18/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.4 vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.4 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.3 vendor/bundle/gems/sass-3.1.15/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.3 vendor/bundle/gems/sass-3.1.17/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.3 vendor/bundle/gems/sass-3.1.19/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.3 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.3 vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/tree/visitors/set_options.rb
classiccms-0.7.3 vendor/bundle/gems/sass-3.1.18/lib/sass/tree/visitors/set_options.rb