Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
making pry work with inf-ruby
(add-to-list 'inf-ruby-implementations '("pry" . "pry"))
(setq inf-ruby-default-implementation "pry")
(setq inf-ruby-first-prompt-pattern "^\\[[0-9]+\\] pry\\((.*)\\)> *")
(setq inf-ruby-prompt-pattern "^\\[[0-9]+\\] pry\\((.*)\\)[>*\"'] *")

At least from my experience and set up, this is not a proper way to make pry work under emacs 24.3 and current inf-ruby with MEPLA installation. Since this gist shows up quite high in google search result, I'd like to comment here what was the problem and how I solved it.


  • (add-to-list 'inf-ruby-implementations '("pry" . "pry")) causes init.el load error. It's already implemented in the inf-ruby.el source so I don't think it's necessary to add again.
  • (setq inf-ruby-default-implementation "pry") actually makes inf-ruby run the pry. However, with flaws. If pry is running with this set up and if I send the buffer/region/block, I get NameError: uninitialized constant IRB from (pry):1:inpry_'`. Again, I looked into the inf-ruby.el source code and it looks like inf-ruby is already taking care of the pry smartly. So this set up shouldn't be added to init.el as well.


  • don't add anything which is mentioned above to init.el to make pry work especially if it's installed from MELPA

  • Instead, set pry as default irb by

    • create ~/.irbrc if you don't have one
    • add this
    require 'pry'

dgutov commented Dec 16, 2015

Because somebody linked to this today:

The problem with "uninitialized constant IRB" has been fixed more than a year ago: nonsequitur/inf-ruby#64

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment