Difference between revisions of "Ruby"
(→Ruby on Rails: projectile-rails) |
|||
Line 24: | Line 24: | ||
The [http://rinari.rubyforge.org/ official documentation] is alright, but for best information check out the source. | The [http://rinari.rubyforge.org/ official documentation] is alright, but for best information check out the source. | ||
+ | |||
+ | === Projectile-rails - navigation, rake tasks, console, etc === | ||
+ | |||
+ | [[Projectile]] is a popular project management system. It allows to easily search files under a project, switch buffers pertaining to that project, switch to tests files, search in project (with <code>rgrep</code>, <code>ag</code>,…), and more. Now we can add Rails support with [https://github.com/asok/projectile-rails projectile-rails] (in melpa). | ||
+ | |||
+ | With Projectile Rails you are able to: | ||
+ | |||
+ | * navigate through rails resources (controllers, views, helpers and so on) | ||
+ | * jump to ruby classes and template files | ||
+ | * run rake | ||
+ | * run rails console | ||
+ | * run rails dbconsole | ||
+ | * run rails generate | ||
+ | * run rails server | ||
+ | * open log files with auto-revert-mode on | ||
+ | * see rails keywords highlighted | ||
+ | * take advantage of zeus and spring preloaders | ||
+ | |||
+ | It can be a replacement for rinari. | ||
== Syntax checking: flymake == | == Syntax checking: flymake == |
Revision as of 10:01, 17 May 2017
Let's configure Emacs as a productive environment for Ruby and Rails development !
ruby-mode
ruby-mode provides basic font-locking, indentation and navigation support for Ruby source code. It was first included in Emacs 23 (previously it was a third party package, maintained by Ruby's developers). While ruby-mode is fairly barebone package it could be augmented by a multitude of minor modes (see below).
ruby-end - auto insert end statements
Just install ruby-end (in ELPA). Now ruby-end-mode will start alongside ruby-mode.
Ruby on Rails
Rinari
Rinari (in melpa) stands for Rinari Is Not A Rails IDE. It is an Emacs minor mode for Rails that is actively maintained.
Rinari features:
- for 'jumps' between Model, View, Controller and their RSpec examples and Test Unit tests,
- as well as Cucumber steps and features.
- running of a console session with full Rails application loaded for interactive use,
- SQL console,
- starting of the web server (rails server).
The official documentation is alright, but for best information check out the source.
Projectile is a popular project management system. It allows to easily search files under a project, switch buffers pertaining to that project, switch to tests files, search in project (with rgrep
, ag
,…), and more. Now we can add Rails support with projectile-rails (in melpa).
With Projectile Rails you are able to:
- navigate through rails resources (controllers, views, helpers and so on)
- jump to ruby classes and template files
- run rake
- run rails console
- run rails dbconsole
- run rails generate
- run rails server
- open log files with auto-revert-mode on
- see rails keywords highlighted
- take advantage of zeus and spring preloaders
It can be a replacement for rinari.
Syntax checking: flymake
See Flymake, and install flymake-ruby (in melpa).
To make sure it is started along with ruby mode, add:
(require 'flymake-ruby)
(add-hook 'ruby-mode-hook 'flymake-ruby-load)
Ruby shell inside Emacs
inf-ruby provides a REPL buffer connected to a Ruby subprocess. It is available through the package manager. To bind to a shortcut, do something like:
(global-set-key (kbd "C-c r r") 'inf-ruby)
RVM integration
Pick rvm.el. Once installed you will just have to call rvm-activate-corresponding-ruby and rvm.el will automatically pick up your ruby version and gemset from your .rvmrc
file.
For a keybinding:
(global-set-key (kbd "C-c r a") 'rvm-activate-corresponding-ruby)