Browse Source

refresh .rake_tasks when lib/tasks changed (#5111)

Aleksey Ivanov 8 years ago
parent
commit
51c10783e1
1 changed files with 13 additions and 1 deletions
  1. 13 1
      plugins/rake-fast/rake-fast.plugin.zsh

+ 13 - 1
plugins/rake-fast/rake-fast.plugin.zsh

@@ -8,7 +8,19 @@ _rake_refresh () {
 }
 
 _rake_does_task_list_need_generating () {
-  [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]]
+  [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]] || (_is_rails_app && _tasks_changed)
+}
+
+_is_rails_app () {
+  [[ -e "bin/rails" ]] || [ -e "script/rails" ]
+}
+
+_tasks_changed () {
+  local is_changed=1
+  for file in lib/tasks/**/*.rake; do
+    if [[ $file -nt .rake_tasks ]]; then is_changed=0; fi
+  done
+  return is_changed
 }
 
 _rake_generate () {