Class: Smartest::ParameterExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/smartest/parameter_extractor.rb

Constant Summary collapse

POSITIONAL_PARAMETER_TYPES =
%i[req opt rest].freeze

Class Method Summary collapse

Class Method Details

.required_keyword_names(block, usage:) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/smartest/parameter_extractor.rb', line 8

def required_keyword_names(block, usage:)
  raise ArgumentError, "block is required" unless block

  parameters = block.parameters
  positional = parameters.select { |type, _name| POSITIONAL_PARAMETER_TYPES.include?(type) }

  raise InvalidFixtureParameterError, positional_parameter_message(usage) if positional.any?

  parameters.filter_map do |type, name|
    name if type == :keyreq
  end
end