Sha256: a8b88de6b18c84da644ea867238ee7e1aa52299880c9bf4c53efa5997035393f

Contents?: true

Size: 1.35 KB

Versions: 6

Compression:

Stored size: 1.35 KB

Contents

module Pageflow
  module EncodedFileStateMachine
    extend ActiveSupport::Concern

    included do
      state_machine :initial => 'not_uploaded_to_s3' do
        extend StateMachineJob::Macro

        state 'not_uploaded_to_s3'
        state 'uploading_to_s3'
        state 'waiting_for_encoding'
        state 'encoding'
        state 'encoded'

        state 'upload_to_s3_failed'
        state 'encoding_failed'

        event :publish do
          transition 'not_uploaded_to_s3' => 'uploading_to_s3'
        end

        event :retry do
          transition 'upload_to_s3_failed' => 'uploading_to_s3'
          transition 'encoding_failed' => 'waiting_for_encoding'
          transition 'encoded' => 'waiting_for_encoding'
        end

        job UploadFileToS3Job do
          on_enter 'uploading_to_s3'
          result :pending, :retry_after => 30.seconds
          result :ok => 'waiting_for_encoding'
          result :error => 'uploading_to_s3_failed'
        end

        job SubmitFileToZencoderJob do
          on_enter 'waiting_for_encoding'
          result :ok => 'encoding'
          result :error => 'encoding_failed'
        end

        job PollZencoderJob do
          on_enter 'encoding'
          result :pending, :retry_after => 2.seconds
          result :ok => 'encoded'
          result :error => 'encoding_failed'
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pageflow-0.1.0 app/state_machines/pageflow/encoded_file_state_machine.rb
pageflow-0.0.5 app/state_machines/pageflow/encoded_file_state_machine.rb
pageflow-0.0.4 app/state_machines/pageflow/encoded_file_state_machine.rb
pageflow-0.0.3 app/state_machines/pageflow/encoded_file_state_machine.rb
pageflow-0.0.2 app/state_machines/pageflow/encoded_file_state_machine.rb
pageflow-0.0.1 app/state_machines/pageflow/encoded_file_state_machine.rb