Class: Less::Node::Variable

Inherits:
Property show all
Defined in:
lib/less/engine/nodes/property.rb

Instance Attribute Summary collapse

Attributes inherited from Property

#value

Attributes included from Entity

#parent

Instance Method Summary collapse

Methods inherited from Property

#<<, #==, #copy, #empty?, #eql?, #nearest, #parent=

Methods included from Entity

#path, #root

Constructor Details

#initialize(key, value = nil, parent = nil) ⇒ Variable

Returns a new instance of Variable.



91
92
93
94
# File 'lib/less/engine/nodes/property.rb', line 91

def initialize key, value = nil, parent = nil
  @declaration = value ? true : false
  super key.delete('@'), value, parent
end

Instance Attribute Details

#declarationObject (readonly)

Returns the value of attribute declaration.



89
90
91
# File 'lib/less/engine/nodes/property.rb', line 89

def declaration
  @declaration
end

Instance Method Details

#evaluate(env = nil) ⇒ Object



104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/less/engine/nodes/property.rb', line 104

def evaluate env = nil
  if declaration
#          puts "evaluating DEC"
    value.evaluate #2
  else
#          puts "evaluating #{to_s} par: #{parent} env: #{env ? env.variables : "nil"}"
  begin
    var = (env || self.parent).nearest(to_s) #3
  rescue VariableNameError
    var = self.parent.nearest(to_s)
  end
    var.evaluate
  end
end

#inspectObject



96
97
98
# File 'lib/less/engine/nodes/property.rb', line 96

def inspect
  "@#{super}"
end

#to_css(env = nil) ⇒ Object



123
124
125
126
127
128
129
130
# File 'lib/less/engine/nodes/property.rb', line 123

def to_css env = nil
  val = evaluate env
  if val.respond_to? :to_css
    env ? val.to_css(env) : val.to_css
  else
    val.map {|i| env ? i.to_css(env) : i.to_css }.join ', '
  end
end

#to_rubyObject



119
120
121
# File 'lib/less/engine/nodes/property.rb', line 119

def to_ruby
  evaluate.to_ruby
end

#to_sObject



100
101
102
# File 'lib/less/engine/nodes/property.rb', line 100

def to_s
  "@#{super}"
end