1
0
Fork 0
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:
Abdelkader Boudih 2014-08-22 15:40:08 +00:00
parent 95d5998ca4
commit 1e6aa900af
5 changed files with 74 additions and 0 deletions

View file

@ -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
-----------

View file

@ -0,0 +1,9 @@
<% module_namespacing do -%>
class <%= class_name %>Worker
include Sidekiq::Worker
def perform(*args)
# Do something
end
end
<% end -%>

View 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 -%>

View 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 -%>

View 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