mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
[Feature] Sidekiq worker generator
This commit is contained in:
parent
95d5998ca4
commit
1e6aa900af
5 changed files with 74 additions and 0 deletions
|
@ -3,6 +3,8 @@
|
|||
|
||||
- Add queues list for each process to the Busy page. [davetoxa, #1897]
|
||||
- Fix for crash caused by empty config file. [jordan0day, #1901]
|
||||
- Add worker generator. You can generate a worker and it test file with
|
||||
`rails g sidekiq:worker User`, that will create UserWorker. [seuros, #1909]
|
||||
|
||||
3.2.2
|
||||
-----------
|
||||
|
|
9
lib/generators/sidekiq/templates/worker.rb.erb
Normal file
9
lib/generators/sidekiq/templates/worker.rb.erb
Normal file
|
@ -0,0 +1,9 @@
|
|||
<% module_namespacing do -%>
|
||||
class <%= class_name %>Worker
|
||||
include Sidekiq::Worker
|
||||
|
||||
def perform(*args)
|
||||
# Do something
|
||||
end
|
||||
end
|
||||
<% end -%>
|
6
lib/generators/sidekiq/templates/worker_spec.rb.erb
Normal file
6
lib/generators/sidekiq/templates/worker_spec.rb.erb
Normal file
|
@ -0,0 +1,6 @@
|
|||
require 'rails_helper'
|
||||
<% module_namespacing do -%>
|
||||
RSpec.describe <%= class_name %>Worker, :type => :worker do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
<% end -%>
|
8
lib/generators/sidekiq/templates/worker_test.rb.erb
Normal file
8
lib/generators/sidekiq/templates/worker_test.rb.erb
Normal file
|
@ -0,0 +1,8 @@
|
|||
require_relative 'test_helper'
|
||||
<% module_namespacing do -%>
|
||||
class <%= class_name %>WorkerTest < MiniTest::Unit::TestCase
|
||||
def test_example
|
||||
skip "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
end
|
||||
<% end -%>
|
49
lib/generators/sidekiq/worker_generator.rb
Normal file
49
lib/generators/sidekiq/worker_generator.rb
Normal file
|
@ -0,0 +1,49 @@
|
|||
require 'rails/generators/named_base'
|
||||
|
||||
module Sidekiq
|
||||
module Generators # :nodoc:
|
||||
class WorkerGenerator < ::Rails::Generators::NamedBase # :nodoc:
|
||||
desc 'This generator creates a sidekiq worker file at app/workers'
|
||||
|
||||
check_class_collision suffix: 'Worker'
|
||||
|
||||
def self.default_generator_root
|
||||
File.dirname(__FILE__)
|
||||
end
|
||||
|
||||
def create_worker_file
|
||||
template 'worker.rb.erb', File.join('app/workers', class_path, "#{file_name}_worker.rb")
|
||||
end
|
||||
|
||||
def create_test_file
|
||||
if defined?(RSpec)
|
||||
create_worker_spec
|
||||
else
|
||||
create_worker_test
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_worker_spec
|
||||
template_file = File.join(
|
||||
'spec/workers',
|
||||
class_path,
|
||||
"#{file_name}_spec.rb"
|
||||
)
|
||||
template 'worker_spec.rb.erb', template_file
|
||||
end
|
||||
|
||||
def create_worker_test
|
||||
template_file = File.join(
|
||||
'test/workers',
|
||||
class_path,
|
||||
"#{file_name}_test.rb"
|
||||
)
|
||||
template 'worker_test.rb.erb', template_file
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue