Class: Sass::Tree::FunctionNode

Inherits:
Node
  • Object
show all
Defined in:
lib/sass/tree/function_node.rb

Overview

A dynamic node representing a function definition.

See Also:

Instance Attribute Summary collapse

Attributes inherited from Node

#children, #filename, #has_children, #line, #options, #source_range

Instance Method Summary collapse

Methods inherited from Node

#<<, #==, #balance, #bubbles?, #css, #css_with_sourcemap, #deep_copy, #each, #inspect, #invisible?, #style, #to_sass, #to_scss

Constructor Details

#initialize(name, args, splat) ⇒ FunctionNode

Returns a new instance of FunctionNode.

Parameters:

Raises:



33
34
35
36
37
38
39
40
41
# File 'lib/sass/tree/function_node.rb', line 33

def initialize(name, args, splat)
  @name = name
  @args = args
  @splat = splat
  super()

  return unless %w(and or not).include?(name)
  raise Sass::SyntaxError.new("Invalid function name \"#{name}\".")
end

Instance Attribute Details

#argsArray<Script::Tree::Node>

The arguments to the function. Each element is a tuple containing the variable for argument and the parse tree for the default value of the argument

Returns:



16
17
18
# File 'lib/sass/tree/function_node.rb', line 16

def args
  @args
end

#nameString (readonly)

The name of the function.

Returns:

  • (String)


9
10
11
# File 'lib/sass/tree/function_node.rb', line 9

def name
  @name
end

#splatScript::Tree::Node?

The splat argument for this function, if one exists.

Returns:



21
22
23
# File 'lib/sass/tree/function_node.rb', line 21

def splat
  @splat
end

Instance Method Details

#normalized_nameString

Strips out any vendor prefixes.

Returns:

  • (String)

    The normalized name of the directive.



25
26
27
# File 'lib/sass/tree/function_node.rb', line 25

def normalized_name
  @normalized_name ||= name.gsub(/^(?:-[a-zA-Z0-9]+-)?/, '\1')
end