rubygems/rubygems.org

View on GitHub
app/jobs/fastly_purge_job.rb

Summary

Maintainability
A
0 mins
Test Coverage
class FastlyPurgeJob < ApplicationJob
  queue_as :default

  class PassPathXorKeyError < ArgumentError
  end

  discard_on PassPathXorKeyError

  before_perform do
    raise PassPathXorKeyError, arguments.first.inspect if arguments.first.slice(:path, :key).compact.size != 1
  end

  def perform(soft:, path: nil, key: nil)
    if path
      Fastly.purge({ path:, soft: })
    elsif key
      Fastly.purge_key(key, soft:)
    end
  end
end