This is Devhints.io cheatsheets — a collection of cheatsheets I've written.

# Pry

### cd

    > cd Array

    > ls
      Array.methods: [] try_convert
      Array#methods: & * + abbrev assoc at ...

    > show-source

### Code

    > show-method Array#select

### Docs

    > ri Array
    > ri Array#each

    > cd Gem
    > show-doc try_activate

### Finding

    > find-method each
      Array#each
      Array#each_index
      Enumerable#each_slice
      ...

### Editing

    > edit Pry#repl

### Gems

    > gem-cd foo      # Switch to gem's dir
    > gem-install foo
    > gem-list

### Misc commands

    > hist          # History
    > wtf?          # Trace of recent exception

## Rails

### Rails console

Also consider pry-rails.

    $ pry -r ./config/environment

### Rails

    > show-models
    > show-routes
    > show-middleware

### ls

    > ls         # All

    > ls -m      # Methods
    > ls -M      # Instance methods

    > ls -g      # Globals
    > ls -l      # Local vars
    > ls -c      # Constants

    > ls -i      # Instance vars

    > ls -G xx   # Grey by regex

## Shell integration

shell-mode adds dir to the prompt.

    pry(main)> shell-mode
    pry(main):/home/x $

Commands with `.` are shell commands.

    pry(main)> .cat hello.txt

## hirb

Add the hirb gem.

    > table User.all
    > view User.all
    > view User.all, fields: %w[id name email]

## pry-rescue

Add the pry-rescue gem.

    Pry::rescue {
      # raise exceptions here
    }

Or run:

    bundle exec rescue rspec

Additional commands:

    pry(main)> cd-cause
    pry(main)> try-again

## pry-remote

Add the pry-remote gem.

    # In your code:
    binding.remote_pry

    # In the shell:
    bundle exec pry-remote

## Reference

- Pry
- Hirb

Devhints.io cheatsheets is a collection of cheatsheets I've written over the years. Suggestions and corrections? Send them in. I'm Rico Sta. Cruz. Check out my Today I learned blog for more.