module AmazingRailsConsole::Prompts

Public Class Methods

choose_prompt_for_pry_version() click to toggle source
# File lib/amazing_rails_console/prompts.rb, line 5
def self.choose_prompt_for_pry_version
  old_prompt = Pry.config.prompt

  Pry.config.prompt = if Pry::VERSION && (Gem::Version.new(Pry::VERSION) >= Gem::Version.new('0.13.0'))
    post_pry_13_prompt(old_prompt)
  else
    pre_pry_13_prompt(old_prompt)
  end
end
post_pry_13_prompt(old_prompt) click to toggle source

Pry 0.13.0 introduces new syntax for registering a prompt. github.com/pry/pry/wiki/Customization-and-configuration#Config_prompt

# File lib/amazing_rails_console/prompts.rb, line 25
def self.post_pry_13_prompt(old_prompt)
  Pry::Prompt.new(
    :amazing_rails_console, # name
    "amazing_rails_console default prompt", # description
    [
      proc { |*a| # "main" prompt
        "#{Rails.env.classify} #{old_prompt.wait_proc.call(*a)}"
      },
      proc { |*a| # "wait" prompt (multiline input continuation)
        "#{Rails.env.classify} #{old_prompt.incomplete_proc.call(*a)}"
      }
    ]
  )
end
pre_pry_13_prompt(old_prompt) click to toggle source

Define a custom prompt using pre pry-0.13.0 syntax

# File lib/amazing_rails_console/prompts.rb, line 16
def self.pre_pry_13_prompt(old_prompt)
  [
    proc { |*a| "#{Rails.env.classify} #{old_prompt.first.call(*a)}"  },
    proc { |*a| "#{Rails.env.classify} #{old_prompt.second.call(*a)}" }
  ]
end