Sha256: ba5fcebc3653db48982d7e1c157a4baef997429e2755174f68fdeab6ca73f3c9

Contents?: true

Size: 1.79 KB

Versions: 195

Compression:

Stored size: 1.79 KB

Contents

module Sass
  module Tree
    # A dynamic node representing a mixin definition.
    #
    # @see Sass::Tree
    class MixinDefNode < Node
      # @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
      def initialize(name, args)
        @name = name
        @args = args
        super()
      end

      protected

      # @see Node#to_src
      def to_src(tabs, opts, fmt)
        args =
          if @args.empty?
            ""
          else
            '(' + @args.map do |v, d|
              if d
                "#{v.to_sass(opts)}: #{d.to_sass(opts)}"
              else
                v.to_sass(opts)
              end
            end.join(", ") + ')'
          end
              
        "#{'  ' * tabs}#{fmt == :sass ? '=' : '@mixin '}#{dasherize(@name, opts)}#{args}" +
          children_to_src(tabs, opts, fmt)
      end

      # Loads the mixin into the environment.
      #
      # @param environment [Sass::Environment] The lexical environment containing
      #   variable and mixin values
      def _perform(environment)
        environment.set_mixin(@name, Sass::Mixin.new(@name, @args, environment, children))
        []
      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
      def invalid_child?(child)
        super unless child.is_a?(ExtendNode)
      end
    end
  end
end

Version data entries

195 entries across 194 versions & 5 rubygems

Version Path
radiant-1.0.0.rc1 vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb
haml-3.1.0 vendor/sass/lib/sass/tree/mixin_def_node.rb
haml-3.1.0.alpha.147 vendor/sass/lib/sass/tree/mixin_def_node.rb
haml-3.1.0.alpha.145 vendor/sass/lib/sass/tree/mixin_def_node.rb
haml-3.1.0.alpha.144 vendor/sass/lib/sass/tree/mixin_def_node.rb
haml-3.1.0.alpha.141 vendor/sass/lib/sass/tree/mixin_def_node.rb
haml-3.1.0.alpha.37 vendor/sass/lib/sass/tree/mixin_def_node.rb
radiantcms-couchrest_model-0.1.3 vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb
radiantcms-couchrest_model-0.1.2 vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb
radiantcms-couchrest_model-0.1.1 vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb
radiantcms-couchrest_model-0.1 vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.47 lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.46 lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.45 lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.44 lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.43 lib/sass/tree/mixin_def_node.rb
haml-3.1.0.alpha.36 vendor/sass/lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.42 lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.41 lib/sass/tree/mixin_def_node.rb
sass-3.1.0.alpha.40 lib/sass/tree/mixin_def_node.rb