Class: Sv::Job

Inherits:
Object
  • Object
show all
Defined in:
lib/sv/job.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Job

Returns a new instance of Job.



8
9
10
# File 'lib/sv/job.rb', line 8

def initialize(name)
  set :name, name
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/sv/job.rb', line 5

def name
  @name
end

#namespace=(value) ⇒ Object (writeonly)

Sets the attribute namespace

Parameters:

  • value

    the value to set the attribute namespace to.



6
7
8
# File 'lib/sv/job.rb', line 6

def namespace=(value)
  @namespace = value
end

#working_dir(*args) ⇒ Object



24
25
26
# File 'lib/sv/job.rb', line 24

def working_dir(*args)
  set_or_get :working_dir, args
end

Instance Method Details

#autorestart(*args) ⇒ Object



38
39
40
# File 'lib/sv/job.rb', line 38

def autorestart(*args)
  set_or_get :autorestart, args
end

#command(*args) ⇒ Object



20
21
22
# File 'lib/sv/job.rb', line 20

def command(*args)
  set_or_get :command, args
end

#env(*args) ⇒ Object



28
29
30
# File 'lib/sv/job.rb', line 28

def env(*args)
  set_or_get :env, args
end

#groupObject



16
17
18
# File 'lib/sv/job.rb', line 16

def group
  @namespace ? "#{name}.#{@namespace}" : name
end

#killasgroup(*args) ⇒ Object



66
67
68
# File 'lib/sv/job.rb', line 66

def killasgroup(*args)
  set_or_get :killasgroup, args
end

#numprocs(*args) ⇒ Object



32
33
34
35
36
# File 'lib/sv/job.rb', line 32

def numprocs(*args)
  set_or_get :numprocs, args do |v|
    v.to_i
  end
end

#processesObject



93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/sv/job.rb', line 93

def processes
  processes = []
  s = Struct.new(:name, :group, :stopwait_on_rr)
  numprocs.times do |i|
    process = s.new
    process.name = "#{name}_#{i.to_s.rjust(2,"0")}"
    process.group = group
    process.stopwait_on_rr = stopwait_on_rr
    processes << process
  end
  processes
end

#renderObject



84
85
86
87
88
89
90
91
# File 'lib/sv/job.rb', line 84

def render
  return if attributes.values.any? { |v| v.nil? }
  return if attributes[:numprocs] < 1
  File.open(template) do |f|
    erb = ERB.new(f.read, nil, '<>')
    erb.result(binding)
  end
end

#startretries(*args) ⇒ Object



46
47
48
# File 'lib/sv/job.rb', line 46

def startretries(*args)
  set_or_get :startretries, args
end

#startsecs(*args) ⇒ Object



42
43
44
# File 'lib/sv/job.rb', line 42

def startsecs(*args)
  set_or_get :startsecs, args
end

#stderr_logfile(*args) ⇒ Object



74
75
76
# File 'lib/sv/job.rb', line 74

def stderr_logfile(*args)
  set_or_get :stderr_logfile, args
end

#stdout_logfile(*args) ⇒ Object



70
71
72
# File 'lib/sv/job.rb', line 70

def stdout_logfile(*args)
  set_or_get :stdout_logfile, args
end

#stopasgroup(*args) ⇒ Object



62
63
64
# File 'lib/sv/job.rb', line 62

def stopasgroup(*args)
  set_or_get :stopasgroup, args
end

#stopsignal(*args) ⇒ Object



50
51
52
# File 'lib/sv/job.rb', line 50

def stopsignal(*args)
  set_or_get :stopsignal, args
end

#stopwait_on_rr(*args) ⇒ Object



54
55
56
# File 'lib/sv/job.rb', line 54

def stopwait_on_rr(*args)
  set_or_get :stopwait_on_rr, args
end

#stopwaitsecs(*args) ⇒ Object



58
59
60
# File 'lib/sv/job.rb', line 58

def stopwaitsecs(*args)
  set_or_get :stopwaitsecs, args
end

#update(attrs) ⇒ Object



78
79
80
81
82
# File 'lib/sv/job.rb', line 78

def update(attrs)
  attrs.each do |key ,value|
    set key, value
  end 
end