/emacs-rails

Relevance fork of emacs-rails

Primary LanguageEmacs Lisp

It is minor mode for editing "Ruby On Rails":ror code with
"Emacs":emacs. This minor mode makes your work much easier and user
friendly


== Instalation

You need download last release from RubyForge page
"http://rubyforge.org/projects/emacs-rails" and and unpack
it to directory containing libraries of Emacs, by default it's
$HOME/.emacs.d/

You can also use SVN

  cd  $HOME/.emacs.d/
  svn co svn://rubyforge/var/svn/emacs-rails/trunk emacs-rails

Download and install required libraries

* "http://www.kazmier.com/computer/snippet.el":snippets
* "http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt":frecursive

*Alert:* From 0.44 release emacs-rails will require the
 "inf-ruby":inf-ruby.

After that you must add this code in $HOME/.emacs

  (setq load-path (cons "~/.emacs.d/rails" load-path))
  (require 'rails)

For Windows users: you can use your help in CHM format (the default
*ri*).  This will require utility "KeyHH":keyhh. And add to a file
.emacs

  (setq rails-chm-file "full_path_to_rails_chm_manual")

After that you can run Emacs. Almost all available actions are in the
menu [Ruby On Rails]. The snippets are in the menu [Ruby On
Rails-Snippets], for the convenience, they are divided into
categories.

To change default setting, select [Ruby On Rails - Customize].

== First Acquaintance

Go to directory with your rails application and open any file in Emacs:

  cd $HOME/project/simple_rails_application
  emacs app/controllers/application.rb

There must be "RoR" sign in the list of active minor-modes in status
bar. Thi means, that emacs-rails is enabled and ready to help you in
your not so easy work.

Almoust all actions are in the "RubyOnRails" menu. You can check it
out and try some of them. Don't forget, that menu will help you only
first time. After that you better use hot keys for effective work, you
can find them in the brackets.

== Features

* TextMate-like snippets
* Display of colored log files
* Integration with script/generate and script/destroy (controller,
  model, scaffold, migration, etc)
* Integration with script/console and script/breakpointer
* Run rake %(key)C-c C-c r%
* Quick start svn-status in RAILS_ROOT %(key)f9%
* Documentation search using *ri* or *chm* file and Rails API
  reference in HTML %(key)f1%
* Quick access to the main configuration files
* Automatic TAGS generation in RAILS_ROOT directory

=== Management of WEBrick/Mongrel

* Your can select Webrick, Mongrel or Lighttpd
* Start/stop application server %(key)C-c C-c w s%
* Automatic browsing on current action (from view or controller)
  %(key)C-c C-c w a%

=== Navigation in RAILS_ROOT hierarchy

* Quick switch stylesheets, javascripts, migrations, layouts, helpers,
  controllers, models, observers, plugins
* In controller file: go to views, functional test, helper
  %(key)C-down%
* Switch between action/view %(key)Ñ-up%
* Go to file in current line (example: cursor at line [redirect_to
  controller => :home, :action => "show"], will be open action "show"
  in "home" controller) %(key)C-RET%
* Quick access to the main configuration files using menu

Other hot keys

* %(key)C-c C-c g g% rails-nav:goto-migrate
* %(key)C-c C-c g j% rails-nav:goto-javascripts
* %(key)C-c C-c g s% rails-nav:goto-stylesheets
* %(key)C-c C-c g l% rails-nav:goto-layouts
* %(key)C-c C-c g h% rails-nav:goto-helpers
* %(key)C-c C-c g c% rails-nav:goto-controllers
* %(key)C-c C-c g m% rails-nav:goto-models
* %(key)C-c C-c g o% rails-nav:goto-observers
* %(key)C-c C-c g p% rails-nav:goto-plugins

=== ERb refactoring

* Create partial from selection %(key)C-c p%
* Create helper from block  %(key)C-c b%

= Bugs

emacs-rails designed for current CVS version of Emacs (future Emacs22)
more probably some functions will not work in older version, or will
work with errors, so if it is possible, try to update. I will not tell
you why you should use CVS version, just take my word.

In some version from CVS some time ago, when you use emacs-rails,
sintax highlight in rhtml was not working, so just update to the
newest version from CVS.

If you find error, place it description in "BugTrack":bugtrack.

= Links

* "Emacs W32 (CVS version for Windows)":http://ourcomments.org/Emacs/EmacsW32.html
* "HowToUseEmacsWithRails":http://wiki.rubyonrails.org/rails/pages/HowToUseEmacsWithRails
* "http://scott.elitists.net/users/scott/posts/rails-on-emacs":http://scott.elitists.net/users/scott/posts/rails-on-emacs
* "http://www.emacswiki.org/cgi-bin/wiki/RubyMode":http://www.emacswiki.org/cgi-bin/wiki/RubyMode
* "Emacs screencast":screencast
* "Effective Emacs":effectiveemacs

[bugtrack]http://rubyforge.org/tracker/?atid=5809&group_id=1484&func=browse
[effectiveemacs]http://steve.yegge.googlepages.com/effective-emacs
[screencast]http://emacsonrails.drozdov.net/
[lisp]http://en.wikipedia.org/wiki/Lisp_programming_language
[frecursive]http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt
[keyhh]http://www.keyworks.net/keyhh.htm
[snippets]http://www.kazmier.com/computer/snippet.el
[emacs]http://www.gnu.org/software/emacs/
[ror]http://rubyonrails.org
[emacs-rails]http://rubyforge.org/projects/emacs-rails
[inf-ruby]http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/inf-ruby.el?view=co