Class: Less::Node::Property

Inherits:
String show all
Includes:
Entity
Defined in:
lib/less/engine/nodes/property.rb

Direct Known Subclasses

Variable

Instance Attribute Summary collapse

Attributes included from Entity

#parent

Instance Method Summary collapse

Methods included from Entity

#path, #root

Methods inherited from String

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

Constructor Details

#initialize(key, value = nil) ⇒ Property

Returns a new instance of Property.



8
9
10
11
12
# File 'lib/less/engine/nodes/property.rb', line 8

def initialize key, value = nil
  super key
  @value = Expression.new(value ? [value].flatten : [])
  @eval = false # Store the first evaluation in here
end

Instance Attribute Details

#valueObject

Returns the value of attribute value.



6
7
8
# File 'lib/less/engine/nodes/property.rb', line 6

def value
  @value
end

Instance Method Details

#<<(token) ⇒ Object



14
15
16
17
18
# File 'lib/less/engine/nodes/property.rb', line 14

def << token
  token = Node::Anonymous.new(*token) unless token.is_a? Entity or token.is_a? Operator
  token.parent = self if token.respond_to? :parent
  @value << token
end

#empty?Boolean

Returns:

  • (Boolean)


20
# File 'lib/less/engine/nodes/property.rb', line 20

def empty?; !@value || @value.empty? end

#eval?Boolean

Returns:

  • (Boolean)


21
# File 'lib/less/engine/nodes/property.rb', line 21

def eval?;  @eval end

#evaluateObject

TODO: @eval and @value should be merged



36
37
38
# File 'lib/less/engine/nodes/property.rb', line 36

def evaluate    
  @eval ||= value.evaluate
end

#inspectObject



23
24
25
# File 'lib/less/engine/nodes/property.rb', line 23

def inspect
  self + (empty?? "" : ": `#{value.map {|i| i.to_s } * ' | '}`")
end

#nearest(node) ⇒ Object



31
32
33
# File 'lib/less/engine/nodes/property.rb', line 31

def nearest node
  parent.nearest node
end

#to_cssObject



40
41
42
# File 'lib/less/engine/nodes/property.rb', line 40

def to_css
  "#{self}: #{evaluate.to_css};"
end

#to_sObject



27
28
29
# File 'lib/less/engine/nodes/property.rb', line 27

def to_s
  super
end