Class: Module

Inherits:
Object
  • Object
show all
Defined in:
lib/doc/core_ext.rb

Instance Method Summary collapse

Instance Method Details

#abstract_method(*names) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/doc/core_ext.rb', line 38

def abstract_method(*names)
  names.each do |name|
    class_eval <<-RUBY, __FILE__, __LINE__
      def #{name}(*_)
        raise NotImplementedError.new("\#{self.class.name} has no implementation for method `#{name}`")
      end
    RUBY
  end
end

#smart_autoload(*names) ⇒ Object



32
33
34
35
36
# File 'lib/doc/core_ext.rb', line 32

def smart_autoload(*names)
  names.each do |name|
    autoload name, "#{self}::#{name}".underscore
  end
end