ruby-app 0.1.10 → 0.1.11
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 +4 -4
- data/generator/project/spec/spec.opts +1 -0
- data/lib/ruby-app/application_defaults.rb +13 -0
- data/lib/ruby-app/common_config.rb +13 -2
- data/lib/ruby-app/environment.rb +0 -4
- data/lib/ruby-app/error_mailer.rb +12 -12
- data/lib/ruby-app/hoptoad.rb +51 -0
- data/lib/ruby-app/version.rb +1 -1
- data/ruby-app.gemspec +1 -1
- metadata +5 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 551b2624fb71df85c598ccc3732de87a7288fd15
|
4
|
+
data.tar.gz: 12c273dceb8416005d0a5a4496bfe5885c3e3ac8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e157f4cdec6908ca3d5d9850d033361941691b559d3f95734ab366f14e44b610441ec1469930eb65a3b4878eb361fc3c2843570f6fbb91b79923f004148ed706
|
7
|
+
data.tar.gz: e7baafb4da948e8932637353721979173916a38fffcd3938fa0ff9dbab26437b25114e338e6979517618f3d3f4c0f5f55b1206551d961e76b8442de1ce8f9cb1
|
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
|
+
$app_started_at = Time.now
|
4
|
+
|
3
5
|
module Application::Defaults
|
4
6
|
|
5
7
|
def tmp_dir
|
@@ -60,10 +62,21 @@ module Application::Defaults
|
|
60
62
|
def bundler_group
|
61
63
|
end
|
62
64
|
|
65
|
+
def started_at
|
66
|
+
$app_started_at
|
67
|
+
end
|
68
|
+
|
63
69
|
def error_mailer
|
64
70
|
ErrorMailer
|
65
71
|
end
|
66
72
|
|
73
|
+
def revision
|
74
|
+
@_revision ||= File.read(File.join(root, %w[REVISION]))[0..5] rescue nil
|
75
|
+
end
|
76
|
+
|
77
|
+
def hostname
|
78
|
+
@_hostname ||= `hostname`.chop
|
79
|
+
end
|
67
80
|
end
|
68
81
|
|
69
82
|
Application.extend(Application::Defaults)
|
@@ -1,5 +1,17 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
|
+
class RubyAppAddress
|
4
|
+
attr_accessor :host, :port
|
5
|
+
def initialize(host, port)
|
6
|
+
@host = host
|
7
|
+
@port = port
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_s
|
11
|
+
"#{host}:#{port}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
3
15
|
class CommonConfig
|
4
16
|
@@configs = {}
|
5
17
|
|
@@ -42,8 +54,7 @@ class CommonConfig
|
|
42
54
|
|
43
55
|
def method_missing(name, *params, &block)
|
44
56
|
if name.to_s =~ /_address$/i
|
45
|
-
|
46
|
-
@configs[name.to_sym] = block || OpenStruct.new(:host => params[0], :port => params[1].to_i)
|
57
|
+
@configs[name.to_sym] = block || RubyAppAddress.new(params[0], params[1].to_s)
|
47
58
|
else
|
48
59
|
params = params[0] if params.size == 1
|
49
60
|
@configs[name.to_sym] = block || params
|
data/lib/ruby-app/environment.rb
CHANGED
@@ -4,27 +4,27 @@ class ErrorMailer
|
|
4
4
|
end
|
5
5
|
|
6
6
|
module ErrorMailer::BlankSlate
|
7
|
-
def message(msg)
|
7
|
+
def message(msg, params = nil)
|
8
8
|
end
|
9
9
|
|
10
|
-
def exception(e)
|
10
|
+
def exception(e, params = nil)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
module ErrorMailer::Logger
|
15
|
-
def message(msg)
|
15
|
+
def message(msg, params = nil)
|
16
16
|
super
|
17
17
|
App.logger.error { msg }
|
18
18
|
end
|
19
19
|
|
20
|
-
def exception(e)
|
20
|
+
def exception(e, params = nil)
|
21
21
|
super
|
22
|
-
App.logger.error{ "#{e.class}: #{e.message}\n#{e.backtrace*"\n"}" }
|
22
|
+
App.logger.error{ "#{e.class}: #{e.message}\n#{(e.backtrace || []) * "\n"}" }
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
module ErrorMailer::ReraiseCtrlC
|
27
|
-
def exception(e)
|
27
|
+
def exception(e, params = nil)
|
28
28
|
if SignalException === e || SystemExit === e
|
29
29
|
raise e
|
30
30
|
end
|
@@ -38,19 +38,19 @@ class ErrorMailer
|
|
38
38
|
include ErrorMailer::Logger
|
39
39
|
include ErrorMailer::ReraiseCtrlC
|
40
40
|
|
41
|
-
def mail_message(m)
|
41
|
+
def mail_message(m, params = nil)
|
42
42
|
message(m)
|
43
43
|
end
|
44
44
|
|
45
|
-
def mail_exception(e)
|
46
|
-
exception(e)
|
45
|
+
def mail_exception(e, params = nil)
|
46
|
+
exception(e, params)
|
47
47
|
end
|
48
48
|
|
49
|
-
def safe(&block)
|
49
|
+
def safe(params = nil, &block)
|
50
50
|
yield
|
51
51
|
|
52
|
-
rescue => ex
|
53
|
-
self.mail_exception(ex)
|
52
|
+
rescue Object => ex
|
53
|
+
self.mail_exception(ex, params)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'hoptoad_notifier'
|
5
|
+
|
6
|
+
class ErrorMailer
|
7
|
+
end
|
8
|
+
|
9
|
+
HoptoadNotifier.configure do |config|
|
10
|
+
config.api_key = App.config.hoptoad_key
|
11
|
+
end
|
12
|
+
|
13
|
+
module ErrorMailer::Hoptoad
|
14
|
+
def defer
|
15
|
+
Thread.new{ yield }
|
16
|
+
rescue Object => ex
|
17
|
+
App.logger.error { "defer error '#{ex.message}', #{ex.backtrace.inspect}" }
|
18
|
+
end
|
19
|
+
|
20
|
+
def app_params(params = nil)
|
21
|
+
par = {:app_name => App.name, :rev => App.revision}
|
22
|
+
par.merge!(params) if params.is_a?(Hash)
|
23
|
+
{ :parameters => par, :project_root => App.root }
|
24
|
+
end
|
25
|
+
|
26
|
+
def message(msg, params = nil)
|
27
|
+
super
|
28
|
+
|
29
|
+
defer do
|
30
|
+
HoptoadNotifier.notify(app_params(params).merge(:error_message => msg))
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def exception(e, params = nil)
|
35
|
+
super
|
36
|
+
|
37
|
+
defer do
|
38
|
+
HoptoadNotifier.notify(e, app_params(params))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class ErrorMailer
|
44
|
+
class << self
|
45
|
+
include ErrorMailer::Hoptoad
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
rescue LoadError
|
50
|
+
App.logger.error { "Not found gem hoptoad_hotifier, add it to Gemfile" }
|
51
|
+
end
|
data/lib/ruby-app/version.rb
CHANGED
data/ruby-app.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Makarchev Konstantin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - '>='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - '>='
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
83
|
description: 'Ruby micro framework for easy create ruby applications (daemons, EventMachine-apps,
|
98
84
|
db-apps, cli...). Features: bundler, environments, activesupport, rails dirs tree.
|
99
85
|
Fast loading and low memory using.'
|
@@ -123,6 +109,7 @@ files:
|
|
123
109
|
- generator/project/config/environments/production.rb
|
124
110
|
- generator/project/config/environments/test.rb
|
125
111
|
- generator/project/lib/application.rb.tt
|
112
|
+
- generator/project/spec/spec.opts
|
126
113
|
- generator/project/spec/spec1_spec.rb.tt
|
127
114
|
- generator/project/spec/spec_helper.rb
|
128
115
|
- lib/ruby-app/application_defaults.rb
|
@@ -131,6 +118,7 @@ files:
|
|
131
118
|
- lib/ruby-app/default_config.rb
|
132
119
|
- lib/ruby-app/environment.rb
|
133
120
|
- lib/ruby-app/error_mailer.rb
|
121
|
+
- lib/ruby-app/hoptoad.rb
|
134
122
|
- lib/ruby-app/local_logger.rb
|
135
123
|
- lib/ruby-app/tasks.rake
|
136
124
|
- lib/ruby-app/tasks/rspec.rake
|
@@ -177,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
165
|
version: '0'
|
178
166
|
requirements: []
|
179
167
|
rubyforge_project:
|
180
|
-
rubygems_version: 2.
|
168
|
+
rubygems_version: 2.1.4
|
181
169
|
signing_key:
|
182
170
|
specification_version: 4
|
183
171
|
summary: Ruby application micro framework
|