Class: Sass::Tree::PropNode
- Defined in:
- lib/sass/tree/prop_node.rb,
lib/sass/css.rb
Overview
A static node reprenting a CSS property.
Instance Attribute Summary collapse
-
#name ⇒ String
The name of the property.
-
#value ⇒ String, Script::Node
The value of the property, either a plain string or a SassScript parse tree.
Attributes inherited from Node
#children, #filename, #line, #options
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
Compares the names and values of two properties.
-
#initialize(name, value, prop_syntax) ⇒ PropNode
constructor
A new instance of PropNode.
-
#to_s(tabs, parent_name = nil) ⇒ String
Computes the CSS for the property.
- #to_sass(tabs, opts = {}) ⇒ Object
Methods inherited from Node
#<<, #invisible?, #last, #perform, #render, #style
Constructor Details
#initialize(name, value, prop_syntax) ⇒ PropNode
Returns a new instance of PropNode.
21 22 23 24 25 26 |
# File 'lib/sass/tree/prop_node.rb', line 21 def initialize(name, value, prop_syntax) @name = name @value = value @prop_syntax = prop_syntax super() end |
Instance Attribute Details
#name ⇒ String
The name of the property.
9 10 11 |
# File 'lib/sass/tree/prop_node.rb', line 9 def name @name end |
#value ⇒ String, Script::Node
The value of the property, either a plain string or a SassScript parse tree.
15 16 17 |
# File 'lib/sass/tree/prop_node.rb', line 15 def value @value end |
Instance Method Details
#==(other) ⇒ Boolean
Compares the names and values of two properties.
33 34 35 |
# File 'lib/sass/tree/prop_node.rb', line 33 def ==(other) self.class == other.class && name == other.name && value == other.value && super end |
#to_s(tabs, parent_name = nil) ⇒ String
Computes the CSS for the property.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/sass/tree/prop_node.rb', line 43 def to_s(tabs, parent_name = nil) if @options[:property_syntax] == :old && @prop_syntax == :new raise Sass::SyntaxError.new("Illegal property syntax: can't use new syntax when :property_syntax => :old is set.") elsif @options[:property_syntax] == :new && @prop_syntax == :old raise Sass::SyntaxError.new("Illegal property syntax: can't use old syntax when :property_syntax => :new is set.") end if value[-1] == ?; raise Sass::SyntaxError.new("Invalid property: #{declaration.dump} (no \";\" required at end-of-line).", @line) end real_name = name real_name = "#{parent_name}-#{real_name}" if parent_name if value.empty? && children.empty? raise Sass::SyntaxError.new("Invalid property: #{declaration.dump} (no value).", @line) end join_string = case style when :compact; ' ' when :compressed; '' else "\n" end spaces = ' ' * (tabs - 1) to_return = '' if !value.empty? to_return << "#{spaces}#{real_name}:#{style == :compressed ? '' : ' '}#{value};#{join_string}" end children.each do |kid| next if kid.invisible? to_return << kid.to_s(tabs, real_name) << join_string end (style == :compressed && parent_name) ? to_return : to_return[0...-1] end |
#to_sass(tabs, opts = {}) ⇒ Object
39 40 41 |
# File 'lib/sass/css.rb', line 39 def to_sass(tabs, opts = {}) "#{' ' * tabs}#{opts[:old] ? ':' : ''}#{name}#{opts[:old] ? '' : ':'} #{value}\n" end |