daemonizer 0.1.1 → 0.1.2
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/VERSION +1 -1
- data/daemonizer.gemspec +1 -1
- data/lib/daemonizer/dsl.rb +65 -67
- metadata +3 -3
data/README.md
CHANGED
@@ -83,7 +83,7 @@ Usage
|
|
83
83
|
poll_period 5
|
84
84
|
log_file "log/daemonizer.log" #relative to Demfile
|
85
85
|
|
86
|
-
handler
|
86
|
+
handler MyBackgroundSolution::DaemonizerHandler
|
87
87
|
|
88
88
|
#automatically-parsed option by daemonizer
|
89
89
|
set_option :queue do |worker_id, worker_count|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/daemonizer.gemspec
CHANGED
data/lib/daemonizer/dsl.rb
CHANGED
@@ -1,73 +1,71 @@
|
|
1
|
-
|
2
|
-
class DslError < StandardError; end
|
1
|
+
class Daemonizer::DslError < StandardError; end
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
class Daemonizer::Dsl
|
4
|
+
def self.evaluate(gemfile)
|
5
|
+
builder = new
|
6
|
+
builder.instance_eval(File.read(gemfile.to_s), gemfile.to_s, 1)
|
7
|
+
builder.instance_variable_get("@configs")
|
8
|
+
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def handler(handler)
|
30
|
-
@options[:handler] = handler
|
31
|
-
end
|
32
|
-
|
33
|
-
def poll_period(seconds)
|
34
|
-
@options[:poll_period] = seconds.to_i
|
35
|
-
end
|
36
|
-
|
37
|
-
def log_file(log)
|
38
|
-
@options[:log_file] = log
|
39
|
-
end
|
40
|
-
|
41
|
-
def workers(num)
|
42
|
-
@options[:workers] = num.to_i
|
43
|
-
end
|
44
|
-
|
45
|
-
def engine(name)
|
46
|
-
@options[:engine] = name.to_sym
|
47
|
-
end
|
48
|
-
|
49
|
-
def before_init(&blk)
|
50
|
-
@options[:before_init] = blk
|
51
|
-
end
|
52
|
-
|
53
|
-
def after_init(&blk)
|
54
|
-
@options[:after_init] = blk
|
55
|
-
end
|
56
|
-
|
57
|
-
def pid_file(pid)
|
58
|
-
@options[:pid_file] = pid
|
10
|
+
def initialize
|
11
|
+
@source = nil
|
12
|
+
@options = {}
|
13
|
+
@pool = :default
|
14
|
+
@configs = {}
|
15
|
+
end
|
16
|
+
|
17
|
+
def set_option(option, value = nil, &block)
|
18
|
+
@options[:handler_options] ||= {}
|
19
|
+
if value
|
20
|
+
@options[:handler_options][option.to_sym] = Daemonizer::Option.new(option, value)
|
21
|
+
elsif block_given?
|
22
|
+
@options[:handler_options][option.to_sym] = Daemonizer::Option.new(option, block, true)
|
23
|
+
else
|
24
|
+
raise DslError, "you should supply block or value to :set_option"
|
59
25
|
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def handler(handler)
|
29
|
+
@options[:handler] = handler
|
30
|
+
end
|
31
|
+
|
32
|
+
def poll_period(seconds)
|
33
|
+
@options[:poll_period] = seconds.to_i
|
34
|
+
end
|
35
|
+
|
36
|
+
def log_file(log)
|
37
|
+
@options[:log_file] = log
|
38
|
+
end
|
39
|
+
|
40
|
+
def workers(num)
|
41
|
+
@options[:workers] = num.to_i
|
42
|
+
end
|
43
|
+
|
44
|
+
def engine(name)
|
45
|
+
@options[:engine] = name.to_sym
|
46
|
+
end
|
47
|
+
|
48
|
+
def before_init(&blk)
|
49
|
+
@options[:before_init] = blk
|
50
|
+
end
|
51
|
+
|
52
|
+
def after_init(&blk)
|
53
|
+
@options[:after_init] = blk
|
54
|
+
end
|
55
|
+
|
56
|
+
def pid_file(pid)
|
57
|
+
@options[:pid_file] = pid
|
58
|
+
end
|
60
59
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
end
|
60
|
+
def pool(name, &blk)
|
61
|
+
@pool = name.to_sym
|
62
|
+
options = @options.dup
|
63
|
+
yield
|
64
|
+
@configs[@pool] = Daemonizer::Config.new(@pool, @options)
|
65
|
+
rescue Daemonizer::Config::ConfigError => e
|
66
|
+
puts "* Error in pool \"#{@pool}\": #{e.to_s}. Skipping..."
|
67
|
+
ensure
|
68
|
+
@options = options
|
69
|
+
@pool = nil
|
72
70
|
end
|
73
71
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daemonizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gleb Pomykalov
|