class Less::Node::Function

A CSS function, like rgb() or url()

it calls functions from the Functions module

Public Class Methods

new(name, args) click to toggle source
Calls superclass method Less::Node::Entity.new
# File lib/less/engine/nodes/function.rb, line 55
def initialize name, args
  @args = if args.is_a? Array
    args.map {|e| e.is_a?(Expression) ? e : Expression.new(e, self)}
  else
    [args]
  end
  
  super name
end

Public Instance Methods

evaluate(context = nil) click to toggle source

Call the function

If the function isn't found, we just print it out, this is the case for url(), for example,

# File lib/less/engine/nodes/function.rb, line 79
def evaluate context = nil
  if Functions.available.include? self.to_sym
    send to_sym, *@args
  else
    args = @args.map { |e|
      e.parent = self.parent
      e = e.evaluate(context) if e.respond_to?(:evaluate)
      e.to_css
    }  * ', '
    Node::Anonymous.new("#{to_sym}(#{args})")
  end
end
nearest(node) click to toggle source
# File lib/less/engine/nodes/function.rb, line 69
def nearest node
  parent.nearest node
end
to_css(env = nil) click to toggle source
# File lib/less/engine/nodes/function.rb, line 65
def to_css env = nil
  self.evaluate(env).to_css
end