Class: PredicsisMlSdk::Job

Inherits:
Object
  • Object
show all
Includes:
Observable, Util
Defined in:
lib/predicsis_ml_sdk/job.rb

Instance Attribute Summary collapse

Attributes included from Util

#token

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Util

#bearer_token, #define_attributes, included, #with_captured_console

Constructor Details

#initialize(id, token = bearer_token) ⇒ Job

Returns a new instance of Job.



23
24
25
26
# File 'lib/predicsis_ml_sdk/job.rb', line 23

def initialize(id, token = bearer_token)
  @token = token
  @id = id
end

Instance Attribute Details

#idObject

Returns the value of attribute id.



8
9
10
# File 'lib/predicsis_ml_sdk/job.rb', line 8

def id
  @id
end

Class Method Details

.all(token = bearer_token) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/predicsis_ml_sdk/job.rb', line 14

def self.all(token = bearer_token)
  data = Requests.get_jobs(token)
  data.each_with_object([]) do |e, a|
    a << new(e['id'], token).tap do |resource|
      resource.send(:define_attributes, e)
    end
  end
end

.get(id, token = bearer_token) ⇒ Object



10
11
12
# File 'lib/predicsis_ml_sdk/job.rb', line 10

def self.get(id, token = bearer_token)
  new(id, token).get
end

Instance Method Details

#deleteObject



34
35
36
37
# File 'lib/predicsis_ml_sdk/job.rb', line 34

def delete
  Requests.delete_job(token, id)
  self
end

#failed?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/predicsis_ml_sdk/job.rb', line 48

def failed?
  status.eql? 'failed'
end

#getObject



28
29
30
31
32
# File 'lib/predicsis_ml_sdk/job.rb', line 28

def get
  data = Requests.get_job(token, id)
  define_attributes(data)
  self
end

#next_jobObject



39
40
41
42
# File 'lib/predicsis_ml_sdk/job.rb', line 39

def next_job
  return nil unless next_job_id
  @next_job ||= Job.get(next_job_id, token)
end

#pending?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/predicsis_ml_sdk/job.rb', line 52

def pending?
  %w(pending processing).include? status
end

#succeeded?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/predicsis_ml_sdk/job.rb', line 44

def succeeded?
  status.eql? 'completed'
end

#terminated?Boolean

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
# File 'lib/predicsis_ml_sdk/job.rb', line 56

def terminated?
  if failed?
    fail JobError.new(errors, id, action)
  elsif succeeded?
    next_job ? next_job.terminated? : true
  else
    false
  end
end