foreverb 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +1 -1
- data/foreverb.gemspec +2 -1
- data/lib/forever/base.rb +19 -7
- data/lib/forever/version.rb +1 -1
- metadata +23 -9
data/README.md
CHANGED
@@ -127,7 +127,7 @@ Forever.run do
|
|
127
127
|
dir File.expand_path('../', __FILE__) # Default is ../../__FILE__
|
128
128
|
|
129
129
|
before :all do
|
130
|
-
puts "All jobs will
|
130
|
+
puts "All jobs will wait me for 1 second"; sleep 1
|
131
131
|
end
|
132
132
|
|
133
133
|
every 10.seconds, :at => "#{Time.now.hour}:00" do
|
data/foreverb.gemspec
CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = %w(lib)
|
20
|
-
s.add_dependency 'thor', '~>0.
|
20
|
+
s.add_dependency 'thor', '~>0.16.0'
|
21
21
|
s.add_development_dependency 'minitest'
|
22
|
+
s.add_development_dependency 'rspec'
|
22
23
|
end
|
data/lib/forever/base.rb
CHANGED
@@ -6,10 +6,11 @@ module Forever
|
|
6
6
|
attr_reader :started_at
|
7
7
|
|
8
8
|
def initialize(options={}, &block)
|
9
|
+
@options = options
|
9
10
|
forking = options.delete(:fork)
|
10
11
|
|
11
12
|
# Run others methods
|
12
|
-
options.each { |k,v| send(k, v) }
|
13
|
+
options.each { |k,v| send(k, v) if respond_to?(k) }
|
13
14
|
|
14
15
|
instance_eval(&block)
|
15
16
|
|
@@ -26,6 +27,9 @@ module Forever
|
|
26
27
|
exit
|
27
28
|
when 'start', 'restart', 'up', nil
|
28
29
|
stop
|
30
|
+
when 'run'
|
31
|
+
detach = false
|
32
|
+
stop
|
29
33
|
when 'stop'
|
30
34
|
stop
|
31
35
|
exit
|
@@ -62,12 +66,12 @@ module Forever
|
|
62
66
|
# Enable REE - http://www.rubyenterpriseedition.com/faq.html#adapt_apps_for_cow
|
63
67
|
GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=)
|
64
68
|
|
65
|
-
|
66
|
-
Process.setsid
|
69
|
+
maybe_fork(detach) do
|
70
|
+
Process.setsid if detach != false
|
67
71
|
|
68
|
-
$0 = "Forever: #{$0}"
|
69
|
-
print "[\e[90m%s\e[0m] Process
|
70
|
-
[name, Process.pid, forking ? :fork : :thread, Forever::VERSION]
|
72
|
+
$0 = "Forever: #{$0}" unless ENV['DONT_TOUCH_PS']
|
73
|
+
print "[\e[90m%s\e[0m] Process %s with pid \e[1m%d\e[0m with \e[1m%s\e[0m and Forever v.%s\n" %
|
74
|
+
[name, detach != false ? :daemonized : :running, Process.pid, forking ? :fork : :thread, Forever::VERSION]
|
71
75
|
|
72
76
|
%w(INT TERM KILL).each { |signal| trap(signal) { stop! } }
|
73
77
|
trap(:HUP) do
|
@@ -76,7 +80,7 @@ module Forever
|
|
76
80
|
|
77
81
|
File.open(pid, "w") { |f| f.write(Process.pid.to_s) } if pid
|
78
82
|
|
79
|
-
stream = log ? File.new(log,
|
83
|
+
stream = log ? File.new(log, @options[:append_log] ? 'a' : 'w') : File.open('/dev/null', 'w')
|
80
84
|
stream.sync = true
|
81
85
|
|
82
86
|
STDOUT.reopen(stream)
|
@@ -340,6 +344,14 @@ module Forever
|
|
340
344
|
File.exist?(stop_txt) && File.mtime(stop_txt) > started_at
|
341
345
|
end
|
342
346
|
|
347
|
+
def maybe_fork(detach,&block)
|
348
|
+
if detach != false
|
349
|
+
fork &block
|
350
|
+
else
|
351
|
+
yield
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
343
355
|
def write_config!
|
344
356
|
config_was = File.exist?(FOREVER_PATH) ? YAML.load_file(FOREVER_PATH) : []
|
345
357
|
config_was.delete_if { |conf| conf.nil? || conf.empty? || conf[:file] == file }
|
data/lib/forever/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreverb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- DAddYE
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-09-04 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: thor
|
@@ -25,12 +25,12 @@ dependencies:
|
|
25
25
|
requirements:
|
26
26
|
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
hash:
|
28
|
+
hash: 95
|
29
29
|
segments:
|
30
30
|
- 0
|
31
|
-
-
|
32
|
-
-
|
33
|
-
version: 0.
|
31
|
+
- 16
|
32
|
+
- 0
|
33
|
+
version: 0.16.0
|
34
34
|
type: :runtime
|
35
35
|
version_requirements: *id001
|
36
36
|
- !ruby/object:Gem::Dependency
|
@@ -47,6 +47,20 @@ dependencies:
|
|
47
47
|
version: "0"
|
48
48
|
type: :development
|
49
49
|
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: rspec
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
type: :development
|
63
|
+
version_requirements: *id003
|
50
64
|
description: Small daemon framework for ruby, with logging, error handler, scheduling and much more.
|
51
65
|
email:
|
52
66
|
- d.dagostino@lipsiasoft.com
|
@@ -104,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
118
|
requirements: []
|
105
119
|
|
106
120
|
rubyforge_project: foreverb
|
107
|
-
rubygems_version: 1.8.
|
121
|
+
rubygems_version: 1.8.24
|
108
122
|
signing_key:
|
109
123
|
specification_version: 3
|
110
124
|
summary: Small daemon framework for ruby
|