Sha256: 4f1061718814c6741f2df88e3456419367ea5d5797c6848104213e77146c5a18

Contents?: true

Size: 532 Bytes

Versions: 7

Compression:

Stored size: 532 Bytes

Contents

require 'readline'
require 'gondler'

class Gondler::REPL
  def self.run
    new.run
  end

  def initialize
  end

  def run
    while (buf = Readline.readline("> ", true))
      execute(buf)
    end
  end

  def execute(line)
    cmd = line.match(/\A\w+/).to_s

    if builtin.include?(cmd)
      Gondler::CLI.start(line.split(/\s+/))
    else
      system(line)
    end
  end

  def builtin
    @builtin ||= builtin_commands.keys + ['help']
  end

  def builtin_commands
    @builtin_commands ||= Gondler::CLI.commands
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gondler-0.4.1 lib/gondler/repl.rb
gondler-0.4.0 lib/gondler/repl.rb
gondler-0.3.1 lib/gondler/repl.rb
gondler-0.3.0 lib/gondler/repl.rb
gondler-0.2.0 lib/gondler/repl.rb
gondler-0.1.3 lib/gondler/repl.rb
gondler-0.1.2 lib/gondler/repl.rb