Module: AbstractClass::ClassMethods

Defined in:
lib/strong_ruby/abstract_class.rb

Instance Method Summary collapse

Instance Method Details

#abstract_method(name) ⇒ Object



19
20
21
22
23
24
# File 'lib/strong_ruby/abstract_class.rb', line 19

def abstract_method name
  @_abstract_methods << name
  define_method name do |*args|
    raise NotImplementedError.new("You have to implement method #{name} in #{self.class} class")
  end
end

#abstract_methodsObject



26
27
28
# File 'lib/strong_ruby/abstract_class.rb', line 26

def abstract_methods
  @_abstract_methods
end

#is_abstract_class?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/strong_ruby/abstract_class.rb', line 30

def is_abstract_class?
  @_abstract_class == true
end