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 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
- begin
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 NoticeObserver < Mongoid::Observer
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 #{Rails.application.routes.url_helpers.app_err_url(@app, @notice.problem, :host => ENV['CLOUDFUJI_DOMAIN'])}"
13
+ human_message += " - see more at #{err_url}"
10
14
  event = {
11
- :category => :app,
12
- :name => :errored,
15
+ :category => :error,
16
+ :name => :caught,
13
17
  :data => {
14
- :human => human_message,
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 => Rails.application.routes.url_helpers.app_err_url(@app, @err, :host => ENV['CLOUDFUJI_DOMAIN'])
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 = :err_observer, :notice_observer
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']
@@ -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
@@ -4,18 +4,17 @@ module Errbit
4
4
  def enable_cloudfuji!
5
5
  load_hooks!
6
6
  extend_user!
7
- extend_notice!
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.instance_eval do
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 extend_notice!
28
- Notice.class_eval do
29
- def publish_cloudfuji_event
30
- human_message = "App at #{server_environment['hostname']} error"
31
- ::Cloudfuji::Event.publish({
32
- :category => :app,
33
- :name => :error,
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
 
@@ -1,5 +1,5 @@
1
1
  module Errbit
2
2
  module Cloudfuji
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
@@ -1,6 +1,7 @@
1
1
  # Gem Dependencies
2
2
  require 'cloudfuji'
3
3
  require 'devise_cloudfuji_authenticatable'
4
+ require 'uuid'
4
5
 
5
6
  # Rails Engine
6
7
  require 'errbit_cloudfuji/engine'
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.0
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-21 00:00:00.000000000 Z
13
+ date: 2012-05-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rspec-rails
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: '0'
39
- type: :development
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: '0'
30
+ version: 0.0.42
47
31
  - !ruby/object:Gem::Dependency
48
- name: combustion
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.0.42
46
+ version: '0'
79
47
  - !ruby/object:Gem::Dependency
80
- name: devise_cloudfuji_authenticatable
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/models/err_observer.rb
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
@@ -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!