Class: Sass::Tree::AttrNode
- Defined in:
- lib/sass/tree/attr_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, attr_syntax) ⇒ AttrNode
constructor
A new instance of AttrNode.
-
#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, attr_syntax) ⇒ AttrNode
Returns a new instance of AttrNode.
21 22 23 24 25 26 |
# File 'lib/sass/tree/attr_node.rb', line 21 def initialize(name, value, attr_syntax) @name = name @value = value @attr_syntax = attr_syntax super() end |
Instance Attribute Details
#name ⇒ String
The name of the property.
9 10 11 |
# File 'lib/sass/tree/attr_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/attr_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/attr_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/attr_node.rb', line 43 def to_s(tabs, parent_name = nil) if @options[:attribute_syntax] == :normal && @attr_syntax == :new raise Sass::SyntaxError.new("Illegal attribute syntax: can't use alternate syntax when :attribute_syntax => :normal is set.") elsif @options[:attribute_syntax] == :alternate && @attr_syntax == :old raise Sass::SyntaxError.new("Illegal attribute syntax: can't use normal syntax when :attribute_syntax => :alternate is set.") end if value[-1] == ?; raise Sass::SyntaxError.new("Invalid attribute: #{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 attribute: #{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[:alternate] ? '' : ':'}#{name}#{opts[:alternate] ? ':' : ''} #{value}\n" end |