class RSpec::SleepingKingStudios::Support::MethodSignature
@api private
Attributes
Public Class Methods
Source
# File lib/rspec/sleeping_king_studios/support/method_signature.rb, line 8 def initialize method parameters = method.parameters required = parameters.count { |type, _| :req == type } optional = parameters.count { |type, _| :opt == type } variadic = parameters.count { |type, _| :rest == type } @min_arguments = required @max_arguments = required + optional @unlimited_arguments = variadic > 0 required = parameters.select { |type, _| :keyreq == type }.map { |_, keyword| keyword } optional = parameters.select { |type, _| :key == type }.map { |_, keyword| keyword } variadic = parameters.count { |type, _| :keyrest == type } @required_keywords = required @optional_keywords = optional @any_keywords = variadic > 0 @block_argument = parameters.count { |type, _| :block == type } > 0 end
Public Instance Methods
Source
# File lib/rspec/sleeping_king_studios/support/method_signature.rb, line 35 def any_keywords? !!@any_keywords end
Source
# File lib/rspec/sleeping_king_studios/support/method_signature.rb, line 39 def block_argument? !!@block_argument end
Source
# File lib/rspec/sleeping_king_studios/support/method_signature.rb, line 43 def keywords @optional_keywords + @required_keywords end
Source
# File lib/rspec/sleeping_king_studios/support/method_signature.rb, line 47 def unlimited_arguments? !!@unlimited_arguments end