errplane 0.0.2 → 0.0.3

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.
@@ -19,8 +19,6 @@ require "errplane/rack"
19
19
  require "errplane/railtie" #if defined?(Rails)
20
20
 
21
21
  module Errplane
22
- API_HOST = "api.errplane.com"
23
-
24
22
  class << self
25
23
  attr_writer :configuration
26
24
  attr_accessor :transmitter
@@ -39,7 +37,7 @@ module Errplane
39
37
  end
40
38
 
41
39
  def ignorable_exception?(exception)
42
- return configuration.ignored_exceptions.include?(exception.class.to_s)
40
+ configuration.ignore_current_environment? || configuration.ignored_exceptions.include?(exception.class.to_s)
43
41
  end
44
42
 
45
43
  private
@@ -1,19 +1,29 @@
1
1
  module Errplane
2
2
  class Configuration
3
3
  attr_accessor :api_key
4
+ attr_accessor :api_host
4
5
  attr_accessor :application_id
5
6
 
6
7
  attr_accessor :logger
7
- attr_accessor :environment_name
8
- attr_accessor :project_root
8
+ attr_accessor :rails_environment
9
+ attr_accessor :rails_root
9
10
  attr_accessor :framework
10
11
  attr_accessor :ignored_exceptions
12
+ attr_accessor :ignored_environments
11
13
 
14
+ DEFAULT_API_HOST = "api.errplane.com"
12
15
  DEFAULT_IGNORED_EXCEPTIONS = %w{ActiveRecord::RecordNotFound
13
16
  ActionController::RoutingError}
17
+ DEFAULT_IGNORED_ENVIRONMENTS = %w{development test cucumber selenium}
14
18
 
15
19
  def initialize
20
+ @api_host = DEFAULT_API_HOST
16
21
  @ignored_exceptions = DEFAULT_IGNORED_EXCEPTIONS.dup
22
+ @ignored_environments = DEFAULT_IGNORED_ENVIRONMENTS.dup
23
+ end
24
+
25
+ def ignore_current_environment?
26
+ return self.ignored_environments.include?(self.rails_environment)
17
27
  end
18
28
  end
19
29
  end
@@ -12,10 +12,10 @@ module Errplane
12
12
 
13
13
  config.after_initialize do
14
14
  Errplane.configure(true) do |config|
15
- config.logger ||= ::Rails.logger
16
- config.environment_name ||= ::Rails.env
17
- config.project_root ||= ::Rails.root
18
- config.framework = "Rails: #{::Rails::VERSION::STRING}"
15
+ config.logger ||= ::Rails.logger
16
+ config.rails_environment ||= ::Rails.env
17
+ config.rails_root ||= ::Rails.root
18
+ config.framework = "Rails #{::Rails::VERSION::STRING}"
19
19
  end
20
20
 
21
21
  if defined?(::ActionDispatch::DebugExceptions)
@@ -7,9 +7,9 @@ module Errplane
7
7
  http = initialize_http_connection
8
8
  data = black_box.to_json
9
9
  response = begin
10
- url = "/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/#{Errplane.configuration.environment_name}?api_key=#{Errplane.configuration.api_key}"
10
+ url = "/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/#{Errplane.configuration.rails_environment}?api_key=#{Errplane.configuration.api_key}"
11
11
  ::Rails.logger.info(url)
12
- http.post("/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/#{Errplane.configuration.environment_name}?api_key=#{Errplane.configuration.api_key}", data)
12
+ http.post("/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/#{Errplane.configuration.rails_environment}?api_key=#{Errplane.configuration.api_key}", data)
13
13
  rescue Exception => e
14
14
  e
15
15
  end
@@ -27,7 +27,7 @@ module Errplane
27
27
 
28
28
  private
29
29
  def initialize_http_connection
30
- connection = Net::HTTP.new(API_HOST, "80")
30
+ connection = Net::HTTP.new(Errplane.configuration.api_host, "80")
31
31
  end
32
32
  end
33
33
  end
@@ -1,3 +1,3 @@
1
1
  module Errplane
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,13 +1,19 @@
1
1
  require File.dirname(__FILE__) + "/integration_helper"
2
2
 
3
3
  feature "exception handling" do
4
+ before do
5
+ Errplane.configure do |config|
6
+ config.ignored_environments = %w{development}
7
+ end
8
+ end
9
+
4
10
  describe "in an action that raises an exception" do
5
11
  scenario "should make an HTTP call to the API" do
6
- stub_request(:post, "#{Errplane::API_HOST}/exceptions").to_return(status: 200)
12
+ stub_request(:post, "#{Errplane.configuration.api_host}/exceptions").to_return(status: 200)
7
13
 
8
14
  lambda { visit new_widget_path }.should raise_error
9
15
 
10
- assert_requested :post, "#{Errplane::API_HOST}/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/test?api_key=f123-e456-d789c012"
16
+ assert_requested :post, "#{Errplane.configuration.api_host}/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/test?api_key=f123-e456-d789c012"
11
17
  end
12
18
  end
13
19
 
@@ -15,7 +21,7 @@ feature "exception handling" do
15
21
  scenario "should not make an HTTP call to the API" do
16
22
  lambda { visit widgets_path }.should_not raise_error
17
23
 
18
- assert_not_requested :post, "#{Errplane::API_HOST}/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/test?api_key=f123-e456-d789c012"
24
+ assert_not_requested :post, "#{Errplane.configuration.api_host}/api/v1/applications/#{Errplane.configuration.application_id}/exceptions/test?api_key=f123-e456-d789c012"
19
25
  end
20
26
  end
21
27
  end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Errplane do
4
+ describe ".ignorable_exception?" do
5
+ it "should be true for exception types specified in the configuration" do
6
+ class DummyException < Exception; end
7
+ exception = DummyException.new
8
+
9
+ Errplane.configure do |config|
10
+ config.ignored_exceptions << 'DummyException'
11
+ end
12
+
13
+ Errplane.ignorable_exception?(exception).should be_true
14
+ end
15
+
16
+ it "should be true for exception types specified in the configuration" do
17
+ exception = ActionController::RoutingError.new("foo")
18
+ Errplane.ignorable_exception?(exception).should be_true
19
+ end
20
+
21
+ it "should be false for valid exceptions" do
22
+ exception = ZeroDivisionError.new
23
+ Errplane.ignorable_exception?(exception).should be_false
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: errplane
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -49,6 +49,7 @@ files:
49
49
  - spec/internal/public/favicon.ico
50
50
  - spec/spec_helper.rb
51
51
  - spec/unit/black_box_spec.rb
52
+ - spec/unit/errplane_spec.rb
52
53
  homepage: http://errplane.com
53
54
  licenses: []
54
55
  post_install_message:
@@ -88,3 +89,4 @@ test_files:
88
89
  - spec/internal/public/favicon.ico
89
90
  - spec/spec_helper.rb
90
91
  - spec/unit/black_box_spec.rb
92
+ - spec/unit/errplane_spec.rb