#compdef rails #autoload # Rails 4 zsh completion # Based on Rails 3 plugin : # https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/rails3/_rails3 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" (short-cut alias: "d")' '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=( controller generator helper integration_test mailer migration model observer performance_test plugin resource scaffold scaffold_controller session_migration stylesheets ) } _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 generate) _rails_generate_arguments _wanted generate_arguments expl 'all generate' compadd -a generate_arguments ;; esac