class Rubanok::HaveProcessed

Attributes

data_class[R]
matcher[R]
name[R]
processor[R]

Public Class Methods

new(data_class = nil) click to toggle source
# File lib/rubanok/rspec.rb, line 11
def initialize(data_class = nil)
  if data_class
    @data_class = data_class.is_a?(Module) ? data_class : data_class.class
  end
  @matcher = have_received(:call)
  @name = "have_rubanok_processed"
end

Public Instance Methods

as(alias_name) click to toggle source
# File lib/rubanok/rspec.rb, line 19
def as(alias_name)
  @name = alias_name
  self
end
failure_message() click to toggle source
# File lib/rubanok/rspec.rb, line 46
def failure_message
  "expected to use #{processor.name}#{data_class ? " for #{data_class.name}" : ""}, but didn't"
end
failure_message_when_negated() click to toggle source
# File lib/rubanok/rspec.rb, line 50
def failure_message_when_negated
  "expected not to use #{processor.name}#{data_class ? " for #{data_class.name} " : ""}, but have used"
end
matches?(proc) click to toggle source
# File lib/rubanok/rspec.rb, line 33
def matches?(proc)
  raise ArgumentError, "#{name} only supports block expectations" unless Proc === proc

  raise ArgumentError, "Processor class is required. Please, specify it using `.with` modifier" if processor.nil?

  allow(processor).to receive(:call).and_call_original
  proc.call

  matcher.with(an_instance_of(data_class), anything) if data_class

  matcher.matches?(processor)
end
supports_block_expectations?() click to toggle source
# File lib/rubanok/rspec.rb, line 29
def supports_block_expectations?
  true
end
with(processor) click to toggle source
# File lib/rubanok/rspec.rb, line 24
def with(processor)
  @processor = processor
  self
end