module RuboCop::Cop::RSpec::Metadata

def on_block(node)

def on_block(node)
  rspec_configure(node) do |block_var|
    metadata_in_block(node, block_var) do |metadata_arguments|
      on_metadata_arguments(metadata_arguments)
    end
  end
  rspec_metadata(node) do |metadata_arguments|
    on_metadata_arguments(metadata_arguments)
  end
end

def on_metadata(_symbols, _hash)

def on_metadata(_symbols, _hash)
  raise ::NotImplementedError
end

def on_metadata_arguments(metadata_arguments)

def on_metadata_arguments(metadata_arguments)
  if metadata_arguments.last&.hash_type?
    *metadata_arguments, hash = metadata_arguments
    on_metadata(metadata_arguments, hash)
  else
    on_metadata(metadata_arguments, nil)
  end
end