multi_daemons 0.1.3 → 0.1.4

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.
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