Class Sass::Script::Interpolation
In: lib/sass/script/interpolation.rb
Parent: Node
Haml::Util Engine Color SyntaxError UnitConversionError StandardError AbstractSequence CommaSequence Sequence SimpleSequence Simple Parent Universal Class Negation Id Pseudo Attribute Interpolation Element Node Operation Literal UnaryOperation StringInterpolation Funcall Variable Interpolation Lexer CssLexer Number String Bool Parser Parser CssParser EvaluationContext StaticParser SassParser CssParser Node DebugNode IfNode CommentNode ForNode PropNode MixinNode DirectiveNode VariableNode RootNode WarnNode ExtendNode RuleNode MixinDefNode WhileNode Enumerable ImportNode Merb::BootLoader MerbBootLoader Repl CSS Environment Rack StalenessChecker lib/sass/repl.rb lib/sass/css.rb lib/sass/environment.rb lib/sass/error.rb lib/sass/engine.rb lib/sass/selector/simple_sequence.rb lib/sass/selector/abstract_sequence.rb lib/sass/selector/sequence.rb lib/sass/selector/comma_sequence.rb lib/sass/selector/simple.rb lib/sass/selector.rb Selector lib/sass/script/css_parser.rb lib/sass/script/lexer.rb lib/sass/script/color.rb lib/sass/script/string.rb lib/sass/script/unary_operation.rb lib/sass/script/variable.rb lib/sass/script/funcall.rb lib/sass/script/string_interpolation.rb lib/sass/script/operation.rb lib/sass/script/bool.rb lib/sass/script/parser.rb lib/sass/script/node.rb lib/sass/script/literal.rb lib/sass/script/interpolation.rb lib/sass/script/css_lexer.rb lib/sass/script/number.rb lib/sass/script/functions.rb Functions Script lib/sass/scss/sass_parser.rb lib/sass/scss/static_parser.rb lib/sass/scss/parser.rb lib/sass/scss/css_parser.rb ScriptParser ScriptLexer RX SCSS Files Callbacks lib/sass/tree/while_node.rb lib/sass/tree/if_node.rb lib/sass/tree/mixin_def_node.rb lib/sass/tree/debug_node.rb lib/sass/tree/root_node.rb lib/sass/tree/for_node.rb lib/sass/tree/import_node.rb lib/sass/tree/prop_node.rb lib/sass/tree/node.rb lib/sass/tree/comment_node.rb lib/sass/tree/extend_node.rb lib/sass/tree/mixin_node.rb lib/sass/tree/warn_node.rb lib/sass/tree/directive_node.rb lib/sass/tree/rule_node.rb lib/sass/tree/variable_node.rb Tree lib/sass/plugin/rack.rb lib/sass/plugin/staleness_checker.rb lib/sass/plugin/merb.rb Plugin Sass dot/m_61_0.png

A SassScript object representing `#{}` interpolation outside a string.

@see StringInterpolation

Methods

_perform   children   inspect   new   to_sass  

Public Class methods

Interpolation in a property is of the form `before #{mid} after`.

@param before [Node] The SassScript before the interpolation @param mid [Node] The SassScript within the interpolation @param after [Node] The SassScript after the interpolation @param wb [Boolean] Whether there was whitespace between `before` and `#{` @param wa [Boolean] Whether there was whitespace between `}` and `after` @param originally_text [Boolean]

  Whether the original format of the interpolation was plain text,
  not an interpolation.
  This is used when converting back to SassScript.

[Source]

    # File lib/sass/script/interpolation.rb, line 17
17:     def initialize(before, mid, after, wb, wa, originally_text = false)
18:       @before = before
19:       @mid = mid
20:       @after = after
21:       @whitespace_before = wb
22:       @whitespace_after = wa
23:       @originally_text = originally_text
24:     end

Public Instance methods

Returns the three components of the interpolation, `before`, `mid`, and `after`.

@return [Array<Node>] @see initialize @see Node#children

[Source]

    # File lib/sass/script/interpolation.rb, line 49
49:     def children
50:       [@before, @mid, @after].compact
51:     end

@return [String] A human-readable s-expression representation of the interpolation

[Source]

    # File lib/sass/script/interpolation.rb, line 27
27:     def inspect
28:       "(interpolation #{@before.inspect} #{@mid.inspect} #{@after.inspect})"
29:     end

@see Node#to_sass

[Source]

    # File lib/sass/script/interpolation.rb, line 32
32:     def to_sass(opts = {})
33:       res = ""
34:       res << @before.to_sass(opts) if @before
35:       res << ' ' if @before && @whitespace_before
36:       res << '#{' unless @originally_text
37:       res << @mid.to_sass(opts)
38:       res << '}' unless @originally_text
39:       res << ' ' if @after && @whitespace_after
40:       res << @after.to_sass(opts) if @after
41:       res
42:     end

Protected Instance methods

Evaluates the interpolation.

@param environment [Sass::Environment] The environment in which to evaluate the SassScript @return [Sass::Script::String] The SassScript string that is the value of the interpolation

[Source]

    # File lib/sass/script/interpolation.rb, line 59
59:     def _perform(environment)
60:       res = ""
61:       res << @before.perform(environment).to_s if @before
62:       res << " " if @before && @whitespace_before
63:       val = @mid.perform(environment)
64:       res << (val.is_a?(Sass::Script::String) ? val.value : val.to_s)
65:       res << " " if @after && @whitespace_after
66:       res << @after.perform(environment).to_s if @after
67:       Sass::Script::String.new(res)
68:     end

[Validate]