From: Charlie S. <cf...@in...> - 2006-02-09 20:00:32
|
> that is the case with all the ruby keywords? > Interesting question. It turns out yes - you can use any Ruby keyword as a method name. So that warning should be removed. Below is my example Ruby code that runs fine on Ruby 1.8.2. By the way, is there any order to the list of keywords in rubykw.swg? It would be much easier if it was alphabetized. I've done that, but don't want to check in anything that might break something. Also the file treats BEGIN/END as keywords and begin/end as builtins. Not sure what the difference really is, but it should probably be reversed. class Keywords def alias puts 'alias' end def and puts 'and' end def begin puts 'begin' end def break puts 'break' end def case puts 'case' end def class puts 'class' end def def puts 'def' end def defined puts 'defined' end def do puts 'do' end def else puts 'else' end def elsif puts 'elsif' end def end puts 'end' end def ensure puts 'ensure' end def false puts 'false' end def for puts 'for' end def if puts 'if' end def in puts 'in' end def case puts 'case' end def module puts 'module' end def next puts 'next' end def nil puts 'nil' end def not puts 'not' end def or puts 'or' end def redo puts 'redo' end def rescue puts 'rescue' end def retry puts 'retry' end def return puts 'return' end def self puts 'self' end def super puts 'super' end def then puts 'then' end def true puts 'true' end def undef puts 'undef' end def under puts 'unless' end def unless puts 'unless' end def until puts 'until' end def when puts 'when' end def while puts 'while' end def yield puts 'yield' end end kw = Keywords.new kw.alias kw.and kw.begin kw.break kw.case kw.class kw.def kw.defined kw.do kw.else kw.elsif kw.end kw.ensure kw.false kw.for kw.if kw.in kw.module kw.next kw.nil kw.not kw.or kw.redo kw.rescue kw.retry kw.return kw.self kw.super kw.then kw.true kw.under kw.unless kw.until kw.when kw.while kw.yield |