Listing Ruby keywords

Is there a simple way to find out all or most of the built-in keywords?
I know that if a keyword’s in a ruby script that the debugger will tell
you but I’d like to know before hand, in other words when I’m actually
writing the scripts.

John M. [email protected] writes:

Is there a simple way to find out all or most of the built-in
keywords? I know that if a keyword’s in a ruby script that the
debugger will tell you but I’d like to know before hand, in other
words when I’m actually writing the scripts.

Can’t use an editor with syntax coloring? :wink:

The emacs ruby-mode colors these as keywords:

       "alias"
       "and"
       "begin"
       "break"
       "case"
       "catch"
       "class"
       "def"
       "do"
       "elsif"
       "else"
       "fail"
       "ensure"
       "for"
       "end"
       "if"
       "in"
       "module"
       "next"
       "not"
       "or"
       "raise"
       "redo"
       "rescue"
       "retry"
       "return"
       "then"
       "throw"
       "super"
       "unless"
       "undef"
       "until"
       "when"
       "while"
       "yield"

And these as special variables:

nil, self, true, false, FILE, LINE

Aside from that I can only think of:

BEGIN, END, defined?

You could also try searching the list archives.

HTH.

On 1/2/06, George O. [email protected] wrote:

           "else"
           "raise"
           "when"

You could also try searching the list archives.

HTH.

Or you could make a script that tries to assign to local variables
with every possible name combination, and keeps track of which ones
throw exceptions. :wink:

George O. wrote:

     "else"
     "raise"
     "when"
     "while"
     "yield"

And these as special variables:

nil, self, true, false, FILE, LINE

Aside from that I can only think of:

BEGIN, END, defined?

The Nutshell doesn’t list “raise” as a keyword

class Blah
def testraise
raise=3
“raise local var: #{raise}”
end
end

a=Blah.new()
p a.testraise # =>“raise local var: 3”

and i always wondered why public, protected and private weren’t
keywords also

“Gene T.” [email protected] writes:

The emacs ruby-mode colors these as keywords:
“elsif”
“or”
“until”
BEGIN, END, defined?
a=Blah.new()
p a.testraise # =>“raise local var: 3”

and i always wondered why public, protected and private weren’t
keywords also

Because they’re not really keywords; they’re methods of Module. Try
ri on them… :slight_smile:

On closer examination, catch, fail, raise and throw aren’t keywords
either. It’s handy to have them highlighted though.

Wilson B. wrote:

On 1/2/06, George O. [email protected] wrote:

John M. [email protected] writes:

Or you could make a script that tries to assign to local variables
with every possible name combination, and keeps track of which ones
throw exceptions. :wink:

or code like mental

http://moonbase.rydia.net/mental/blog/programming/avoiding-ruby-keywords.html

Wilson B. [email protected] writes:

throw exceptions. :wink:
Or you could simply look into the “keywords” file in the Ruby sources…

On Jan 1, 2006, at 8:55 PM, John M. wrote:

Is there a simple way to find out all or most of the built-in
keywords? I know that if a keyword’s in a ruby script that the
debugger will tell you but I’d like to know before hand, in other
words when I’m actually writing the scripts.

Wilson B. wrote:

Or you could make a script that tries to assign to local variables
with every possible name combination, and keeps track of which ones
throw exceptions. :wink:

Or you could bookmark
http://phrogz.net/ProgrammingRuby/language.html#names

raise, public, private, and protected aren’t keywords – they’re
methods. As such, you can make variables with their names, and use
self.xxx to invoke the method.

Devin