errbit_cloudfuji 0.1.0 → 0.1.1
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.
- data/Gemfile +2 -11
- data/Rakefile +1 -24
- data/app/{models/notice_observer.rb → observers/cloudfuji_notice_observer.rb} +23 -6
- data/config/initializers/cloudfuji.rb +1 -1
- data/errbit_cloudfuji.gemspec +1 -4
- data/lib/errbit/cloudfuji.rb +10 -18
- data/lib/errbit_cloudfuji/version.rb +1 -1
- data/lib/errbit_cloudfuji.rb +1 -0
- metadata +16 -44
- data/app/models/err_observer.rb +0 -22
- data/spec/spec_helper.rb +0 -22
data/Gemfile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
source :rubygems
|
2
2
|
|
3
|
+
gem 'rake'
|
4
|
+
|
3
5
|
gem 'bundler_local_development', :group => :development, :require => false
|
4
6
|
begin
|
5
7
|
require 'bundler_local_development'
|
@@ -13,14 +15,3 @@ gem 'cloudfuji', :git => 'git://github.com/cloudfuji/cloudfuji_client.git'
|
|
13
15
|
group :test, :development do
|
14
16
|
gem 'pg' # Default database for testing
|
15
17
|
end
|
16
|
-
|
17
|
-
group :test do
|
18
|
-
gem 'rspec'
|
19
|
-
gem 'combustion'
|
20
|
-
gem 'factory_girl'
|
21
|
-
unless ENV["CI"]
|
22
|
-
gem 'ruby-debug', :platform => :mri_18
|
23
|
-
gem (RUBY_VERSION == "1.9.2" ? 'ruby-debug19' : 'debugger'), :platform => :mri_19
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
data/Rakefile
CHANGED
@@ -1,27 +1,4 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
|
3
|
-
require 'bundler/setup'
|
4
|
-
rescue LoadError
|
5
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
-
end
|
7
|
-
Bundler.require :default, :development
|
8
|
-
|
9
|
-
task :environment do
|
10
|
-
Combustion.initialize!
|
11
|
-
end
|
12
|
-
Combustion::Application.load_tasks
|
13
|
-
|
14
|
-
class Combustion::Application
|
15
|
-
# Add migrations from all engines
|
16
|
-
Railties.engines.each do |engine|
|
17
|
-
config.paths['db/migrate'] += engine.paths['db/migrate'].existent
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
desc 'Default: run spec tests.'
|
22
|
-
task :default => :spec
|
23
|
-
|
24
|
-
# Let Combustion handle database preparation
|
25
|
-
Rake::Task["spec"].prerequisites.clear
|
2
|
+
require 'rake'
|
26
3
|
|
27
4
|
Bundler::GemHelper.install_tasks
|
@@ -1,27 +1,41 @@
|
|
1
|
-
class
|
1
|
+
class CloudfujiNoticeObserver < Mongoid::Observer
|
2
|
+
observe :notice
|
3
|
+
|
2
4
|
def after_create(notice)
|
3
5
|
if ::Cloudfuji::Platform.on_cloudfuji?
|
4
6
|
@notice = notice
|
5
7
|
@err = notice.err
|
6
8
|
@app = notice.problem.app
|
7
9
|
|
10
|
+
err_url = Rails.application.routes.url_helpers.app_err_url(@app, @err, :host => ENV['CLOUDFUJI_DOMAIN'])
|
11
|
+
|
8
12
|
human_message = notice_title(notice.err.problem)
|
9
|
-
human_message += " see more at #{
|
13
|
+
human_message += " - see more at #{err_url}"
|
10
14
|
event = {
|
11
|
-
:category => :
|
12
|
-
:name => :
|
15
|
+
:category => :error,
|
16
|
+
:name => :caught,
|
13
17
|
:data => {
|
14
|
-
:human
|
18
|
+
:human => human_message,
|
19
|
+
:error_ido_id => @err.ido_id,
|
20
|
+
:app_name => @app.name,
|
15
21
|
:environment_name => @notice.environment_name,
|
16
22
|
:occurrences => @notice.problem.notices_count,
|
17
23
|
:message => @notice.message,
|
18
24
|
:app_backtrace => @notice.app_backtrace,
|
19
25
|
:request => @notice.request,
|
20
26
|
:source => "Errbit",
|
21
|
-
:url =>
|
27
|
+
:url => err_url
|
22
28
|
}
|
23
29
|
}
|
24
30
|
|
31
|
+
if @notice.respond_to?(:user_attributes) && @notice.user_attributes.present?
|
32
|
+
event[:data].merge! :user_attributes => {
|
33
|
+
:ido_id => @notice.user_attributes[:ido_id],
|
34
|
+
:email => @notice.user_attributes[:email]}
|
35
|
+
end
|
36
|
+
|
37
|
+
puts "Publishing Cloudfuji Event: #{event.inspect}"
|
38
|
+
|
25
39
|
::Cloudfuji::Event.publish(event)
|
26
40
|
|
27
41
|
puts "Notifying: #{@app.watchers.inspect}"
|
@@ -32,7 +46,10 @@ class NoticeObserver < Mongoid::Observer
|
|
32
46
|
end
|
33
47
|
end
|
34
48
|
|
49
|
+
private
|
50
|
+
|
35
51
|
def notice_title(notice)
|
36
52
|
"[#{@app.name}][#{@notice.environment_name}] #{@notice.message}"
|
37
53
|
end
|
38
54
|
end
|
55
|
+
|
@@ -2,7 +2,7 @@ require 'errbit/cloudfuji'
|
|
2
2
|
|
3
3
|
Errbit::Application.configure do
|
4
4
|
# Register observers to fire Cloudfuji events
|
5
|
-
config.mongoid.observers = :
|
5
|
+
config.mongoid.observers = :cloudfuji_notice_observer
|
6
6
|
|
7
7
|
# Set default host for ActionMailer
|
8
8
|
default_host = ENV['ERRBIT_HOST'] || ENV['BUSHIDO_DOMAIN']
|
data/errbit_cloudfuji.gemspec
CHANGED
@@ -12,11 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.files = `git ls-files`.split("\n")
|
13
13
|
s.version = Errbit::Cloudfuji::VERSION
|
14
14
|
|
15
|
-
s.add_development_dependency 'rspec-rails', '~> 2.6'
|
16
|
-
s.add_development_dependency 'capybara'
|
17
|
-
s.add_development_dependency 'combustion'
|
18
|
-
|
19
15
|
s.add_dependency 'cloudfuji', '>= 0.0.42'
|
20
16
|
s.add_dependency 'devise_cloudfuji_authenticatable'
|
17
|
+
s.add_dependency 'uuid'
|
21
18
|
|
22
19
|
end
|
data/lib/errbit/cloudfuji.rb
CHANGED
@@ -4,18 +4,17 @@ module Errbit
|
|
4
4
|
def enable_cloudfuji!
|
5
5
|
load_hooks!
|
6
6
|
extend_user!
|
7
|
-
|
7
|
+
extend_err!
|
8
8
|
disable_devise_for_cloudfuji_controllers!
|
9
9
|
end
|
10
10
|
|
11
11
|
def extend_user!
|
12
12
|
puts "Extending the user model"
|
13
|
-
User.
|
13
|
+
User.class_eval do
|
14
|
+
field :ido_id
|
14
15
|
validates_presence_of :ido_id
|
15
16
|
validates_uniqueness_of :ido_id
|
16
|
-
end
|
17
17
|
|
18
|
-
User.class_eval do
|
19
18
|
def cloudfuji_extra_attributes(extra_attributes)
|
20
19
|
self.name = "#{extra_attributes['first_name'].to_s} #{extra_attributes['last_name'].to_s}"
|
21
20
|
self.email = extra_attributes["email"]
|
@@ -24,20 +23,13 @@ module Errbit
|
|
24
23
|
end
|
25
24
|
end
|
26
25
|
|
27
|
-
def
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
:data => {
|
35
|
-
:human => human_message,
|
36
|
-
:source => "Errbit",
|
37
|
-
:url => "#{ENV['PUBLIC_URL']}/#tickets/#{self.to_param}"
|
38
|
-
}
|
39
|
-
})
|
40
|
-
end
|
26
|
+
def extend_err!
|
27
|
+
Err.class_eval do
|
28
|
+
field :ido_id
|
29
|
+
validates_presence_of :ido_id
|
30
|
+
validates_uniqueness_of :ido_id
|
31
|
+
|
32
|
+
before_validation Proc.new { |e| e.ido_id ||= UUID.new.generate }
|
41
33
|
end
|
42
34
|
end
|
43
35
|
|
data/lib/errbit_cloudfuji.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: errbit_cloudfuji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,64 +10,32 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-05-
|
13
|
+
date: 2012-05-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '2.6'
|
23
|
-
type: :development
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: '2.6'
|
31
|
-
- !ruby/object:Gem::Dependency
|
32
|
-
name: capybara
|
16
|
+
name: cloudfuji
|
33
17
|
requirement: !ruby/object:Gem::Requirement
|
34
18
|
none: false
|
35
19
|
requirements:
|
36
20
|
- - ! '>='
|
37
21
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
39
|
-
type: :
|
22
|
+
version: 0.0.42
|
23
|
+
type: :runtime
|
40
24
|
prerelease: false
|
41
25
|
version_requirements: !ruby/object:Gem::Requirement
|
42
26
|
none: false
|
43
27
|
requirements:
|
44
28
|
- - ! '>='
|
45
29
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
30
|
+
version: 0.0.42
|
47
31
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
32
|
+
name: devise_cloudfuji_authenticatable
|
49
33
|
requirement: !ruby/object:Gem::Requirement
|
50
34
|
none: false
|
51
35
|
requirements:
|
52
36
|
- - ! '>='
|
53
37
|
- !ruby/object:Gem::Version
|
54
38
|
version: '0'
|
55
|
-
type: :development
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
name: cloudfuji
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
|
-
requirements:
|
68
|
-
- - ! '>='
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 0.0.42
|
71
39
|
type: :runtime
|
72
40
|
prerelease: false
|
73
41
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -75,9 +43,9 @@ dependencies:
|
|
75
43
|
requirements:
|
76
44
|
- - ! '>='
|
77
45
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0
|
46
|
+
version: '0'
|
79
47
|
- !ruby/object:Gem::Dependency
|
80
|
-
name:
|
48
|
+
name: uuid
|
81
49
|
requirement: !ruby/object:Gem::Requirement
|
82
50
|
none: false
|
83
51
|
requirements:
|
@@ -104,8 +72,7 @@ files:
|
|
104
72
|
- MIT-LICENSE
|
105
73
|
- README
|
106
74
|
- Rakefile
|
107
|
-
- app/
|
108
|
-
- app/models/notice_observer.rb
|
75
|
+
- app/observers/cloudfuji_notice_observer.rb
|
109
76
|
- app/views/users/_fields.html.haml
|
110
77
|
- app/views/users/index.html.haml
|
111
78
|
- config.ru
|
@@ -121,7 +88,6 @@ files:
|
|
121
88
|
- lib/errbit_cloudfuji/engine.rb
|
122
89
|
- lib/errbit_cloudfuji/version.rb
|
123
90
|
- lib/tasks/cloudfuji.rake
|
124
|
-
- spec/spec_helper.rb
|
125
91
|
homepage: http://cloudfuji.com
|
126
92
|
licenses: []
|
127
93
|
post_install_message:
|
@@ -134,12 +100,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
100
|
- - ! '>='
|
135
101
|
- !ruby/object:Gem::Version
|
136
102
|
version: '0'
|
103
|
+
segments:
|
104
|
+
- 0
|
105
|
+
hash: -3638422326911840529
|
137
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
107
|
none: false
|
139
108
|
requirements:
|
140
109
|
- - ! '>='
|
141
110
|
- !ruby/object:Gem::Version
|
142
111
|
version: '0'
|
112
|
+
segments:
|
113
|
+
- 0
|
114
|
+
hash: -3638422326911840529
|
143
115
|
requirements: []
|
144
116
|
rubyforge_project:
|
145
117
|
rubygems_version: 1.8.24
|
data/app/models/err_observer.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
class ErrObserver < Mongoid::Observer
|
2
|
-
def after_create(err)
|
3
|
-
if ::Cloudfuji::Platform.on_cloudfuji?
|
4
|
-
human_message = issue_title(err.problem)
|
5
|
-
human_message += " see more at #{Rails.application.routes.url_helpers.app_err_url(err.problem.app, err, :host => ENV['CLOUDFUJI_DOMAIN'])}"
|
6
|
-
event = {
|
7
|
-
:category => :app,
|
8
|
-
:name => :errored,
|
9
|
-
:data => {
|
10
|
-
:human => human_message,
|
11
|
-
:source => "Errbit",
|
12
|
-
:url => Rails.application.routes.url_helpers.app_err_url(err.problem.app, err, :host => ENV['CLOUDFUJI_DOMAIN'])
|
13
|
-
}
|
14
|
-
}
|
15
|
-
::Cloudfuji::Event.publish(event)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def issue_title(problem)
|
20
|
-
"[#{ problem.environment }][#{ problem.where }] #{problem.message.to_s.truncate(100)}"
|
21
|
-
end
|
22
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
require 'rails/all'
|
4
|
-
|
5
|
-
Bundler.require :default, :development
|
6
|
-
|
7
|
-
require 'rspec/rails'
|
8
|
-
require 'factory_girl'
|
9
|
-
require 'ffaker'
|
10
|
-
|
11
|
-
# Load factories from spec/factories
|
12
|
-
Dir[File.expand_path("../factories/*.rb", __FILE__)].each {|factory| require factory }
|
13
|
-
|
14
|
-
Combustion.initialize!
|
15
|
-
|
16
|
-
RSpec.configure do |config|
|
17
|
-
config.use_transactional_fixtures = true
|
18
|
-
end
|
19
|
-
|
20
|
-
# Cloudfuji::Platform.on_cloudfuji? is false,
|
21
|
-
# so we need to enable it manually
|
22
|
-
Errbit::Cloudfuji.enable_cloudfuji!
|