Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pry/pry-rails

Rails >= 3 pry initializer
https://github.com/pry/pry-rails

Last synced: 30 days ago
JSON representation

Rails >= 3 pry initializer

Awesome Lists containing this project

README

        

This project is not actively maintained and looking for a maintainer!

# Description

Avoid repeating yourself, use pry-rails instead of copying the initializer to every rails project.
This is a small gem which causes `rails console` to open [pry](https://pry.github.io/). It therefore depends on *pry*.

# Prerequisites

- A Rails >= 3.0 Application
- Ruby >= 1.9

# Installation

Add this line to your gemfile:

gem 'pry-rails', :group => :development

`bundle install` and enjoy pry.

# Usage

```
$ rails console
[1] pry(main)> show-routes
pokemon POST /pokemon(.:format) pokemons#create
new_pokemon GET /pokemon/new(.:format) pokemons#new
edit_pokemon GET /pokemon/edit(.:format) pokemons#edit
GET /pokemon(.:format) pokemons#show
PUT /pokemon(.:format) pokemons#update
DELETE /pokemon(.:format) pokemons#destroy
beer POST /beer(.:format) beers#create
new_beer GET /beer/new(.:format) beers#new
edit_beer GET /beer/edit(.:format) beers#edit
GET /beer(.:format) beers#show
PUT /beer(.:format) beers#update
DELETE /beer(.:format) beers#destroy
[2] pry(main)> show-routes --grep beer
beer POST /beer(.:format) beers#create
new_beer GET /beer/new(.:format) beers#new
edit_beer GET /beer/edit(.:format) beers#edit
GET /beer(.:format) beers#show
PUT /beer(.:format) beers#update
DELETE /beer(.:format) beers#destroy
[3] pry(main)> show-routes --grep new
new_pokemon GET /pokemon/new(.:format) pokemons#new
new_beer GET /beer/new(.:format) beers#new
[4] pry(main)> show-models
Beer
id: integer
name: string
type: string
rating: integer
ibu: integer
abv: integer
created_at: datetime
updated_at: datetime
belongs_to hacker
Hacker
id: integer
social_ability: integer
created_at: datetime
updated_at: datetime
has_many pokemons
has_many beers
Pokemon
id: integer
name: string
caught: binary
species: string
abilities: string
created_at: datetime
updated_at: datetime
belongs_to hacker
has_many beers through hacker
```

## Custom Rails prompt

If you want to permanently include the current Rails environment and project name
in the Pry prompt, put the following lines in your project's `.pryrc`:

```ruby
Pry.config.prompt = Pry::Prompt[:rails]
```

If `.pryrc` could be loaded without pry-rails being available or installed,
guard against setting `Pry.config.prompt` to `nil`:

```ruby
if Pry::Prompt[:rails]
Pry.config.prompt = Pry::Prompt[:rails]
end
```

Check out `change-prompt --help` for information about temporarily
changing the prompt for the current Pry session.

## Disabling pry-rails

If pry-rails is included in your application but you would prefer not to use it, you may run the following command to set the appropriate environment variable to disable initialization and fall back to the default IRB console:
```shell
DISABLE_PRY_RAILS=1 rails console
```

Note that you may need to run `spring stop` first.

# Developing and Testing

This repo uses [Roadshow] to generate a [Docker Compose] file for each
supported version of Rails (with a compatible version of Ruby for each one).

To run specs across all versions, you can either [get the Roadshow tool] and
run `roadshow run`, or use Docker Compose directly:

```
$ for fn in scenarios/*.docker-compose.yml; do docker-compose -f $fn run --rm scenario; done
```

You can also manually run the Rails console and server on each version with
`roadshow run rake console` and `roadshow run rake server`, or run them on a
specific version with, e.g., `roadshow run -s rails40 rake console`.

To update the set of scenarios, edit `scenarios.yml` and run `roadshow
generate`, although the Gemfiles in the `scenarios` directory need to be
maintained manually.

[Roadshow]: https://github.com/rf-/roadshow
[Docker Compose]: https://docs.docker.com/compose/
[get the Roadshow tool]: https://github.com/rf-/roadshow/releases

# Alternative

If you want to enable pry everywhere, make sure to check out
[pry everywhere](http://lucapette.me/pry-everywhere).