Class: Sass::Script::Tree::StringInterpolation
- Inherits:
-
Node
- Object
- Node
- Sass::Script::Tree::StringInterpolation
- Defined in:
- .ruby-sass/lib/sass/script/tree/string_interpolation.rb
Overview
A SassScript object representing `#{}` interpolation within a string.
Instance Attribute Summary (collapse)
-
#after ⇒ StringInterpolation, Literal
readonly
The string literal or string interpolation before this interpolation.
-
#before ⇒ Literal
readonly
The string literal before this interpolation.
-
#mid ⇒ Node
readonly
The SassScript within the interpolation.
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) ⇒ StringInterpolation
constructor
Interpolation in a string is of the form `“before ##mid after”`, where `before` and `after` may include more interpolation.
-
#inspect ⇒ String
A human-readable s-expression representation of the interpolation.
-
#quote ⇒ Object
Returns the quote character that should be used to wrap a Sass representation of this interpolation.
- #to_sass(opts = {}) ⇒ Object
-
#type ⇒ Symbol
Whether this is a CSS string or a CSS identifier.
Methods inherited from Node
Constructor Details
#initialize(before, mid, after) ⇒ StringInterpolation
Interpolation in a string is of the form `“before ##mid after”`, where `before` and `after` may include more interpolation.
39 40 41 42 43 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 39 def initialize(before, mid, after) @before = before @mid = mid @after = after end |
Constructor Details
#initialize(before, mid, after) ⇒ StringInterpolation
Interpolation in a string is of the form `“before ##mid after”`, where `before` and `after` may include more interpolation.
39 40 41 42 43 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 39 def initialize(before, mid, after) @before = before @mid = mid @after = after end |
Instance Attribute Details
#after ⇒ StringInterpolation, Literal (readonly)
Returns The string literal or string interpolation before this interpolation.
14 15 16 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 14 def after @after end |
#before ⇒ Literal (readonly)
Returns The string literal before this interpolation.
7 8 9 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 7 def before @before end |
#mid ⇒ Node (readonly)
Returns The SassScript within the interpolation
10 11 12 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 10 def mid @mid end |
Instance Method Details
#children ⇒ Array<Node>
Returns the three components of the interpolation, `before`, `mid`, and `after`.
69 70 71 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 69 def children [@before, @mid, @after].compact end |
#deep_copy ⇒ Object
74 75 76 77 78 79 80 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 74 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
46 47 48 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 46 def inspect "(string_interpolation #{@before.inspect} #{@mid.inspect} #{@after.inspect})" end |
#quote ⇒ Object
Returns the quote character that should be used to wrap a Sass representation of this interpolation.
29 30 31 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 29 def quote quote_for(self) || '"' end |
#to_sass(opts = {}) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 51 def to_sass(opts = {}) quote = type == :string ? opts[:quote] || quote_for(self) || '"' : :none opts = opts.merge(:quote => quote) res = "" res << quote if quote != :none res << _to_sass(before, opts) res << '#{' << @mid.to_sass(opts.merge(:quote => nil)) << '}' res << _to_sass(after, opts) res << quote if quote != :none res end |
#type ⇒ Symbol
Whether this is a CSS string or a CSS identifier. The difference is that strings are written with double-quotes, while identifiers aren't.
String interpolations are only ever identifiers if they're quote-like functions such as `url()`.
23 24 25 |
# File '.ruby-sass/lib/sass/script/tree/string_interpolation.rb', line 23 def type @before.value.type end |