diff --git a/src/_rails b/src/_rails index ac494c2..4a5248d 100644 --- a/src/_rails +++ b/src/_rails @@ -160,6 +160,13 @@ _rails_g() { } __rails_generate_commands() { + local context curcontext="$curcontext" update_policy + + zstyle -s ":completion:${curcontext}:" cache-policy update_policy + if [ -z "$update_policy" ]; then + zstyle ":completion:${curcontext}:" cache-policy _rails_generate_commands_caching_policy + fi + local -a rails_generators rails_generators=( assets:'Stubs out new asset placeholders' @@ -200,6 +207,19 @@ __rails_generate_commands() { done } +_rails_generate_commands_caching_policy() { + local application_directory + __rails_setup_application_directory + + if [ "${application_directory}/Gemfile" -nt "$1" ]; then + return 0 + fi + + local -a oldp + oldp=( "$1"(Nmw+1) ) + (( $#oldp )) +} + _rails_generate_default() { local -a generators_options __rails_setup_generators_options