Class: Traker::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/traker/service.rb

Overview

Service that encapsulates main Traker API

Instance Method Summary collapse

Constructor Details

#initializeService

Returns a new instance of Service.



8
9
10
# File 'lib/traker/service.rb', line 8

def initialize
  @config = Traker::Config.load
end

Instance Method Details

#pending_tasksObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/traker/service.rb', line 12

def pending_tasks
  records = Traker::Task.where(name: tasks, environment: @config.env)
  actual = tasks.each_with_object({}) do |name, hash|
    record = records.find { |r| r.name == name }
    hash[name] = record ? record.run_count : 0
  end

  pending = []
  tasks.each do |name|
    actual[name] -= 1
    next if actual[name] >= 0

    pending << name
  end

  pending
end

#tasksObject



30
31
32
# File 'lib/traker/service.rb', line 30

def tasks
  @tasks ||= @config.tasks.map { |t| t['name'] }
end