Class: Sv::Supervisor::Config
- Inherits:
-
Object
- Object
- Sv::Supervisor::Config
show all
- Includes:
- Logger
- Defined in:
- lib/sv/supervisor/config.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Logger
logger, #logger, stderr, #stderr
Constructor Details
#initialize(config) ⇒ Config
Returns a new instance of Config.
11
12
13
|
# File 'lib/sv/supervisor/config.rb', line 11
def initialize(config)
@config = config
end
|
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
9
10
11
|
# File 'lib/sv/supervisor/config.rb', line 9
def config
@config
end
|
Instance Method Details
#binding ⇒ Object
54
55
56
57
58
59
60
61
|
# File 'lib/sv/supervisor/config.rb', line 54
def binding
opts = OpenStruct.new
opts.socket_path = File.realdirpath config.socket_path
opts.pidfile = File.realdirpath config.pidfile
opts.logfile = File.realdirpath config.logfile
opts.rendered_jobs = rendered_jobs
opts.instance_eval { binding }
end
|
#generate_config_file ⇒ Object
24
25
26
27
28
29
30
31
|
# File 'lib/sv/supervisor/config.rb', line 24
def generate_config_file
erb = ERB.new(File.read(template), nil, '-')
File.open(path, 'w') do |f|
f.write erb.result(binding)
end
rescue => e
raise ::Sv::Error, "unable to generate supervisor config"
end
|
#generate_once ⇒ Object
33
34
35
36
37
|
# File 'lib/sv/supervisor/config.rb', line 33
def generate_once
return if @config_generated
generate_config_file
@config_generated = true
end
|
#generated_path ⇒ Object
19
20
21
22
|
# File 'lib/sv/supervisor/config.rb', line 19
def generated_path
generate_once
path
end
|
#path ⇒ Object
15
16
17
|
# File 'lib/sv/supervisor/config.rb', line 15
def path
@path ||= File.realdirpath "#{config.app_dir}/tmp/supervisor.conf"
end
|
#rendered_jobs ⇒ Object
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/sv/supervisor/config.rb', line 43
def rendered_jobs
jobs = config.jobs
jobs.inject("") do |str, job|
logger.debug "rendering #{job}"
render = job.render
logger.debug render
str << render if render
str
end
end
|
#template ⇒ Object
39
40
41
|
# File 'lib/sv/supervisor/config.rb', line 39
def template
"#{__dir__}/../templates/supervisor.conf.erb"
end
|