Sha256: c9a2f61028d52113b0fd06b2d05071cf01908e6848c4c92df75ce0c75fc82b9f

Contents?: true

Size: 1.21 KB

Versions: 28

Compression:

Stored size: 1.21 KB

Contents

require 'pry'
require 'pry-byebug'
require 'arql/commands'
require 'rainbow'

module Arql
  class Repl
    def initialize
      Pry.config.prompt = Pry::Prompt.new("", "", prompt)
      Pry.start
    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, pry_instance|
         if obj == main_object && nest_level == 0
           nest_level_prompt = ''
         else
           nest_level_prompt = if nest_level.zero?
                                 "(#{obj})"
                               else
                                 "(#{obj}:#{nest_level})"
                               end
         end
          if Arql::Commands::Sandbox.enabled
            sandbox_indicator = ' [%s] ' % Rainbow('sandbox').green.bright
          else
            sandbox_indicator = ''
          end
         "%s#{Rainbow('@').green}%s%s#{nest_level_prompt} [%d] %s " % [Rainbow('ARQL').red, Rainbow(App.prompt).yellow, sandbox_indicator, pry_instance.input_ring.count, Rainbow('❯').green]
       end]
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
arql-0.4.0 lib/arql/repl.rb
arql-0.3.31 lib/arql/repl.rb
arql-0.3.30 lib/arql/repl.rb
arql-0.3.29 lib/arql/repl.rb
arql-0.3.28 lib/arql/repl.rb
arql-0.3.27 lib/arql/repl.rb
arql-0.3.26 lib/arql/repl.rb
arql-0.3.25 lib/arql/repl.rb
arql-0.3.24 lib/arql/repl.rb
arql-0.3.23 lib/arql/repl.rb
arql-0.3.22 lib/arql/repl.rb
arql-0.3.21 lib/arql/repl.rb
arql-0.3.20 lib/arql/repl.rb
arql-0.3.19 lib/arql/repl.rb
arql-0.3.18 lib/arql/repl.rb
arql-0.3.17 lib/arql/repl.rb
arql-0.3.16 lib/arql/repl.rb
arql-0.3.15 lib/arql/repl.rb
arql-0.3.14 lib/arql/repl.rb
arql-0.3.13 lib/arql/repl.rb