Class: ConvenientService::RSpec::PrimitiveMatchers::Classes::HaveAbstractMethod

Inherits:
Object
  • Object
show all
Defined in:
lib/convenient_service/rspec/primitive_matchers/classes/have_abstract_method.rb

Instance Method Summary collapse

Constructor Details

#initialize(method_name) ⇒ HaveAbstractMethod

Returns a new instance of HaveAbstractMethod.



13
14
15
# File 'lib/convenient_service/rspec/primitive_matchers/classes/have_abstract_method.rb', line 13

def initialize(method_name)
  @method_name = method_name
end

Instance Method Details

#descriptionObject



31
32
33
# File 'lib/convenient_service/rspec/primitive_matchers/classes/have_abstract_method.rb', line 31

def description
  "have abstract method `#{method_name}`"
end

#failure_messageObject



35
36
37
# File 'lib/convenient_service/rspec/primitive_matchers/classes/have_abstract_method.rb', line 35

def failure_message
  "expected `#{object.class}` to have abstract method `#{method_name}`"
end

#failure_message_when_negatedObject



39
40
41
# File 'lib/convenient_service/rspec/primitive_matchers/classes/have_abstract_method.rb', line 39

def failure_message_when_negated
  "expected `#{object.class}` NOT to have abstract method `#{method_name}`"
end

#matches?(object) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/convenient_service/rspec/primitive_matchers/classes/have_abstract_method.rb', line 17

def matches?(object)
  @object = object

  begin
    object.__send__(method_name)

    false
  rescue ConvenientService::Support::AbstractMethod::Exceptions::AbstractMethodNotOverridden
    true
  rescue
    false
  end
end