Class: Sinclair::Matchers::AddClassMethod Private

Inherits:
AddMethod
  • Object
show all
Defined in:
lib/sinclair/matchers/add_class_method.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

AddClassMethod is able to build an instance of AddClassMethodTo

Examples:

RSpec.configure do |config|
  config.include Sinclair::Matchers
end

class MyModel
end

RSpec.describe 'MyBuilder' do
  let(:clazz)   { Class.new(MyModel) }

  let(:block) do
    proc do
      clazz.define_singleton_method(:new_method) { 2 }
    end
  end

  it do
    expect(&block).to add_class_method(:new_method).to(clazz)
  end
end

# outputs
# should add method class_method 'new_method' to #<Class:0x000055b4d0a25c80>

Author:

  • darthjee

Instance Method Summary collapse

Methods inherited from AddMethod

#equal?, #initialize, #supports_block_expectations?

Constructor Details

This class inherits a constructor from Sinclair::Matchers::AddMethod

Instance Method Details

#matches?(_actual) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method is abstract.

Raise a warning on the usage as this is only a builder for AddClassMethodTo

Returns:

  • (Boolean)

Raises:

  • SyntaxError



40
41
42
43
# File 'lib/sinclair/matchers/add_class_method.rb', line 40

def matches?(_actual)
  raise SyntaxError, 'You should specify which class the method is being added to' \
    "add_class_method(:#{method}).to(klass)"
end

#to(target = nil) ⇒ AddClassMethodTo

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Creates a matcher Sinclair::Matchers::AddClassMethodTo

Parameters:

  • target (Class) (defaults to: nil)

    class where the method should be added to

Returns:



51
52
53
# File 'lib/sinclair/matchers/add_class_method.rb', line 51

def to(target = nil)
  AddClassMethodTo.new(target, method)
end