Class Sass::Tree::MixinDefNode
In: lib/sass/tree/mixin_def_node.rb
Parent: Node
Haml::Util Engine Color SyntaxError UnitConversionError StandardError AbstractSequence CommaSequence Sequence SimpleSequence Simple Parent Universal Class Negation Id Pseudo Attribute Interpolation Element Node Operation Literal UnaryOperation StringInterpolation Funcall Variable Interpolation Lexer CssLexer Number String Bool Parser Parser CssParser EvaluationContext StaticParser SassParser CssParser Node DebugNode IfNode CommentNode ForNode PropNode MixinNode DirectiveNode VariableNode RootNode WarnNode ExtendNode RuleNode MixinDefNode WhileNode Enumerable ImportNode Merb::BootLoader MerbBootLoader Repl CSS Environment Rack StalenessChecker lib/sass/repl.rb lib/sass/css.rb lib/sass/environment.rb lib/sass/error.rb lib/sass/engine.rb lib/sass/selector/simple_sequence.rb lib/sass/selector/abstract_sequence.rb lib/sass/selector/sequence.rb lib/sass/selector/comma_sequence.rb lib/sass/selector/simple.rb lib/sass/selector.rb Selector lib/sass/script/css_parser.rb lib/sass/script/lexer.rb lib/sass/script/color.rb lib/sass/script/string.rb lib/sass/script/unary_operation.rb lib/sass/script/variable.rb lib/sass/script/funcall.rb lib/sass/script/string_interpolation.rb lib/sass/script/operation.rb lib/sass/script/bool.rb lib/sass/script/parser.rb lib/sass/script/node.rb lib/sass/script/literal.rb lib/sass/script/interpolation.rb lib/sass/script/css_lexer.rb lib/sass/script/number.rb lib/sass/script/functions.rb Functions Script lib/sass/scss/sass_parser.rb lib/sass/scss/static_parser.rb lib/sass/scss/parser.rb lib/sass/scss/css_parser.rb ScriptParser ScriptLexer RX SCSS Files Callbacks lib/sass/tree/while_node.rb lib/sass/tree/if_node.rb lib/sass/tree/mixin_def_node.rb lib/sass/tree/debug_node.rb lib/sass/tree/root_node.rb lib/sass/tree/for_node.rb lib/sass/tree/import_node.rb lib/sass/tree/prop_node.rb lib/sass/tree/node.rb lib/sass/tree/comment_node.rb lib/sass/tree/extend_node.rb lib/sass/tree/mixin_node.rb lib/sass/tree/warn_node.rb lib/sass/tree/directive_node.rb lib/sass/tree/rule_node.rb lib/sass/tree/variable_node.rb Tree lib/sass/plugin/rack.rb lib/sass/plugin/staleness_checker.rb lib/sass/plugin/merb.rb Plugin Sass dot/m_61_0.png

A dynamic node representing a mixin definition.

@see Sass::Tree

Methods

_perform   invalid_child?   new   to_src  

Public Class methods

@param name [String] The mixin name @param args [Array<(Script::Node, Script::Node)>] The arguments for the mixin.

  Each element is a tuple containing the variable for argument
  and the parse tree for the default value of the argument

[Source]

    # File lib/sass/tree/mixin_def_node.rb, line 11
11:       def initialize(name, args)
12:         @name = name
13:         @args = args
14:         super()
15:       end

Protected Instance methods

Loads the mixin into the environment.

@param environment [Sass::Environment] The lexical environment containing

  variable and mixin values

[Source]

    # File lib/sass/tree/mixin_def_node.rb, line 42
42:       def _perform(environment)
43:         environment.set_mixin(@name, Sass::Mixin.new(@name, @args, environment, children))
44:         []
45:       end

Returns an error message if the given child node is invalid, and false otherwise.

{ExtendNode}s are valid within {MixinDefNode}s.

@param child [Tree::Node] A potential child node. @return [Boolean, String] Whether or not the child node is valid,

  as well as the error message to display if it is invalid

[Source]

    # File lib/sass/tree/mixin_def_node.rb, line 55
55:       def invalid_child?(child)
56:         super unless child.is_a?(ExtendNode)
57:       end

@see Node#to_src

[Source]

    # File lib/sass/tree/mixin_def_node.rb, line 20
20:       def to_src(tabs, opts, fmt)
21:         args =
22:           if @args.empty?
23:             ""
24:           else
25:             '(' + @args.map do |v, d|
26:               if d
27:                 "#{v.to_sass(opts)}: #{d.to_sass(opts)}"
28:               else
29:                 v.to_sass(opts)
30:               end
31:             end.join(", ") + ')'
32:           end
33:               
34:         "#{'  ' * tabs}#{fmt == :sass ? '=' : '@mixin '}#{dasherize(@name, opts)}#{args}" +
35:           children_to_src(tabs, opts, fmt)
36:       end

[Validate]