module SpiritHands::Prompt

Constants

State

:object Object :level Fixnum :pry Pry :app String or Rails::Application :multiline false: normal prompt, true: multiline prompt

Public Class Methods

install!() click to toggle source
# File lib/spirit_hands/prompt.rb, line 7
def install!
  ::Pry.config.prompt = [ main, multiline ].freeze
end

Private Class Methods

main() click to toggle source

Normal, main pry prompt

# File lib/spirit_hands/prompt/main.rb, line 9
def main
  ->(object, level, pry) do
    s = State.new(object, level, pry, ::SpiritHands.app, false)
    color = ::SpiritHands.color && ::SpiritHands.colored_prompt
    render(s, ::SpiritHands.prompt, color)
  end
end
multiline() click to toggle source

Wait pry prompt in multiline input

# File lib/spirit_hands/prompt/multiline.rb, line 9
def multiline
  ->(object, level, pry) {
    s = State.new(object, level, pry, ::SpiritHands.app, true)
    render(s, ::SpiritHands.prompt, ::SpiritHands.color && ::SpiritHands.colored_prompt)
  }
end
render(state, prompt, color = true) click to toggle source
# File lib/spirit_hands/prompt/base.rb, line 10
def render(state, prompt, color = true)
  r = Render.new(state, prompt, color)
  res = r.to_s
  STDERR.puts "\n" + (r.errors * "\n") + "\n" if r.errors?
  res
end