予約語

予約語でも、メソッドであることが明らかならメソッドにできます。

class Rubyco
  def BEGIN; self; end
  def class; self; end
  def ensure; self; end
  def nil; self; end
  def self; self; end
  def when; self; end
  def END; self; end
  def def; self; end
  def false; self; end
  def not; self; end
  def super; self; end
  def while; self; end
  def alias; self; end
  def defined?; self; end
  def for; self; end
  def or; self; end
  def then; self; end
  def yield; self; end
  def and; self; end
  def do; self; end
  def if; self; end
  def redo; self; end
  def true; self; end
  def begin; self; end
  def else; self; end
  def in; self; end
  def rescue; self; end
  def undef; self; end
  def break; self; end
  def elsif; self; end
  def module; self; end
  def retry; self; end
  def unless; self; end
  def case; self; end
  def end; self; end
  def next; self; end
  def return; self; end
  def until; self; end
end

p Rubyco.new.BEGIN.class.ensure.nil.self.when.END.def.false.not.super.while.alias.defined?.for.or.then.yield.and.do.if.redo.true.begin.else.in.rescue.undef.break.elsif.module.retry.unless.case.end.next.return.until #=> #<Rubyco:0x298c350>