multi_daemons 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94a7357d82ce0c7bb9777ddfb9bfef8cf269502bbd11bce21f56bc7586178124
4
- data.tar.gz: b550706f126fed3ea6180b3937c199b076ac0d4450d91a6b998a66dfa438512b
3
+ metadata.gz: dffea966b602d924ca26d77e1202c87b7c2392052471d7e27a0cf1a17abae5d7
4
+ data.tar.gz: 28a0f94d79fc7fb6e612a41b6fd2d2a83731f846eeaead4e725f5a9cb255eeb0
5
5
  SHA512:
6
- metadata.gz: 9abc1cdf44b622c5a15db5b4afc643b8d6b006a086470c86d18c06cdeb392c5e494c2949b8e1cb9957697a6b70224d94e239f88ec0d564f511a2bd84055d1f7f
7
- data.tar.gz: 7bfe24eb227f8b97be5b1eac389f964e0db06e843a26b9d62496a75b0620fe2dc4b76d57f16b41c42e7d8542ff247eab504119ed8e2500f16cb24a623a68fd64
6
+ metadata.gz: 81afa3560717b5bc5d309d7c75ebaa6c8c667d1b29f87e1122b7f10bcec3e444f306953c04f8f84bad5c3b57ab063ddda1a5184844fb83e916b4d207ed4b758f
7
+ data.tar.gz: 47ff8582405bd945f2f204d67d868b2ade4a324a621c9aa204192a9290992383aaf637e79653652b61b5941a977104676627fc54fbe907c9e03bafbe76fff104
data/lib/multi_daemons.rb CHANGED
@@ -1,14 +1,18 @@
1
1
  # require 'multi_daemons/version'
2
2
  require_relative 'multi_daemons/controller'
3
+ require_relative 'multi_daemons/configuration'
4
+ require_relative 'multi_daemons/daemon'
5
+ require_relative 'multi_daemons/error_reporter'
3
6
  require_relative 'multi_daemons/pid_store'
4
7
  require_relative 'multi_daemons/pid'
5
- require_relative 'multi_daemons/daemon'
6
8
  require_relative 'multi_daemons/validate'
7
9
  require 'fileutils'
8
10
  require 'byebug'
9
11
  require 'timeout'
10
12
 
11
13
  module MultiDaemons
14
+ CONFIG = Configuration.new
15
+
12
16
  def self.runner(daemons, options = {})
13
17
  raise unless Validate.valid_multi_daemon?(daemons)
14
18
 
@@ -16,6 +20,14 @@ module MultiDaemons
16
20
  daemonize(controller)
17
21
  end
18
22
 
23
+ def self.error_reporters
24
+ CONFIG.error_reporters
25
+ end
26
+
27
+ def self.error_reporters=(reporters)
28
+ CONFIG.error_reporters = reporters
29
+ end
30
+
19
31
  def self.daemonize(controller)
20
32
  case !ARGV.empty? && ARGV[0]
21
33
  when 'start'
@@ -0,0 +1,9 @@
1
+ module MultiDaemons
2
+ class Configuration
3
+ attr_writer :error_reporters
4
+
5
+ def error_reporters
6
+ @error_reporters.is_a?(Array) ? @error_reporters : [@error_reporters]
7
+ end
8
+ end
9
+ end
@@ -77,6 +77,7 @@ module MultiDaemons
77
77
  rescue Exception => e
78
78
  puts e.message
79
79
  puts e.backtrace
80
+ ErrorReporter.report(e, class: self.class.name, name: name, type: type, options: options)
80
81
  end
81
82
  end
82
83
  end
@@ -0,0 +1,16 @@
1
+ module MultiDaemons
2
+ class ErrorReporter
3
+ attr_accessor :reporters
4
+
5
+ def self.report(exception, context_hash = {})
6
+ MultiDaemons.error_reporters.compact.each do |reporter|
7
+ begin
8
+ reporter.call(exception, self, context_hash)
9
+ rescue => inner_exception
10
+ puts inner_exception
11
+ puts inner_exception.backtrace.join("\n") unless inner_exception.backtrace
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,3 +1,3 @@
1
1
  module MultiDaemons
2
- VERSION = '0.1.3'.freeze
2
+ VERSION = '0.1.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multi_daemons
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - santhanakarthikeyan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-07 00:00:00.000000000 Z
11
+ date: 2018-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,8 +99,10 @@ files:
99
99
  - bin/console
100
100
  - bin/setup
101
101
  - lib/multi_daemons.rb
102
+ - lib/multi_daemons/configuration.rb
102
103
  - lib/multi_daemons/controller.rb
103
104
  - lib/multi_daemons/daemon.rb
105
+ - lib/multi_daemons/error_reporter.rb
104
106
  - lib/multi_daemons/pid.rb
105
107
  - lib/multi_daemons/pid_store.rb
106
108
  - lib/multi_daemons/validate.rb