Class: Less::Node::Function

Inherits:
String
  • Object
show all
Includes:
Functions, Entity
Defined in:
lib/less/engine/nodes/function.rb

Overview

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

it calls functions from the Functions module

Instance Attribute Summary

Attributes included from Entity

#parent

Instance Method Summary collapse

Methods included from Functions

available, #hsl, #hsla, #rgb, #rgba

Methods included from Entity

#inspect, #path, #root, #to_s

Constructor Details

#initialize(name, args) ⇒ Function

Returns a new instance of Function.



55
56
57
58
59
60
61
62
63
# 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

Instance Method Details

#evaluate(context = nil) ⇒ Object

Call the function

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



75
76
77
78
79
80
81
# File 'lib/less/engine/nodes/function.rb', line 75

def evaluate context = nil
  if Functions.available.include? self.to_sym
    send to_sym, *@args
  else
    Node::Anonymous.new("#{to_sym}(#{@args.map(&:to_css) * ', '})")
  end
end

#to_css(env = nil) ⇒ Object



65
66
67
# File 'lib/less/engine/nodes/function.rb', line 65

def to_css env = nil
  self.evaluate(env).to_css
end