Class: Less::Node::Property
- Includes:
- Entity
- Defined in:
- lib/less/engine/nodes/property.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#value ⇒ Object
Returns the value of attribute value.
Attributes included from Entity
Instance Method Summary collapse
- #<<(token) ⇒ Object
- #==(other) ⇒ Object
- #copy ⇒ Object
- #empty? ⇒ Boolean
- #eql?(other) ⇒ Boolean
- #eval? ⇒ Boolean
-
#evaluate ⇒ Object
TODO: @eval and @value should be merged.
-
#initialize(key, value = nil, parent = nil) ⇒ Property
constructor
A new instance of Property.
- #inspect ⇒ Object
- #nearest(node) ⇒ Object
- #parent=(obj) ⇒ Object
- #to_css ⇒ Object
- #to_s ⇒ Object
Methods included from Entity
Constructor Details
#initialize(key, value = nil, parent = nil) ⇒ Property
Returns a new instance of Property.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/less/engine/nodes/property.rb', line 8 def initialize key, value = nil, parent = nil super key, parent value = if value.is_a? Array value.each {|v| v.parent = self if v.respond_to? :parent } elsif value.nil? [] else value end @value = value.is_a?(Value) ? value : Value.new(value, self) @eval = false # Store the first evaluation in here end |
Instance Attribute Details
#value ⇒ Object
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
32 33 34 35 36 |
# File 'lib/less/engine/nodes/property.rb', line 32 def << token token = Node::Anonymous.new(*token) unless token.is_a? Entity or token.respond_to? :to_ruby token.parent = self if token.respond_to? :parent @value << token end |
#==(other) ⇒ Object
45 46 47 |
# File 'lib/less/engine/nodes/property.rb', line 45 def == other self.to_s == other.to_s end |
#copy ⇒ Object
28 29 30 |
# File 'lib/less/engine/nodes/property.rb', line 28 def copy clone.tap {|c| c.value = value.copy } end |
#empty? ⇒ Boolean
38 |
# File 'lib/less/engine/nodes/property.rb', line 38 def empty?; !@value || @value.empty? end |
#eql?(other) ⇒ Boolean
49 50 51 |
# File 'lib/less/engine/nodes/property.rb', line 49 def eql? other self == other and value.eql? other.value end |
#eval? ⇒ Boolean
39 |
# File 'lib/less/engine/nodes/property.rb', line 39 def eval?; @eval end |
#evaluate ⇒ Object
TODO: @eval and @value should be merged
62 63 64 |
# File 'lib/less/engine/nodes/property.rb', line 62 def evaluate @eval ||= value.is_a?(Value) ? value.map {|e| e.evaluate } : [value.evaluate] end |
#inspect ⇒ Object
41 42 43 |
# File 'lib/less/engine/nodes/property.rb', line 41 def inspect self + (empty?? "" : ": `#{value.map {|i| i.to_s } * ' | '}`") end |
#nearest(node) ⇒ Object
57 58 59 |
# File 'lib/less/engine/nodes/property.rb', line 57 def nearest node parent.nearest node end |
#parent=(obj) ⇒ Object
23 24 25 26 |
# File 'lib/less/engine/nodes/property.rb', line 23 def parent= obj @parent = obj value.parent = self end |
#to_css ⇒ Object
66 67 68 |
# File 'lib/less/engine/nodes/property.rb', line 66 def to_css "#{self}: #{evaluate.map {|i| i.to_css }.join(", ")};" end |
#to_s ⇒ Object
53 54 55 |
# File 'lib/less/engine/nodes/property.rb', line 53 def to_s super end |