Sha256: c12eb8c4061b918ff157fc362515ce38145dcf2b7896d68d90f3e22629958097

Contents?: true

Size: 683 Bytes

Versions: 3

Compression:

Stored size: 683 Bytes

Contents

require 'pry'
require 'pry-byebug'

module Arql
  class Repl
    def initialize
      Pry.config.prompt = Pry::Prompt.new("", "", prompt)
      main_object.pry
    end

    def main_object
      return @main if @main
      @main = Object.new
      @main.instance_eval do
        def inspect
          to_s
        end
        def to_s
          "main"
        end
      end
      @main
    end

    def prompt
      [proc do |obj, nest_level, _|
         if obj == main_object && nest_level == 0
           nest_level_prompt = ''
         else
           nest_level_prompt = "(#{obj}:#{nest_level})"
         end
         "ARQL#{nest_level_prompt} -> "
       end]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
arql-0.1.2 lib/arql/repl.rb
arql-0.1.1 lib/arql/repl.rb
arql-0.1.0 lib/arql/repl.rb