Class: RSpec::Support::MethodSignatureVerifier
- Inherits:
-
Object
- Object
- RSpec::Support::MethodSignatureVerifier
- Defined in:
- lib/rspec/support/method_signature_verifier.rb
Overview
Figures out wheter a given method can accept various arguments. Surprisingly non-trivial.
Instance Attribute Summary collapse
-
#kw_args ⇒ Object
readonly
Returns the value of attribute kw_args.
-
#non_kw_args ⇒ Object
readonly
Returns the value of attribute non_kw_args.
Instance Method Summary collapse
- #error_message ⇒ Object
-
#initialize(signature, args) ⇒ MethodSignatureVerifier
constructor
A new instance of MethodSignatureVerifier.
- #valid? ⇒ Boolean
Constructor Details
#initialize(signature, args) ⇒ MethodSignatureVerifier
Returns a new instance of MethodSignatureVerifier.
151 152 153 154 |
# File 'lib/rspec/support/method_signature_verifier.rb', line 151 def initialize(signature, args) @signature = signature @non_kw_args, @kw_args = split_args(*args) end |
Instance Attribute Details
#kw_args ⇒ Object (readonly)
Returns the value of attribute kw_args.
149 150 151 |
# File 'lib/rspec/support/method_signature_verifier.rb', line 149 def kw_args @kw_args end |
#non_kw_args ⇒ Object (readonly)
Returns the value of attribute non_kw_args.
149 150 151 |
# File 'lib/rspec/support/method_signature_verifier.rb', line 149 def non_kw_args @non_kw_args end |
Instance Method Details
#error_message ⇒ Object
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/rspec/support/method_signature_verifier.rb', line 162 def 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? ⇒ Boolean
156 157 158 159 160 |
# File 'lib/rspec/support/method_signature_verifier.rb', line 156 def valid? missing_kw_args.empty? && invalid_kw_args.empty? && valid_non_kw_args? end |