Ключевые слова не являются объектами, но определены в анализаторе, который можно найти в parse.y
в источнике Ruby.Вот соответствующая часть этого файла:
reswords : keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__
| keyword_BEGIN | keyword_END
| keyword_alias | keyword_and | keyword_begin
| keyword_break | keyword_case | keyword_class | keyword_def
| keyword_defined | keyword_do | keyword_else | keyword_elsif
| keyword_end | keyword_ensure | keyword_false
| keyword_for | keyword_in | keyword_module | keyword_next
| keyword_nil | keyword_not | keyword_or | keyword_redo
| keyword_rescue | keyword_retry | keyword_return | keyword_self
| keyword_super | keyword_then | keyword_true | keyword_undef
| keyword_when | keyword_yield | keyword_if | keyword_unless
| keyword_while | keyword_until
;
Если вы хотите узнать больше о парсере Ruby, посмотрите презентацию Взлом parse.y из RubyConf 2009 или Parse.y famtour от Ruby Kaigi 2011.
Кроме того, множество методов, которые доступны везде (например, puts
), определены в модуле Kernel .
РЕДАКТИРОВАТЬ: Существует также список ключевых слов в документации , спасибо @antinome за указание на это.