27 lines
801 B
Ruby
27 lines
801 B
Ruby
module Travis::API::V3
|
|
class Sidekiq
|
|
def self.client(value = nil)
|
|
@client = value if value
|
|
@client ||= defined?(super) ? super : ::Sidekiq::Client.default
|
|
end
|
|
|
|
attr_accessor :class_name, :queue, :identifier
|
|
attr_writer :client
|
|
|
|
def initialize(identifier, class_name: nil, queue: nil, client: nil)
|
|
@identifier = identifier
|
|
@class_name = class_name || identifier
|
|
@class_name = "Travis::Sidekiq::%s".freeze % @class_name.to_s.camelcase if @class_name.is_a? Symbol
|
|
@queue = queue.to_s || "default".freeze
|
|
@client = client
|
|
end
|
|
|
|
def client
|
|
@client || self.class.client
|
|
end
|
|
|
|
def perform_async(*args)
|
|
client.push('queue'.freeze => queue, 'class'.freeze => class_name, 'args'.freeze => args)
|
|
end
|
|
end
|
|
end |