Sha256: 389d4f39dd9fbcfd3577fef384cb303560edb2335f5cfe1fc4cf2f452b901147

Contents?: true

Size: 624 Bytes

Versions: 12

Compression:

Stored size: 624 Bytes

Contents

# frozen_string_literal: true
require 'active_support/core_ext/integer/time'
require 'active_model/callbacks'

module ActiveEncode
  module Polling
    extend ActiveSupport::Concern

    POLLING_WAIT_TIME = 10.seconds.freeze

    CALLBACKS = [
      :after_status_update, :after_failed, :after_cancelled, :after_completed
    ].freeze

    included do
      extend ActiveModel::Callbacks

      define_model_callbacks :status_update, :failed, :cancelled, :completed, only: :after

      after_create do |encode|
        ActiveEncode::PollingJob.set(wait: POLLING_WAIT_TIME).perform_later(encode)
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
active_encode-1.2.3 lib/active_encode/polling.rb
active_encode-1.2.2 lib/active_encode/polling.rb
active_encode-1.2.1 lib/active_encode/polling.rb
active_encode-1.2.0 lib/active_encode/polling.rb
active_encode-1.1.3 lib/active_encode/polling.rb
active_encode-1.1.2 lib/active_encode/polling.rb
active_encode-1.1.1 lib/active_encode/polling.rb
active_encode-1.1.0 lib/active_encode/polling.rb
active_encode-1.0.0 lib/active_encode/polling.rb
active_encode-0.8.2 lib/active_encode/polling.rb
active_encode-0.8.1 lib/active_encode/polling.rb
active_encode-0.8.0 lib/active_encode/polling.rb