George Ogata
1/2/2006 9:15:00 AM
"Gene Tani" <gene.tani@gmail.com> writes:
> George Ogata wrote:
>> John Maclean <info@jayeola.org> 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? ;-)
>>
>> 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?
>
> 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
Because they're not really keywords; they're methods of Module. Try
ri on them... :-)
On closer examination, catch, fail, raise and throw aren't keywords
either. It's handy to have them highlighted though.