CodeHighlighter.addStyle("rails",{
  comment : {
    exp  : /#[^\n]+/
  },
  brackets : {
    exp  : /\(|\)/
  },
  arguments : {
    exp  : /[|](.*)[|]/,
    replacement : "|<span class=\"arguments\">$1</span>|"
  },
  string : {
    exp  : /'[^']*'|"[^"]*"/
  },
  variable : {
    exp  : /@[a-zA-Z_][a-zA-Z_0-9]+/
  },
  regular_expression : {
    exp  : /\/.*\//
  },
  class_inheritance : {
    exp  : /\b(def|class|module)\b([a-zA-Z_. ]+)(\s+&lt;\s+[a-zA-Z_. ]+)/,
    replacement : "<span class=\"keyword\">$1</span><span class=\"function_name\">$2</span><span class=\"class_inheritance function_name\">$3</span>"
	},
  function_name_with_arguments : {
    exp  : /\b(def|class|module)\b(\s+[a-zA-Z_.]+)(\()([^)]*)(\))/,
    replacement : "<span class=\"keyword\">$1</span><span class=\"function_name\">$2</span>$3<span class=\"function_arguments\">$4</span>$5"
  },
  function_name : {
    exp  : /\b(def|class|module)\b([a-zA-Z_. ]+)/,
    replacement : "<span class=\"keyword\">$1</span><span class=\"function_name\">$2</span>"
  },
  keyword : {
    exp  : /\b(alias|and|attr_accessor|attr_reader|attr_writer|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|not|or|public|private|protected|raise|redo|rescue|retry|return|super|then|throw|undef|unless|until|when|while|yield)\b/
  },
  additional_keywords : {
    exp : /(=|[|]{1,2}=?|(&lt;){2}|\s+\!|&amp;|block_given\?|[*]|(\B\?\B))/,
    replacement : "<span class=\"keyword\">$1</span>"
  },
  symbol : {   /* Added by Shelly Fisher (shelly@agileevolved.com) */
    exp : /([^:])(:[A-Za-z0-9_!?]+)/
  },
  class_name : {
    exp  : /\b([A-Z]+[A-Za-z0-9_]*(::|(?=[.])))+\b/
  },
  constant : {
    exp  : /\b([A-Z]+[A-Za-z0-9_]+|nil|true|false)\b/
  }
});
