Class: Sangi::REPL

Inherits:
Object
  • Object
show all
Defined in:
lib/sangi/repl.rb

Instance Method Summary collapse

Constructor Details

#initialize(config:, input: STDIN, output: STDOUT) ⇒ REPL

Returns a new instance of REPL.



3
4
5
6
7
# File 'lib/sangi/repl.rb', line 3

def initialize(config:, input: STDIN, output: STDOUT)
  @config = config
  @input = input
  @output = output
end

Instance Method Details

#startObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/sangi/repl.rb', line 9

def start
  loop do
    @output.print "sangi> "
    line = @input.gets
    break if line.nil?

    line = line.strip
    next if line.empty?
    break if %w[:q :quit].include?(line)

    if line == ":help"
      show_help
      next
    end

    run_expression(line)
  end
  0
end