array_methods/fetch_warnings.rb

tests/_examples/array_methods/fetch_warnings.rb in the metorex repository.

module Warning
  def self.warn(message, category: nil)
    $stdout.print("warned: #{message.sub(/\A.*?warning: /, "")}")
  end
end
$VERBOSE = true

rates = [4, 9]
p(rates.fetch(0) { :missing })
p(rates.fetch(5) { |index| "no rate at #{index}" })
p(rates.fetch(1, :fallback) { :block })
p(rates.fetch(7, :fallback) { :block })
p(rates.fetch(7, :fallback))

Output:

4
"no rate at 5"
warned: block supersedes default value argument
9
warned: block supersedes default value argument
:block
:fallback