Skip to content

Instantly share code, notes, and snippets.

@nicedawg
Created March 28, 2020 21:04
Show Gist options
  • Save nicedawg/80779e72918f83c86a81bd5115b92271 to your computer and use it in GitHub Desktop.
Save nicedawg/80779e72918f83c86a81bd5115b92271 to your computer and use it in GitHub Desktop.
[Beginning Rails 6] Listing 13-3. discarding our job when provided an invalid number
class GuessANumberBetweenOneAndTenJob < ApplicationJob
class ThatsNotFair < StandardError; end
class GuessedWrongNumber < StandardError; end
discard_on ThatsNotFair
retry_on GuessedWrongNumber, attempts: 8, wait: 1
def perform(my_number)
unless my_number.is_a?(Integer) && my_number.between?(1, 10)
raise ThatsNotFair, "#{my_number} isn't an integer between 1 and 10!"
end
guessed_number = rand(1..10)
if guessed_number == my_number
Rails.logger.info "I guessed it! It was #{my_number}"
else
raise GuessedWrongNumber, "Is it #{guessed_number}? No? Hmm."
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment