Class: Sass::Script::Tree::Interpolation
- Inherits:
-
Node
- Object
- Node
- Sass::Script::Tree::Interpolation
- Defined in:
- .ruby-sass/lib/sass/script/tree/interpolation.rb
Overview
A SassScript object representing `#{}` interpolation outside a string.
Instance Attribute Summary (collapse)
-
#after ⇒ Node
readonly
The SassScript after the interpolation.
-
#before ⇒ Node
readonly
The SassScript before the interpolation.
-
#deprecation ⇒ Symbol
readonly
The type of interpolation deprecation for this node.
-
#mid ⇒ Node
readonly
The SassScript within the interpolation.
-
#originally_text ⇒ Boolean
readonly
Whether the original format of the interpolation was plain text, not an interpolation.
-
#warn_for_color ⇒ Boolean
readonly
Whether a color value passed to the interpolation should generate a warning.
-
#whitespace_after ⇒ Boolean
readonly
Whether there was whitespace between `}` and `after`.
-
#whitespace_before ⇒ Boolean
readonly
Whether there was whitespace between `before` and `#{`.
Attributes inherited from Node
#filename, #line, #options, #source_range
Instance Method Summary (collapse)
-
#children ⇒ Array<Node>
Returns the three components of the interpolation, `before`, `mid`, and `after`.
- #deep_copy ⇒ Object
-
#initialize(before, mid, after, wb, wa, opts = {}) ⇒ Interpolation
constructor
Interpolation in a property is of the form `before ##mid after`.
-
#inspect ⇒ String
A human-readable s-expression representation of the interpolation.
-
#to_quoted_equivalent ⇒ Sass::Script::Tree::Node
Returns an `unquote()` expression that will evaluate to the same value as this interpolation.
- #to_sass(opts = {}) ⇒ Object
Methods inherited from Node
Constructor Details
#initialize(before, mid, after, wb, wa, opts = {}) ⇒ Interpolation
Interpolation in a property is of the form `before ##mid after`.
52 53 54 55 56 57 58 59 60 61 62 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 52 def initialize(before, mid, after, wb, wa, opts = {}) # rubocop:enable ParameterLists @before = before @mid = mid @after = after @whitespace_before = wb @whitespace_after = wa @originally_text = opts[:originally_text] || false @warn_for_color = opts[:warn_for_color] || false @deprecation = opts[:deprecation] || :none end |
Constructor Details
#initialize(before, mid, after, wb, wa, opts = {}) ⇒ Interpolation
Interpolation in a property is of the form `before ##mid after`.
52 53 54 55 56 57 58 59 60 61 62 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 52 def initialize(before, mid, after, wb, wa, opts = {}) # rubocop:enable ParameterLists @before = before @mid = mid @after = after @whitespace_before = wb @whitespace_after = wa @originally_text = opts[:originally_text] || false @warn_for_color = opts[:warn_for_color] || false @deprecation = opts[:deprecation] || :none end |
Instance Attribute Details
#after ⇒ Node (readonly)
Returns The SassScript after the interpolation
13 14 15 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 13 def after @after end |
#before ⇒ Node (readonly)
Returns The SassScript before the interpolation
7 8 9 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 7 def before @before end |
#deprecation ⇒ Symbol (readonly)
The type of interpolation deprecation for this node.
This can be `:none`, indicating that the node doesn't use deprecated interpolation; `:immediate`, indicating that a deprecation warning should be emitted as soon as possible; or `:potential`, indicating that a deprecation warning should be emitted if the resulting string is used in a way that would distinguish it from a list.
39 40 41 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 39 def deprecation @deprecation end |
#mid ⇒ Node (readonly)
Returns The SassScript within the interpolation
10 11 12 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 10 def mid @mid end |
#originally_text ⇒ Boolean (readonly)
Returns Whether the original format of the interpolation was plain text, not an interpolation. This is used when converting back to SassScript.
24 25 26 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 24 def originally_text @originally_text end |
#warn_for_color ⇒ Boolean (readonly)
Returns Whether a color value passed to the interpolation should generate a warning.
28 29 30 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 28 def warn_for_color @warn_for_color end |
#whitespace_after ⇒ Boolean (readonly)
Returns Whether there was whitespace between `}` and `after`
19 20 21 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 19 def whitespace_after @whitespace_after end |
#whitespace_before ⇒ Boolean (readonly)
Returns Whether there was whitespace between `before` and `#{`
16 17 18 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 16 def whitespace_before @whitespace_before end |
Instance Method Details
#children ⇒ Array<Node>
Returns the three components of the interpolation, `before`, `mid`, and `after`.
102 103 104 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 102 def children [@before, @mid, @after].compact end |
#deep_copy ⇒ Object
107 108 109 110 111 112 113 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 107 def deep_copy node = dup node.instance_variable_set('@before', @before.deep_copy) if @before node.instance_variable_set('@mid', @mid.deep_copy) node.instance_variable_set('@after', @after.deep_copy) if @after node end |
#inspect ⇒ String
Returns A human-readable s-expression representation of the interpolation
65 66 67 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 65 def inspect "(interpolation #{@before.inspect} #{@mid.inspect} #{@after.inspect})" end |
#to_quoted_equivalent ⇒ Sass::Script::Tree::Node
Returns an `unquote()` expression that will evaluate to the same value as this interpolation.
88 89 90 91 92 93 94 95 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 88 def to_quoted_equivalent Funcall.new( "unquote", [to_string_interpolation(self)], Sass::Util::NormalizedMap.new, nil, nil) end |
#to_sass(opts = {}) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File '.ruby-sass/lib/sass/script/tree/interpolation.rb', line 70 def to_sass(opts = {}) return to_quoted_equivalent.to_sass if deprecation == :immediate res = "" res << @before.to_sass(opts) if @before res << ' ' if @before && @whitespace_before res << '#{' unless @originally_text res << @mid.to_sass(opts) res << '}' unless @originally_text res << ' ' if @after && @whitespace_after res << @after.to_sass(opts) if @after res end |