Class: Less::Node::Function

Inherits:
String 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 Entity

#inspect, #path, #root, #to_s

Methods included from Functions

#hsl, #hsla, #rgb, #rgba

Methods inherited from String

#blank?, #column_of, #indent, #line_of, #tabto, #treetop_camelize

Constructor Details

#initialize(name, *args) ⇒ Function

Returns a new instance of Function.



57
58
59
60
# File 'lib/less/engine/nodes/function.rb', line 57

def initialize name, *args
  @args = args.flatten
  super name
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, *args) ⇒ Object

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



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

def method_missing meth, *args
  Node::Anonymous.new("#{meth}(#{args.map(&:to_css) * ', '})")
end

Instance Method Details

#evaluateObject

Call the function



69
70
71
# File 'lib/less/engine/nodes/function.rb', line 69

def evaluate
  send self.to_sym, *@args
end

#to_cssObject



62
63
64
# File 'lib/less/engine/nodes/function.rb', line 62

def to_css
  self.evaluate.to_css
end