Sha256: e53029aa702b15c5d010a93ffe2a1e41d00ff2f534b78fca2601c9518b2ee240

Contents?: true

Size: 388 Bytes

Versions: 3

Compression:

Stored size: 388 Bytes

Contents

class Module

  # Create an abstract method. If it is not overridden, it will
  # raise a TypeError when called.
  #
  #   class C
  #     abstract :a
  #   end
  #
  #   c = C.new
  #   c.a  #=> Error: undefined abstraction #a
  #
  #   CREDIT: Trans

  def abstract( *sym )
    sym.each { |s|
      define_method( s ) { raise TypeError, "undefined abstraction ##{s}" }
    }
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
facets-2.3.0 lib/core/facets/module/abstract.rb
facets-2.2.0 lib/core/facets/module/abstract.rb
facets-2.2.1 lib/core/facets/module/abstract.rb