eatmysoul 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/bin/eatmysoul CHANGED
@@ -32,7 +32,7 @@
32
32
  # POSSIBILITY OF SUCH DAMAGE.
33
33
 
34
34
  require 'daemons'
35
- require 'eatmysoul'
35
+ load 'lib/eatmysoul.rb'
36
36
 
37
37
  daemon_options = {
38
38
  :app_name => "eatmysoul",
@@ -46,6 +46,6 @@ daemon_options = {
46
46
  Daemons.run_proc('eatmysoul', daemon_options) do
47
47
  o = EatMySoul::Settings.new
48
48
  Signal.trap("PIPE") { EatMySoul.connect_loop o }
49
- EatMySoul.connect_loop(o)
49
+ EatMySoul::Manager.instance.connect_loop(o)
50
50
  end
51
51
 
data/lib/eatmysoul.rb CHANGED
@@ -32,15 +32,13 @@
32
32
  # POSSIBILITY OF SUCH DAMAGE.
33
33
 
34
34
  require 'eventmachine'
35
+ require 'singleton'
35
36
  require 'yaml'
36
37
  require 'logger'
37
38
  require 'digest/md5'
38
39
  require 'trollop'
39
40
 
40
41
  module EatMySoul
41
- @@active_connection = nil
42
- @@monitor = nil
43
-
44
42
  class Settings
45
43
  # edit the next line to change the default path
46
44
  def initialize()
@@ -133,7 +131,7 @@ module EatMySoul
133
131
  @o = settings
134
132
  @status = NOT_CONNECTED
135
133
  @last_ping = Time.now
136
- @@active_connection = self
134
+ Manager.instance.active_connection = self
137
135
  end
138
136
 
139
137
  def post_init
@@ -157,7 +155,7 @@ module EatMySoul
157
155
  end
158
156
 
159
157
  def unbind
160
- @@active_connection = nil
158
+ Manager.instance.active_connection = nil
161
159
  EM.add_timer(5) { EM.connect @o.server, @o.port, Netsoul, @o }
162
160
  end
163
161
 
@@ -222,40 +220,48 @@ module EatMySoul
222
220
  str.gsub!(' ', '+')
223
221
  str
224
222
  end
223
+ end # class Netsoul
225
224
 
226
- end
227
225
 
228
- def self.run(o)
229
- EM.run do
230
- @@monitor = EM::add_periodic_timer(5) { self.monitor o } unless @@monitor
231
- EM.connect o.server, o.port, Netsoul, o
226
+ class Manager
227
+ include Singleton
228
+ attr_accessor :active_connection, :monitor_timer
229
+
230
+ def run(o)
231
+ EM.run do
232
+ monitor_timer = EM::add_periodic_timer(1) { monitor o } unless monitor_timer
233
+ EM.connect o.server, o.port, Netsoul, o
234
+ end
232
235
  end
233
- end
234
236
 
235
- def self.connect_loop(o)
236
- while true do
237
- sleep_time = 0
237
+ def connect_loop(o)
238
+ while true do
239
+ sleep_time = 0
238
240
 
239
- begin
240
- self.run(o)
241
- rescue => e
242
- o.logger.fatal "Rescued from exception #{e}"
243
- o.logger.debug e.backtrace.join "\n"
244
- end
241
+ begin
242
+ self.run(o)
243
+ rescue => e
244
+ o.logger.fatal "Rescued from exception #{e}"
245
+ o.logger.debug e.backtrace.join "\n"
246
+ end
245
247
 
246
- sleep sleep_time
247
- sleep_time = sleep_time + 5 if sleep_time < 120
248
+ sleep sleep_time
249
+ sleep_time = sleep_time + 5 if sleep_time < 120
250
+ end
248
251
  end
249
- end
250
252
 
251
- def self.monitor(o)
252
- if @@active_connection
253
- if (Time.now - @@active_connection.last_ping) > 700
254
- o.logger.warn "Connection seems inactive, restarting ..."
255
- @@active_connection.close_connection
253
+ def monitor(o)
254
+ if active_connection
255
+ o.logger.debug "Checking for connection inactivity"
256
+ if (Time.now - active_connection.last_ping) > 650
257
+ o.logger.warn "Connection seems inactive, restarting ..."
258
+ active_connection.close_connection
259
+ end
256
260
  end
257
261
  end
258
- end
259
262
 
260
- end
263
+ end # class Manager
264
+
265
+
266
+ end # module EatmySoul
261
267
 
@@ -1,3 +1,3 @@
1
1
  module Eatmysoul
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,38 +1,48 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eatmysoul
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
4
  prerelease:
5
+ version: 0.1.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Julien 'Lta' BALLET
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-23 00:00:00.000000000 Z
12
+ date: 2012-12-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: eventmachine
16
- requirement: &14068940 !ruby/object:Gem::Requirement
15
+ type: :runtime
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: *14068940
25
- - !ruby/object:Gem::Dependency
26
- name: daemons
27
- requirement: &14068520 !ruby/object:Gem::Requirement
23
+ version_requirements: !ruby/object:Gem::Requirement
28
24
  none: false
29
25
  requirements:
30
26
  - - ! '>='
31
27
  - !ruby/object:Gem::Version
32
28
  version: '0'
29
+ name: eventmachine
30
+ - !ruby/object:Gem::Dependency
33
31
  type: :runtime
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
34
38
  prerelease: false
35
- version_requirements: *14068520
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ name: daemons
36
46
  description: A simple netsoul (epitech's internal network protocol) client, mainly
37
47
  targeting servers
38
48
  email:
@@ -73,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
83
  version: '0'
74
84
  requirements: []
75
85
  rubyforge_project: eatmysoul
76
- rubygems_version: 1.8.15
86
+ rubygems_version: 1.8.24
77
87
  signing_key:
78
88
  specification_version: 3
79
89
  summary: Simple chatless netsoul client