Class | Sass::Tree::CommentNode
In: | lib/sass/tree/comment_node.rb
Parent: | Node

A static node representing a Sass comment (silent or loud).

@see Sass::Tree

### Methods

== _perform _to_s invisible? new to_sass to_scss

### Attributes

silent | [RW] | Whether or not the comment is silent (that is, doesn‘t output to CSS). @return [Boolean]
value | [RW] | The text of the comment, not including `/*` and `*/`. @return [String]

### Public Class methods

new(value, silent)

@param value [String] See \{value} @param silent [Boolean] See \{silent}

[Source]

        # File lib/sass/tree/comment_node.rb, line 20
    20:     def initialize(value, silent)
    21:       @lines = []
    22:       @value = normalize_indentation value
    23:       @silent = silent
    24:       super()
    25:     end

### Public Instance methods

==(other)

Compares the contents of two comments.

@param other [Object] The object to compare with @return [Boolean] Whether or not this node and the other object

      are the same

[Source]

        # File lib/sass/tree/comment_node.rb, line 32
    32:     def ==(other)
    33:       self.class == other.class && value == other.value && silent == other.silent
    34:     end

invisible?()

Returns `true` if this is a silent comment or the current style doesn‘t render comments.

@return [Boolean]

[Source]

        # File lib/sass/tree/comment_node.rb, line 40
    40:     def invisible?
    41:       style == :compressed || @silent
    42:     end

to_sass(tabs, opts = {})

@see Node#to_sass

[Source]

        # File lib/sass/tree/comment_node.rb, line 45
    45:     def to_sass(tabs, opts = {})
    46:       content = value.gsub(/\*\/$/, '').rstrip
    47:       if content =~ /\A[ \t]/
    48:         # Re-indent SCSS comments like this:
    49:         #     /* foo
    50:         #   bar
    51:         #       baz */
    52:         content.gsub!(/^/, '   ')
    53:         content.sub!(/\A([ \t]*)\/\*/, '/*\1')
    54:       end
    55:
    56:       content =
    57:         unless content.include?("\n")
    58:           content
    59:         else
    60:           content.gsub!(/\n( \*|\/\/)/, "\n  ")
    61:           spaces = content.scan(/\n( *)/).map {|s| s.first.size}.min
    62:           sep = silent ? "\n//" : "\n *"
    63:           if spaces >= 2
    64:             content.gsub(/\n  /, sep)
    65:           else
    66:             content.gsub(/\n#{' ' * spaces}/, sep)
    67:           end
    68:         end
    69:
    70:       content.gsub!(/\A\/\*/, '//') if silent
    71:       content.gsub!(/^/, '  ' * tabs)
    72:       content.rstrip + "\n"
    73:     end

to_scss(tabs, opts = {})

@see Node#to_scss

[Source]

        # File lib/sass/tree/comment_node.rb, line 76
    76:     def to_scss(tabs, opts = {})
    77:       spaces = ('  ' * [tabs - value[/^ */].size, 0].max)
    78:       if silent
    79:         value.gsub(/^[\/ ]\*/, '//').gsub(/ *\*\/$/, '')
    80:       else
    81:         value
    82:       end.gsub(/^/, spaces) + "\n"
    83:     end

### Protected Instance methods

_perform(environment)

Removes this node from the tree if it‘s a silent comment.

@param environment [Sass::Environment] The lexical environment containing

      variable and mixin values

@return [Tree::Node, Array<Tree::Node>] The resulting static nodes @see Sass::Tree

[Source]

         # File lib/sass/tree/comment_node.rb, line 111
    111:     def _perform(environment)
    112:       return [] if @silent
    113:       self
    114:     end

_to_s(tabs = 0, _ = nil)

Computes the CSS for the comment.

Returns `nil` if this is a silent comment or the current style doesn‘t render comments.

@overload to_s(tabs = 0) @param tabs [Fixnum] The level of indentation for the CSS @return [String, nil] The resulting CSS @see invisible?

[Source]

         # File lib/sass/tree/comment_node.rb, line 96
     96:     def _to_s(tabs = 0, _ = nil)
     97:       return if invisible?
     98:       spaces = ('  ' * [tabs - 1 - value[/^ */].size, 0].max)
     99:
    100:       content = value.gsub(/^/, spaces)
    101:       content.gsub!(/\n +(\* *)?/, ' ') if style == :compact
    102:       content
    103:     end

[Validate]