class Tower::Service
Public Class Methods
later(*args)
click to toggle source
# File lib/tower/service.rb, line 17 def self.later(*args) Tower::Queue.add self, *args end
new(*args)
click to toggle source
Initialize
takes any number of args which are set as instance variables
# File lib/tower/service.rb, line 24 def initialize(*args) set_instance_variables args end
now(*args)
click to toggle source
run service now
# File lib/tower/service.rb, line 13 def self.now(*args) new(*args).run end
takes(*names)
click to toggle source
Takes
setup args for runners
# File lib/tower/service.rb, line 5 def self.takes(*names) return @takes if names.empty? @takes = names end
Public Instance Methods
perform()
click to toggle source
# File lib/tower/service.rb, line 33 def perform; run; end
run()
click to toggle source
Run
called by Service.now
after initializing new service override with service logic
# File lib/tower/service.rb, line 32 def run; raise NotImplementedError; end
Private Instance Methods
set_instance_variables(values)
click to toggle source
@params args array from initialize creates an instance variable for each arg passed to initialize variable names pulled from self.class.args
# File lib/tower/service.rb, line 44 def set_instance_variables(values) values.each_with_index do |value,i| name = self.class.takes[i] instance_variable_set "@#{name}",value end end