Class Sass::Repl
In: lib/sass/repl.rb
Parent: Object
Haml::Util Engine Color SyntaxError UnitConversionError StandardError AbstractSequence CommaSequence Sequence SimpleSequence Simple Parent Universal Class SelectorPseudoClass Id Pseudo Attribute Interpolation Element Node Operation Literal UnaryOperation StringInterpolation Funcall Interpolation Variable Lexer CssLexer Number Bool String Parser Parser CssParser EvaluationContext StaticParser SassParser CssParser Node DebugNode IfNode CommentNode ForNode PropNode MixinNode DirectiveNode ExtendNode VariableNode WarnNode RootNode WhileNode RuleNode MixinDefNode 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/literal.rb lib/sass/script/node.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 ScriptLexer ScriptParser 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_85_0.png

Runs a SassScript read-eval-print loop. It presents a prompt on the terminal, reads in SassScript expressions, evaluates them, and prints the result.

Methods

new   parse_input   run  

Public Class methods

@param options [{Symbol => Object}] An options hash.

[Source]

    # File lib/sass/repl.rb, line 11
11:     def initialize(options = {})
12:       @options = options
13:     end

Public Instance methods

Starts the read-eval-print loop.

[Source]

    # File lib/sass/repl.rb, line 16
16:     def run
17:       environment = Environment.new
18:       environment.set_var('important', Script::String.new('!important'))
19:       @line = 0
20:       loop do
21:         @line += 1
22:         unless text = Readline.readline('>> ')
23:           puts
24:           return
25:         end
26: 
27:         Readline::HISTORY << text
28:         parse_input(environment, text)
29:       end
30:     end

Private Instance methods

[Source]

    # File lib/sass/repl.rb, line 34
34:     def parse_input(environment, text)
35:       case text
36:       when Script::MATCH
37:         name = $1
38:         guarded = $3 == '||=' || $4
39:         val = Script::Parser.parse($3, @line, text.size - $3.size)
40: 
41:         unless guarded && environment.var(name)
42:           environment.set_var(name, val.perform(environment))
43:         end
44: 
45:         p environment.var(name)
46:       else
47:         p Script::Parser.parse(text, @line, 0).perform(environment)
48:       end
49:     rescue Sass::SyntaxError => e
50:       puts "SyntaxError: #{e.message}"
51:       if @options[:trace]
52:         e.backtrace.each do |e|
53:           puts "\tfrom #{e}"
54:         end
55:       end
56:     end

[Validate]