game-server 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/game-server.gemspec +2 -2
  3. data/lib/daemon_logger.rb +25 -1
  4. metadata +13 -13
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.4.2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "game-server"
8
- s.version = "0.4.1"
8
+ s.version = "0.4.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["V_M"]
12
- s.date = "2012-06-28"
12
+ s.date = "2012-06-29"
13
13
  s.description = "siply general-porpuse game server"
14
14
  s.email = "nobody@nowhere.com"
15
15
  s.extra_rdoc_files = [
@@ -1,6 +1,11 @@
1
+ require 'net/smtp'
2
+ require 'singleton'
3
+ require 'logger'
4
+
1
5
  class DaemonLogger
2
6
  include Singleton
3
7
  attr_writer :logger
8
+ attr_accessor :email_receivers, :smtp_server
4
9
 
5
10
  class NullLogger
6
11
  def method_missing(*args, &block)
@@ -9,6 +14,10 @@ class DaemonLogger
9
14
  end
10
15
 
11
16
 
17
+ # ==== Params
18
+ # params<Hash>::
19
+ # log_file_path<String>:: куда будет писаться лог
20
+ # email_receivers<Array[String]>:: список получателей сообщений о критических ошибках
12
21
  def init(params)
13
22
  raise TypeError.new(":log_file_path required") unless params[:log_file_path]
14
23
  file = File.open(params[:log_file_path], 'a')
@@ -17,6 +26,8 @@ class DaemonLogger
17
26
  logger.level = Logger::DEBUG
18
27
  logger.formatter = Logger::Formatter.new
19
28
  logger.datetime_format = "%y-%m-%d %H:%M:%S.%L"
29
+ self.email_receivers = params[:email_receivers].to_a
30
+ self.smtp_server = params[:smtp_server] || 'localhost'
20
31
  end
21
32
 
22
33
  def self.init(*params)
@@ -32,8 +43,19 @@ class DaemonLogger
32
43
  end
33
44
  end
34
45
 
46
+ def send_emails_to_receivers(message)
47
+ return if !email_receivers or email_receivers.empty?
48
+ Net::SMTP.start(smtp_server) do |smtp|
49
+ smtp.send_message message, 'daemon.exceptions@skyburg.com', email_receivers
50
+ end
51
+ rescue => e
52
+ log_exception(e, false, "SENDING EXCEPTION EMAIL ERROR")
53
+ end
54
+
55
+
35
56
  module Mixins
36
57
 
58
+ # FIXME:: DOCUMENTATION
37
59
  def log(message, log_type = :info)
38
60
  puts "#{Time.now} #{log_type} #{message}"
39
61
  DaemonLogger.instance.logger.send(log_type, message)
@@ -47,10 +69,11 @@ Exception was raised #{exception}
47
69
  BACKTRACE:
48
70
  #{exception.backtrace.join("\n")}
49
71
  EOF
50
- puts "SENDING MAIL" if send_mail
72
+ DaemonLogger.instance.send_emails_to_receivers(message) if send_mail
51
73
  log(message, :error)
52
74
  end
53
75
 
76
+
54
77
  def with_exception_logging
55
78
  yield
56
79
  rescue => e
@@ -61,4 +84,5 @@ EOF
61
84
 
62
85
  end
63
86
 
87
+ include Mixins
64
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: game-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-28 00:00:00.000000000 Z
12
+ date: 2012-06-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &77485640 !ruby/object:Gem::Requirement
16
+ requirement: &80314020 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *77485640
24
+ version_requirements: *80314020
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rdoc
27
- requirement: &77485280 !ruby/object:Gem::Requirement
27
+ requirement: &80313590 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.12'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *77485280
35
+ version_requirements: *80313590
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &77500620 !ruby/object:Gem::Requirement
38
+ requirement: &80351950 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *77500620
46
+ version_requirements: *80351950
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &77500230 !ruby/object:Gem::Requirement
49
+ requirement: &80351540 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.8.3
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *77500230
57
+ version_requirements: *80351540
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &77499750 !ruby/object:Gem::Requirement
60
+ requirement: &80350760 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *77499750
68
+ version_requirements: *80350760
69
69
  description: siply general-porpuse game server
70
70
  email: nobody@nowhere.com
71
71
  executables: []
@@ -109,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  segments:
111
111
  - 0
112
- hash: 224777329
112
+ hash: -949991089
113
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  none: false
115
115
  requirements: