Sha256: 860db7baa987ab6b25d6dbd0399d5f14317f3c8381900cdbea10f5cbb15bb4c7

Contents?: true

Size: 784 Bytes

Versions: 5

Compression:

Stored size: 784 Bytes

Contents

module Pageflow
  module ProcessedFileStateMachine
    extend ActiveSupport::Concern

    included do
      processing_state_machine do
        extend StateMachineJob::Macro

        state 'processing'
        state 'processed'
        state 'processing_failed'

        event :process do
          transition 'uploaded' => 'processing'
          transition 'processing_failed' => 'processing'
        end

        job ProcessFileJob do
          on_enter 'processing'
          result :ok => 'processed'
          result :error => 'processing_failed'
        end
      end
    end

    def retry!
      process!
    end

    def retryable?
      processing_failed?
    end

    def ready?
      processed?
    end

    def failed?
      super || processing_failed?
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pageflow-14.5.2 app/state_machines/pageflow/processed_file_state_machine.rb
pageflow-14.5.1 app/state_machines/pageflow/processed_file_state_machine.rb
pageflow-14.5.0 app/state_machines/pageflow/processed_file_state_machine.rb
pageflow-14.4.0 app/state_machines/pageflow/processed_file_state_machine.rb
pageflow-14.3.0 app/state_machines/pageflow/processed_file_state_machine.rb