Emacs package for interaction with rake command tool
Emacs Lisp Cucumber
Latest commit e680f1a Nov 14, 2016 @asok committed on GitHub Merge pull request #7 from sideshowcoder/recursive-discover-gemfile
Recursivly discover Gemfile


Rake Build Status

Rake is a package for running rake tasks in Emacs.

  • runs rake command using zeus, spring or bundler
  • caches the tasks
  • displays the docstrings of the tasks




Once you have setup Melpa you can use package-install command to install Projectile Rails. The package name is rake.


rake command

  • M-x rake to run a rake task.
  • C-u M-x rake to amend the command to run. Useful if you want to add arguments.
  • C-u C-u M-x rake to bypass the cache (when enabled).

rake-find-task command

  • M-x rake-find-task to find a rake task.

rake-rerun command

  • M-x rake-rerun to run the last task.

Setting up keybinding

By default rake command is not bound to any key. You might want to do something like this:

(define-key ruby-mode-map (kbd "C-!") 'rake)

Replace (kbd "C-!") with a key of your liking.



By default the caching is enabled. To disable it:

(setq rake-enable-caching nil)


By default ido is used for completion. You can customize it with:

(setq rake-completion-system 'helm)

You can set it to ido, helm, grizzl or default for the Emacs' default completion. Also, you can set it to the symbol of a custom command that accepts "prompt" as the first argument and "choices" as the second argument.

Also if you are a user of Projectile you might want to just set it to the value of projectile-completion-system like this:

(eval-after-load 'projectile
  '(setq rake-completion-system projectile-completion-system))



Install cask if you haven't already, then:

$ cd /path/to/rake
$ cask

Run all tests with:

$ cask exec ecukes