← [[doom-module-index:][Back to module index]]               ! [[doom-module-issues:::lang ruby][Issues]]  ↖ [[doom-source:modules/lang/ruby/][Github]]  ± [[doom-suggest-edit:][Suggest edits]]  ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE:    :lang ruby
#+SUBTITLE: 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
#+CREATED:  January 16, 2007
#+SINCE:    1.3

* Description :unfold:
This module add Ruby and optional Ruby on Rails support to Emacs.

- Code completion ([[doom-package:][robe]])
- Syntax checking ([[doom-package:][flycheck]])
- Jump-to-definitions ([[doom-package:][robe]])
- Bundler
- Rubocop integration ([[doom-package:][flycheck]])

** Maintainers
- [[doom-user:][@hlissner]]

[[doom-contrib-maintainer:][Become a maintainer?]]

** Module flags
- +chruby ::
  Enable chruby integration.
- +lsp ::
  Enable LSP support for ~ruby-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
  (supports solargraph).
- +rails ::
  Enable rails navigational commands, plus server+console integration.
- +rbenv ::
  Enable rbenv integration.
- +rvm ::
  Enable RVM (Ruby Version Manager) integration.

** Packages
- [[doom-package:][bundler]]
- [[doom-package:][chruby]] if [[doom-module:][+chruby]]
- [[doom-package:][company-inf-ruby]] if :completion company
- [[doom-package:][inf-ruby]]
- [[doom-package:][minitest]]
- [[doom-package:][rake]]
- [[doom-package:][rbenv]] if [[doom-module:][+rbenv]]
- [[doom-package:][robe]]
- [[doom-package:][rspec-mode]]
- [[doom-package:][rubocop]]
- [[doom-package:][rvm]] if [[doom-module:][+rvm]]
- if [[doom-module:][+rails]]
  - [[doom-package:][inflections]]
  - [[doom-package:][projectile-rails]]

** Hacks
/No hacks documented for this module./

** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./

* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]

This module requires Ruby and the Rubocop gem. It is recommended you install
both with some version manager (RVM or Rbenv).

These guides will help you install Ruby:
- [[https://gorails.com/setup/ubuntu/18.04][Ubuntu]]
- [[https://gorails.com/setup/osx/10.15-catalina][MacOS]]
- [[https://gorails.com/setup/windows/10][Windows]]

Then run ~$ gem install rubocop~ to install rubocop.

* TODO Usage
#+begin_quote
 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote

** Commands
*** robe
| command              | key / ex command   | description                                                        |
|----------------------+--------------------+--------------------------------------------------------------------|
| ~robe-start~         | [[kbd:][<localleader> ']]  | Open ruby lang server for auto-completions and jump to definitions |
| ~robe-rails-refresh~ | [[kbd:][<localleader> R]]  | Refresh the lang server.                                           |

*** projectile-rails
The projectile-rails prefix is [[kbd:][<localleader> r]]:
| command                       | key / ex command  | description                                       |
|-------------------------------+-------------------+---------------------------------------------------|
| ~projectile-rails-console~    | [[kbd:][<localleader> r r]] | Open Rails console                                |
| ~projectile-rails-server~     | [[kbd:][<localleader> r R]] | Open Rails server                                 |
| ~projectile-rails-find-model~ | [[kbd:][<localleader> r m]] | Find any model of the project                     |
| ~projectile-rails-find-model~ | [[kbd:][<localleader> r M]] | Find the model related of currently open resource |

*** bundler
The bundler prefix is [[kbd:][<localleader> b]]:
| command          | key / ex command  | description         |
|------------------+-------------------+---------------------|
| ~bundle-install~ | [[kbd:][<localleader> b i]] | Runs bundle install |
| ~bundle-update~  | [[kbd:][<localleader> b u]] | Runs bundle update  |

*** rspec-mode
The rspec-mode prefix is [[kbd:][<localleader> t]]:
| command               | key / ex command | description                       |
|-----------------------+------------------+-----------------------------------|
| ~rspec-verify~        | =SPC m t v=      | Runs rspec on current file        |
| ~rspec-verify-method~ | =SPC m t s=      | Runs rspec for the item on cursor |

* TODO Configuration
#+begin_quote
 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]

* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]

* TODO Appendix
#+begin_quote
 🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote
