diff options
Diffstat (limited to 'plugins/rails')
-rw-r--r-- | plugins/rails/README.md | 83 | ||||
-rw-r--r-- | plugins/rails/_rails | 3 | ||||
-rw-r--r-- | plugins/rails/rails.plugin.zsh | 23 |
3 files changed, 104 insertions, 5 deletions
diff --git a/plugins/rails/README.md b/plugins/rails/README.md new file mode 100644 index 000000000..ad83fffe8 --- /dev/null +++ b/plugins/rails/README.md @@ -0,0 +1,83 @@ +# Rails + +This plugin adds completion for [Ruby On Rails Framework](https://rubyonrails.org/) and [Rake](https://ruby.github.io/rake/) commands, as well as some aliases for logs and environment variables. + +To use it, add `rails` to the plugins array in your zshrc file: + +```zsh +plugins=(... rails) +``` + +## List of Aliases + +### Rails aliases + +| Alias | Command | Description | +|-------|----------------------------|----------------------------------------------------| +| `rc` | `rails console` | Interact with your Rails app from the CLI | +| `rcs` | `rails console --sandbox` | Test code in a sandbox, without changing any data | +| `rd` | `rails destroy` | Undo a generate operation | +| `rdb` | `rails dbconsole` | Interact with your db from the console | +| `rgen`| `rails generate` | Generate boilerplate code | +| `rgm` | `rails generate migration` | Generate a db migration | +| `rp` | `rails plugin` | Run a Rails plugin command | +| `ru` | `rails runner` | Run Ruby code in the context of Rails | +| `rs` | `rails server` | Launch a web server | +| `rsd` | `rails server --debugger` | Launch a web server with debugger | +| `rsp` | `rails server --port` | Launch a web server and specify the listening port | + +### Rake aliases + +| Alias | Command | Description | +|---------|---------------------------------|--------------------------------------------------------| +| `rdm` | `rake db:migrate` | Run pending db migrations | +| `rdms` | `rake db:migrate:status` | Show current db migration status | +| `rdmtc` | `rake db:migrate db:test:clone` | Run pending migrations and clone db into test database | +| `rdr` | `rake db:rollback` | Roll back the last migration | +| `rdc` | `rake db:create` | Create the database | +| `rds` | `rake db:seed` | Seed the database | +| `rdd` | `rake db:drop` | Delete the database | +| `rdrs` | `rake db:reset` | Delete the database and set it up again | +| `rdtc` | `rake db:test:clone` | Clone the database into the test database | +| `rdtp` | `rake db:test:prepare` | Duplicate the db schema into your test database | +| `rdsl` | `rake db:schema:load` | Load the database schema | +| `rlc` | `rake log:clear` | Clear Rails logs | +| `rn` | `rake notes` | Search for notes (`FIXME`, `TODO`) in code comments | +| `rr` | `rake routes` | List all defined routes | +| `rrg` | `rake routes \| grep` | List and filter the defined routes | +| `rt` | `rake test` | Run Rails tests | +| `rmd` | `rake middleware` | Interact with Rails middlewares | +| `rsts` | `rake stats` | Print code statistics | + +### Utility aliases + +| Alias | Command | Description | +|-----------|-------------------------------|------------------------------------------------| +| `devlog` | `tail -f log/development.log` | Show and follow changes to the development log | +| `prodlog` | `tail -f log/production.log` | Show and follow changes to the production log | +| `testlog` | `tail -f log/test.log` | Show and follow changes to the test log | + +### Environment settings + +| Alias | Command | Description | +|-------|-------------------------|---------------------------------| +| `RED` | `RAILS_ENV=development` | Sets `RAILS_ENV` to development | +| `REP` | `RAILS_ENV=production` | Sets `RAILS_ENV` to production | +| `RET` | `RAILS_ENV=test` | Sets `RAILS_ENV` to test | + +These are global aliases. Use in combination with a command or just run them +separately. For example: `REP rake db:migrate` will migrate the production db. + +### Legacy stuff + +| Alias | Command | +|---------|------------------------------------| +| `sstat` | `thin --stats "/thin/stats" start` | +| `sg` | `ruby script/generate` | +| `sd` | `ruby script/destroy` | +| `sp` | `ruby script/plugin` | +| `sr` | `ruby script/runner` | +| `ssp` | `ruby script/spec` | +| `sc` | `ruby script/console` | +| `sd` | `ruby script/server --debugger` | + diff --git a/plugins/rails/_rails b/plugins/rails/_rails index 96f57ce64..ad7505506 100644 --- a/plugins/rails/_rails +++ b/plugins/rails/_rails @@ -51,6 +51,9 @@ _arguments \ if (( CURRENT == 1 )); then _describe -t commands "rails subcommand" _1st_arguments return +else + _files + return fi case "$words[1]" in diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 5ed96f8cd..1fd5f0f86 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -1,5 +1,7 @@ function _rails_command () { - if [ -e "bin/rails" ]; then + if [ -e "bin/stubs/rails" ]; then + bin/stubs/rails $@ + elif [ -e "bin/rails" ]; then bin/rails $@ elif [ -e "script/rails" ]; then ruby script/rails $@ @@ -11,8 +13,12 @@ function _rails_command () { } function _rake_command () { - if [ -e "bin/rake" ]; then + if [ -e "bin/stubs/rake" ]; then + bin/stubs/rake $@ + elif [ -e "bin/rake" ]; then bin/rake $@ + elif type bundle &> /dev/null && ([ -e "Gemfile" ] || [ -e "gems.rb" ]); then + bundle exec rake $@ else command rake $@ fi @@ -34,14 +40,16 @@ alias -g RET='RAILS_ENV=test' # Rails aliases alias rc='rails console' +alias rcs='rails console --sandbox' alias rd='rails destroy' alias rdb='rails dbconsole' -alias rg='rails generate' +alias rgen='rails generate' alias rgm='rails generate migration' alias rp='rails plugin' alias ru='rails runner' alias rs='rails server' alias rsd='rails server --debugger' +alias rsp='rails server --port' # Rake aliases alias rdm='rake db:migrate' @@ -50,16 +58,21 @@ alias rdr='rake db:rollback' alias rdc='rake db:create' alias rds='rake db:seed' alias rdd='rake db:drop' +alias rdrs='rake db:reset' alias rdtc='rake db:test:clone' alias rdtp='rake db:test:prepare' alias rdmtc='rake db:migrate db:test:clone' - +alias rdsl='rake db:schema:load' alias rlc='rake log:clear' alias rn='rake notes' alias rr='rake routes' +alias rrg='rake routes | grep' +alias rt='rake test' +alias rmd='rake middleware' +alias rsts='rake stats' # legacy stuff -alias ss='thin --stats "/thin/stats" start' +alias sstat='thin --stats "/thin/stats" start' alias sg='ruby script/generate' alias sd='ruby script/destroy' alias sp='ruby script/plugin' |