class RSpec::Support::MethodSignatureVerifier
Abstract base class for signature verifiers.
@api private
Attributes
kw_args[R]
non_kw_args[R]
Public Class Methods
new(signature, args)
click to toggle source
# File lib/rspec/support/method_signature_verifier.rb, line 180 def initialize(signature, args) @signature = signature @non_kw_args, @kw_args = split_args(*args) end
Public Instance Methods
error_message()
click to toggle source
# File lib/rspec/support/method_signature_verifier.rb, line 191 def error_message if missing_kw_args.any? "Missing required keyword arguments: %s" % [ missing_kw_args.join(", ") ] elsif invalid_kw_args.any? "Invalid keyword arguments provided: %s" % [ invalid_kw_args.join(", ") ] elsif !valid_non_kw_args? "Wrong number of arguments. Expected %s, got %s." % [ @signature.non_kw_args_arity_description, non_kw_args.length ] end end
valid?()
click to toggle source
# File lib/rspec/support/method_signature_verifier.rb, line 185 def valid? missing_kw_args.empty? && invalid_kw_args.empty? && valid_non_kw_args? end
Private Instance Methods
invalid_kw_args()
click to toggle source
# File lib/rspec/support/method_signature_verifier.rb, line 218 def invalid_kw_args @signature.invalid_kw_args_from(kw_args) end
missing_kw_args()
click to toggle source
# File lib/rspec/support/method_signature_verifier.rb, line 214 def missing_kw_args @signature.missing_kw_args_from(kw_args) end
split_args(*args)
click to toggle source
# File lib/rspec/support/method_signature_verifier.rb, line 222 def split_args(*args) kw_args = if @signature.has_kw_args_in?(args) args.pop.keys else [] end [args, kw_args] end
valid_non_kw_args?()
click to toggle source
# File lib/rspec/support/method_signature_verifier.rb, line 210 def valid_non_kw_args? @signature.valid_non_kw_args?(non_kw_args.length) end