Class: Desiru::AsyncStatus
- Inherits:
-
Object
- Object
- Desiru::AsyncStatus
- Defined in:
- lib/desiru/async_status.rb
Overview
AsyncStatus provides a simple interface for checking job status Compatible with the REST API’s job status endpoint
Instance Attribute Summary collapse
-
#job_id ⇒ Object
readonly
Returns the value of attribute job_id.
Instance Method Summary collapse
-
#initialize(job_id) ⇒ AsyncStatus
constructor
A new instance of AsyncStatus.
- #progress ⇒ Object
- #ready? ⇒ Boolean
- #result ⇒ Object
- #status ⇒ Object
Constructor Details
#initialize(job_id) ⇒ AsyncStatus
Returns a new instance of AsyncStatus.
12 13 14 15 |
# File 'lib/desiru/async_status.rb', line 12 def initialize(job_id) @job_id = job_id @redis = Redis.new(url: Desiru.configuration.redis_url || ENV.fetch('REDIS_URL', nil)) end |
Instance Attribute Details
#job_id ⇒ Object (readonly)
Returns the value of attribute job_id.
10 11 12 |
# File 'lib/desiru/async_status.rb', line 10 def job_id @job_id end |
Instance Method Details
#progress ⇒ Object
24 25 26 27 28 29 |
# File 'lib/desiru/async_status.rb', line 24 def progress status_data = fetch_status return 0 unless status_data status_data[:progress] || 0 end |
#ready? ⇒ Boolean
31 32 33 34 |
# File 'lib/desiru/async_status.rb', line 31 def ready? result_data = fetch_result !result_data.nil? end |
#result ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/desiru/async_status.rb', line 36 def result result_data = fetch_result return nil unless result_data raise ModuleError, "Async job failed: #{result_data[:error]}" unless result_data[:success] result_data[:result] end |
#status ⇒ Object
17 18 19 20 21 22 |
# File 'lib/desiru/async_status.rb', line 17 def status status_data = fetch_status return 'pending' unless status_data status_data[:status] || 'pending' end |