class KeywordParameterMatchers::HaveKeywordParameter

Public Class Methods

new(expected) click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 3
def initialize(expected)
  @expected = expected
end

Public Instance Methods

failure_message() click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 15
def failure_message
  "expected \"#{expected}\" to have a keyword parameter in #{method_name} " \
    "parameter list #{parameter_list.inspect}"
end
failure_message_when_negated() click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 20
def failure_message_when_negated
  "expected \"#{expected}\" not to have a keyword parameter in #{method_name} " \
    "parameter list #{parameter_list.inspect}"
end
matches?(actual) click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 7
def matches?(actual)
  @actual = actual

  actual.parameters.any? { |type, name|
    [:key, :keyreq].include?(type) && name == @expected
  }
end

Private Instance Methods

actual() click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 26
def actual
  NullMethod.new_if_nil(@actual)
end
expected() click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 30
def expected
  @expected
end
method_name() click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 34
def method_name
  actual.name
end
parameter_list() click to toggle source
# File lib/keyword_parameter_matchers/have_keyword_parameter.rb, line 38
def parameter_list
  actual.parameters
end