Class Sass::Repl
In: lib/sass/repl.rb
Parent: Object
Haml::Util Engine Color SyntaxError UnitConversionError StandardError Node Operation Literal UnaryOperation Funcall Variable Number String Bool EvaluationContext Node\n[lib/sass/css.rb\nlib/sass/tree/node.rb] DebugNode IfNode CommentNode ForNode MixinNode VariableNode ImportNode WhileNode MixinDefNode Repl CSS Environment Lexer Parser PropNode\n[lib/sass/css.rb\nlib/sass/tree/prop_node.rb] DirectiveNode\n[lib/sass/css.rb\nlib/sass/tree/directive_node.rb] RuleNode\n[lib/sass/css.rb\nlib/sass/tree/rule_node.rb] Rack lib/sass/repl.rb lib/sass/css.rb lib/sass/environment.rb lib/sass/error.rb lib/sass/engine.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/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/number.rb lib/sass/script/functions.rb Functions Script Files 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/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/mixin_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 Plugin Sass dot/m_54_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 = $2 == '||='
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]