spacemacs/contrib/!lang/ruby/README.org

7.3 KiB

Ruby contribution layer for Spacemacs

/TakeV/spacemacs/media/commit/460ce540063bebed729887c4db3dc734161e8885/contrib/!lang/ruby/img/ruby.gif

Description

This layer aims at providing support for the Ruby language using enh-ruby-mode and robe-mode.

Install

To use this contribution add it to your ~/.spacemacs

  (setq-default dotspacemacs-configuration-layers '(ruby))

Prerequisites

Some of the advanced features supported by this layer depend on external gems that need to be installed in the context of your project (see below for guidance based on your version manager):

pry and pry-doc are required for *jump to definition and code documentation (robe-mode) ruby_parser is required for *goto-step_definition in feature-mode

You can install the gems in the context of your current project by adding them to the Gemfile, e.g.:

  gem 'pry'

or on the command line (please refer to your ruby version manager specific documentation for details and caveats):

  $ gem install pry

Ruby version management

This layer supports the use of RVM and Rbenv. To enable it, set the ruby-version-manager var in your ~/.spacemacs:

  (defun dotspacemacs/init ()
    (setq-default ruby-version-manager 'rbenv)
  )

Possible values are rbenv and rvm.

Rails support

Rails support is available through projectile-rails. To enable it, set the ruby-enable-ruby-on-rails-support var in your ~/.spacemacs:

  (defun dotspacemacs/init ()
    (setq-default ruby-enable-ruby-on-rails-support t)
  )

This will also add haml-mode (for templates written in haml language and feature-mode for Cucumber support.

Key bindings

Ruby (enh-ruby-mode, robe, inf-ruby)

Key binding Description
SPC m g g go to definition (robe-jump)
SPC m h d go to Documentation
SPC m s f send function definition
SPC m s F send function definition and switch to REPL
SPC m s i start REPL
SPC m s r send region
SPC m s R send region and switch to REPL
SPC m s s switch to REPL

ruby-test-mode

ruby-test-mode comes bundled with spacemacs, but this contribution adds a couple of useful keybindings:

Key binding Description
SPC m t b run test file
SPC m t t run test at pointer

Rails (projectile-rails)

Code Navigation

Key binding Description
SPC m r f a find localization file
SPC m r f c find controller
SPC m r f e find environment file
SPC m r f f find feature
SPC m r f h find helper
SPC m r f i find initializer
SPC m r f j find javascript file
SPC m r f l find library
SPC m r f m find model
SPC m r f n find migration
SPC m r f o find log
SPC m r f p find spec file
SPC m r f r find rake task
SPC m r f s find stylesheet file
SPC m r f t find test
SPC m r f u find fixture
SPC m r f v find view
SPC m r f y find layout
SPC m r f @ find mailer
SPC m r g c go to current controller
SPC m r g d go to DB schema
SPC m r g e go to DB seeds
SPC m r g h go to current helper
SPC m r g j go to current javascript
SPC m r g g go to Gemfile
SPC m r g m go to current model
SPC m r g n go to current migration
SPC m r g p go to current spec
SPC m r g r go to routes
SPC m r g s go to current stylesheet
SPC m r g t go to current test
SPC m r g u go to current fixture
SPC m r g v go to current view
SPC m r g z go to spec helper
SPC m r g . go to file at point (faster but less powerful than SPC m g g)

Refactoring

Key binding Description
SPC m r R x extract region into partial

RUN commands

Key binding Description
SPC m r c c run rails generator
SPC m r i start rails console
SPC m r s r reload Rails project
SPC m r r : run rake task
SPC m r x s start rails server

Ex-commands

Key binding Description
:A Switch between implementation and tests