diff options
Diffstat (limited to 'plugins/rails')
| -rw-r--r-- | plugins/rails/_rails | 63 | ||||
| -rw-r--r-- | plugins/rails/rails.plugin.zsh | 69 | 
2 files changed, 123 insertions, 9 deletions
| diff --git a/plugins/rails/_rails b/plugins/rails/_rails new file mode 100644 index 000000000..96f57ce64 --- /dev/null +++ b/plugins/rails/_rails @@ -0,0 +1,63 @@ +#compdef rails +#autoload + +local -a _1st_arguments +_1st_arguments=( +    'generate:Generate new code (short-cut alias: "g")' +    'console:Start the Rails console (short-cut alias: "c")' +    'server:Start the Rails server (short-cut alias: "s")' +    'dbconsole:Start a console for the database specified in config/database.yml (short-cut alias: "db")' +    'new:Create a new Rails application. "rails new my_app" creates a new application called MyApp in "./my_app"' +    'application:Generate the Rails application code' +    'destroy:Undo code generated with "generate"' + +    'benchmarker:See how fast a piece of code runs' +    'profiler:Get profile information from a piece of code' +    'plugin:Install a plugin' + +    'plugin new:Generates skeleton for developing a Rails plugin' +    'runner:Run a piece of code in the application environment (short-cut alias: "r")' +) + +_rails_generate_arguments() { +    generate_arguments=( +        assets +        controller +        decorator +        generator +        helper +        integration_test +        mailer +        migration +        model +        observer +        performance_test +        plugin +        resource +        scaffold +        scaffold_controller +        session_migration +        stylesheets +        task +    ) +} + + +_arguments \ +    '(--version)--version[show version]' \ +    '(--help)--help[show help]' \ +    '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then +  _describe -t commands "rails subcommand" _1st_arguments +  return +fi + +case "$words[1]" in +  g|generate) +    _rails_generate_arguments +    _wanted generate_arguments expl 'all generate' compadd -a generate_arguments ;; +  d|destroy) +    _rails_generate_arguments +    _wanted generate_arguments expl 'all generate' compadd -a generate_arguments ;; +esac diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index dd8b174b2..4a96754e4 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -1,20 +1,71 @@ +function _rails_command () { +  if [ -e "script/server" ]; then +    ruby script/$@ +  elif [ -e "script/rails" ]; then +    ruby script/rails $@ +  elif [ -e "bin/rails" ]; then +    bin/rails $@ +  else +    rails $@ +  fi +} + +function _rake_command () { +  if [ -e "bin/rake" ]; then +    bin/rake $@ +  else +    rake $@ +  fi +} + +alias rails='_rails_command' +compdef _rails_command=rails + +alias rake='_rake_command' +compdef _rake_command=rake + +alias devlog='tail -f log/development.log' +alias prodlog='tail -f log/production.log' +alias testlog='tail -f log/test.log' + +alias -g RED='RAILS_ENV=development' +alias -g REP='RAILS_ENV=production' +alias -g RET='RAILS_ENV=test' + +# Rails aliases +alias rc='rails console' +alias rd='rails destroy' +alias rdb='rails dbconsole' +alias rg='rails generate' +alias rgm='rails generate migration' +alias rp='rails plugin' +alias ru='rails runner' +alias rs='rails server' +alias rsd='rails server --debugger' + +# Rake aliases +alias rdm='rake db:migrate' +alias rdr='rake db:rollback' +alias rdc='rake db:create' +alias rds='rake db:seed' +alias rdd='rake db:drop' +alias rdtc='rake db:test:clone' +alias rdtp='rake db:test:prepare' +alias rdmtc='rake db:migrate db:test:clone' + +alias rlc='rake log:clear' +alias rn='rake notes' +alias rr='rake routes' + +# legacy stuff  alias ss='thin --stats "/thin/stats" start'  alias sg='ruby script/generate'  alias sd='ruby script/destroy'  alias sp='ruby script/plugin'  alias sr='ruby script/runner'  alias ssp='ruby script/spec' -alias rdbm='rake db:migrate' -alias rdbtp='rake db:test:prepare' -alias migrate='rake db:migrate && rake db:test:prepare'  alias sc='ruby script/console'  alias sd='ruby script/server --debugger' -alias devlog='tail -f log/development.log' -alias testlog='tail -f log/test.log' -alias prodlog='tail -f log/production.log' -alias -g RET='RAILS_ENV=test' -alias -g REP='RAILS_ENV=production' -alias -g RED='RAILS_ENV=development'  function remote_console() {    /usr/bin/env ssh $1 "( cd $2 && ruby script/console production )" | 
