class RSpec::Matchers::BuiltIn::Satisfy

@api private Provides the implementation for ‘satisfy`. Not intended to be instantiated directly.

Public Class Methods

new(description=nil, &block) click to toggle source
# File lib/rspec/matchers/built_in/satisfy.rb, line 8
def initialize(description=nil, &block)
  @description = description
  @block = block
end

Public Instance Methods

description() click to toggle source

@private

# File lib/rspec/matchers/built_in/satisfy.rb, line 21
def description
  @description ||= "satisfy #{block_representation}"
end
failure_message() click to toggle source

@api private @return [String]

# File lib/rspec/matchers/built_in/satisfy.rb, line 27
def failure_message
  "expected #{actual_formatted} to #{description}"
end
failure_message_when_negated() click to toggle source

@api private @return [String]

# File lib/rspec/matchers/built_in/satisfy.rb, line 33
def failure_message_when_negated
  "expected #{actual_formatted} not to #{description}"
end
matches?(actual, &block) click to toggle source

@private

# File lib/rspec/matchers/built_in/satisfy.rb, line 14
def matches?(actual, &block)
  @block = block if block
  @actual = actual
  @block.call(actual)
end

Private Instance Methods

block_representation() click to toggle source
# File lib/rspec/matchers/built_in/satisfy.rb, line 40
def block_representation
  if (block_snippet = extract_block_snippet)
    "expression `#{block_snippet}`"
  else
    'block'
  end
end
extract_block_snippet() click to toggle source
# File lib/rspec/matchers/built_in/satisfy.rb, line 48
def extract_block_snippet
  return nil unless @block
  Expectations::BlockSnippetExtractor.try_extracting_single_line_body_of(@block, matcher_name)
end