Sublime Text 2 Rails snippets

The repo aims to replace the default Rails snippets from Sublime Text 2 and make it useful for Ruby ~> 1.9 and Rails ~> 3.1. All the snippets can be found in this cheatsheet generated by Snipcheat.

class

ActiveRecord

migrations

Installation

Backup

This package replaces the default Sublime Rails snippets. If you work on Rails 2 and ruby 1.8 more often than not, perhaps you shouldn't update

Regardless of which way of installation you choose, please backup the old Rails snippets directory. You don't want to have both this and the original snippets installed.

cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages
➜ mv Rails ~/.RailsSublimeBackup

From Git (Recommended)

cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages
➜ git clone https://github.com/tadast/sublime-rails-snippets.git Rails

It is important to clone it into a folder called Rails. Some Sublime plugins have hardcoded dependencies pointing to that path. See troubleshooting.

From an archive

From Package Control

Look for "Ruby on Rails snippets". Here's how to install packages

Housekeeping

⚠️ You will need to do some housekeeping after installing it from Package Control. First of all, remove the original Rails directory (see Backup). Then quit Sublime and delete Sublime's session cache.

rm ~/Library/Application\ Support/Sublime\ Text\ 2/Settings/Session.sublime_session

This will lose all session data (Sublime will 'forget' open filetabs, projects, search history etc.)

Troubleshooting

Can't find *.tmLanguage

If Sublime complains it can't find Ruby on Rails.tmLanguage, chances are you are using this hack.

You'll need to change the path where it looks for that file. Here's the forked version which works with this plugin.

You may also need to change Packages/(DetectSyntax|User)/DetectSyntax.sublime-settings to replace/include this rule

{
  "name": "Ruby on Rails snippets/Ruby Haml",
  "rules": [
    {"file_name": ".*\\.haml$"}
  ]
},
{
  "name": "Ruby on Rails snippets/Ruby on Rails",
  "rules": [
    {"function": {"name": "is_rails_file"}}
  ]
}

Ruby on Rails snippets is a default instalation directory for Package Control. If you installed in a different directory, change the path accordingly

Sublime picks Ruby syntax

You may need to tell Sublime to prefer Rails View -> Syntax -> Open all with current extension as... and pick Rails of Ruby on Rails snippets

How to contribute

  1. Fork it
  2. Create your feature branch for each group of snippet changes that could be merged individually (git checkout -b my-new-snippet)
  3. Commit your changes (git commit -am 'Add some snippet [tab_trigger]')
  4. Commit messages should start with a verb in present simple tense and have all affected tab triggers in square brackets e.g. "Add a snippets for partial rendering [rpc, rpo]"
  5. Push to the branch (git push origin my-new-snippet)
  6. Create new Pull Request