Rubyは抽象メソッドをサポートしていませんが、こいつを使えば抽象メソッドを定義できるようになります。 使い方はこんな感じ。 require "abstractable" class AbstractDriver extend Abstractable abstract :open, :close end class AbstractIODriver < AbstractDriver abstract :read, :write end class NotImplIODriver < AbstractIODriver; end NotImplIODriver.new # => following abstract methods are not implemented. (NotImplementedError) # [:open, :close] defined in AbstractD