Module: Kie::Task
- Included in:
- GeneralTask, SunoTask
- Defined in:
- lib/kie/task.rb
Overview
Common interface module for all task types (General API, Suno API, etc.) Classes including this module must implement:
-
#status: Returns normalized status symbol (:processing, :success, :failed)
-
#urls: Returns array of result URLs
Constant Summary collapse
- NORMALIZED_STATUSES =
%i[processing success failed].freeze
Instance Method Summary collapse
- #completed? ⇒ Boolean
- #error_message ⇒ Object
- #failed? ⇒ Boolean
- #processing? ⇒ Boolean
- #status ⇒ Object
- #success? ⇒ Boolean
- #urls ⇒ Object
-
#wait(timeout: 300, interval: 2, raise_on_failure: true) ⇒ self
Waits for the task to complete by polling refresh!.
Instance Method Details
#completed? ⇒ Boolean
23 24 25 |
# File 'lib/kie/task.rb', line 23 def completed? success? || failed? end |
#error_message ⇒ Object
19 20 21 |
# File 'lib/kie/task.rb', line 19 def raise NotImplementedError, "#{self.class} must implement #error_message" end |
#failed? ⇒ Boolean
31 32 33 |
# File 'lib/kie/task.rb', line 31 def failed? status == :failed end |
#processing? ⇒ Boolean
35 36 37 |
# File 'lib/kie/task.rb', line 35 def processing? status == :processing end |
#status ⇒ Object
11 12 13 |
# File 'lib/kie/task.rb', line 11 def status raise NotImplementedError, "#{self.class} must implement #status" end |
#success? ⇒ Boolean
27 28 29 |
# File 'lib/kie/task.rb', line 27 def success? status == :success end |
#urls ⇒ Object
15 16 17 |
# File 'lib/kie/task.rb', line 15 def urls raise NotImplementedError, "#{self.class} must implement #urls" end |
#wait(timeout: 300, interval: 2, raise_on_failure: true) ⇒ self
Waits for the task to complete by polling refresh!
46 47 48 49 |
# File 'lib/kie/task.rb', line 46 def wait(timeout: 300, interval: 2, raise_on_failure: true) deadline = Time.now + timeout poll_until_completed(deadline: deadline, interval: interval, raise_on_failure: raise_on_failure) end |