Module: Dronejob::Loader

Defined in:
lib/dronejob/loader.rb

Constant Summary collapse

@@workers =
nil

Class Method Summary collapse

Class Method Details

.identifier_for(worker) ⇒ Object



18
19
20
# File 'lib/dronejob/loader.rb', line 18

def self.identifier_for(worker)
  self.workers.key(worker.class)
end

.loadObject



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/dronejob/loader.rb', line 5

def self.load
  require "active_support/all"
  workers = {}
  Dir["#{Dronejob::Base.jobs_path}/*.rb"].each do |file|
    require "./#{file}"
    identifier = File.basename(file).gsub(/\.rb$/, "")
    klassname = identifier.camelcase
    klass = klassname.constantize
    workers[identifier] = klass
  end
  workers
end

.workers(type = "base") ⇒ Object



22
23
24
25
26
# File 'lib/dronejob/loader.rb', line 22

def self.workers(type = "base")
  type = type.to_s
  @@workers ||= load
  @@workers.select { |key, worker| worker::DRONEJOB_TYPE == type }
end