21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/generators/delayed_job_groups_plugin/install_generator.rb', line 21
def create_initializer
initializer_file = File.join('config/initializers', 'delayed_job_config.rb')
configuration_on_matcher = /Delayed::Worker\.destroy_failed_jobs\s*=\s*true/
configuration_off_matcher = /Delayed::Worker\.destroy_failed_jobs\s*=\s*false/
say 'Attempting to initialize delayed_job_config initializer...', :green
if File.exist?(initializer_file)
say 'delayed_job_config initializer already exists... checking destroy_failed_jobs options', :green
contents = File.read(initializer_file)
if contents.match(configuration_on_matcher)
say 'Delayed::Worker.destroy_failed_jobs is set to true', :red
say 'This library requires the option to be set to false, updating config now!', :yellow
gsub_file initializer_file, configuration_on_matcher, 'Delayed::Worker.destroy_failed_jobs = false'
elsif contents.match(configuration_off_matcher)
say 'Delayed::Worker.destroy_failed_jobs is set to false; nothing to do!', :green
else
say 'Delayed::Worker.destroy_failed_jobs is not set'
say 'This library requires the option to be set to false, updating config now!', :yellow
inject_into_file initializer_file, "Delayed::Worker.destroy_failed_jobs = false\n"
end
else
create_file initializer_file do
<<~RUBY
# frozen_string_literal: true
Delayed::Worker.destroy_failed_jobs = false
RUBY
end
end
end
|