opbeat 2.0.0 → 3.0.0

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.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -3
  3. data/.travis.yml +19 -28
  4. data/.yardopts +3 -0
  5. data/Gemfile +4 -2
  6. data/HISTORY.md +3 -0
  7. data/LICENSE +7 -196
  8. data/README.md +96 -177
  9. data/Rakefile +19 -13
  10. data/gemfiles/Gemfile.base +28 -0
  11. data/gemfiles/Gemfile.rails-3.2.x +3 -0
  12. data/gemfiles/Gemfile.rails-4.0.x +3 -0
  13. data/gemfiles/Gemfile.rails-4.1.x +3 -0
  14. data/gemfiles/Gemfile.rails-4.2.x +3 -0
  15. data/lib/opbeat.rb +113 -93
  16. data/lib/opbeat/capistrano.rb +3 -4
  17. data/lib/opbeat/client.rb +243 -82
  18. data/lib/opbeat/configuration.rb +51 -64
  19. data/lib/opbeat/data_builders.rb +16 -0
  20. data/lib/opbeat/data_builders/error.rb +27 -0
  21. data/lib/opbeat/data_builders/transactions.rb +85 -0
  22. data/lib/opbeat/error.rb +1 -2
  23. data/lib/opbeat/error_message.rb +71 -0
  24. data/lib/opbeat/error_message/exception.rb +12 -0
  25. data/lib/opbeat/error_message/http.rb +62 -0
  26. data/lib/opbeat/error_message/stacktrace.rb +75 -0
  27. data/lib/opbeat/error_message/user.rb +23 -0
  28. data/lib/opbeat/filter.rb +53 -43
  29. data/lib/opbeat/http_client.rb +141 -0
  30. data/lib/opbeat/injections.rb +83 -0
  31. data/lib/opbeat/injections/json.rb +19 -0
  32. data/lib/opbeat/injections/net_http.rb +43 -0
  33. data/lib/opbeat/injections/redis.rb +23 -0
  34. data/lib/opbeat/injections/sequel.rb +32 -0
  35. data/lib/opbeat/injections/sinatra.rb +56 -0
  36. data/lib/opbeat/{capistrano → integration}/capistrano2.rb +6 -6
  37. data/lib/opbeat/{capistrano → integration}/capistrano3.rb +3 -3
  38. data/lib/opbeat/{integrations → integration}/delayed_job.rb +6 -11
  39. data/lib/opbeat/integration/rails/inject_exceptions_catcher.rb +23 -0
  40. data/lib/opbeat/integration/railtie.rb +53 -0
  41. data/lib/opbeat/integration/resque.rb +16 -0
  42. data/lib/opbeat/integration/sidekiq.rb +38 -0
  43. data/lib/opbeat/line_cache.rb +21 -0
  44. data/lib/opbeat/logging.rb +37 -0
  45. data/lib/opbeat/middleware.rb +59 -0
  46. data/lib/opbeat/normalizers.rb +65 -0
  47. data/lib/opbeat/normalizers/action_controller.rb +21 -0
  48. data/lib/opbeat/normalizers/action_view.rb +71 -0
  49. data/lib/opbeat/normalizers/active_record.rb +41 -0
  50. data/lib/opbeat/sql_summarizer.rb +27 -0
  51. data/lib/opbeat/subscriber.rb +80 -0
  52. data/lib/opbeat/tasks.rb +20 -18
  53. data/lib/opbeat/trace.rb +47 -0
  54. data/lib/opbeat/trace_helpers.rb +29 -0
  55. data/lib/opbeat/transaction.rb +99 -0
  56. data/lib/opbeat/util.rb +26 -0
  57. data/lib/opbeat/util/constantize.rb +54 -0
  58. data/lib/opbeat/util/inspector.rb +75 -0
  59. data/lib/opbeat/version.rb +1 -1
  60. data/lib/opbeat/worker.rb +55 -0
  61. data/opbeat.gemspec +6 -14
  62. data/spec/opbeat/client_spec.rb +216 -29
  63. data/spec/opbeat/configuration_spec.rb +34 -38
  64. data/spec/opbeat/data_builders/error_spec.rb +43 -0
  65. data/spec/opbeat/data_builders/transactions_spec.rb +51 -0
  66. data/spec/opbeat/error_message/exception_spec.rb +22 -0
  67. data/spec/opbeat/error_message/http_spec.rb +65 -0
  68. data/spec/opbeat/error_message/stacktrace_spec.rb +56 -0
  69. data/spec/opbeat/error_message/user_spec.rb +28 -0
  70. data/spec/opbeat/error_message_spec.rb +78 -0
  71. data/spec/opbeat/filter_spec.rb +21 -99
  72. data/spec/opbeat/http_client_spec.rb +64 -0
  73. data/spec/opbeat/injections/net_http_spec.rb +37 -0
  74. data/spec/opbeat/injections/sequel_spec.rb +33 -0
  75. data/spec/opbeat/injections/sinatra_spec.rb +13 -0
  76. data/spec/opbeat/injections_spec.rb +49 -0
  77. data/spec/opbeat/integration/delayed_job_spec.rb +35 -0
  78. data/spec/opbeat/integration/json_spec.rb +41 -0
  79. data/spec/opbeat/integration/rails_spec.rb +88 -0
  80. data/spec/opbeat/integration/redis_spec.rb +20 -0
  81. data/spec/opbeat/integration/resque_spec.rb +42 -0
  82. data/spec/opbeat/integration/sidekiq_spec.rb +40 -0
  83. data/spec/opbeat/integration/sinatra_spec.rb +66 -0
  84. data/spec/opbeat/line_cache_spec.rb +38 -0
  85. data/spec/opbeat/logging_spec.rb +47 -0
  86. data/spec/opbeat/middleware_spec.rb +32 -0
  87. data/spec/opbeat/normalizers/action_controller_spec.rb +32 -0
  88. data/spec/opbeat/normalizers/action_view_spec.rb +77 -0
  89. data/spec/opbeat/normalizers/active_record_spec.rb +70 -0
  90. data/spec/opbeat/normalizers_spec.rb +16 -0
  91. data/spec/opbeat/sql_summarizer_spec.rb +6 -0
  92. data/spec/opbeat/subscriber_spec.rb +83 -0
  93. data/spec/opbeat/trace_spec.rb +43 -0
  94. data/spec/opbeat/transaction_spec.rb +98 -0
  95. data/spec/opbeat/util/inspector_spec.rb +40 -0
  96. data/spec/opbeat/util_spec.rb +20 -0
  97. data/spec/opbeat/worker_spec.rb +54 -0
  98. data/spec/opbeat_spec.rb +49 -0
  99. data/spec/spec_helper.rb +79 -6
  100. metadata +89 -149
  101. data/Makefile +0 -3
  102. data/gemfiles/rails30.gemfile +0 -9
  103. data/gemfiles/rails31.gemfile +0 -9
  104. data/gemfiles/rails32.gemfile +0 -9
  105. data/gemfiles/rails40.gemfile +0 -9
  106. data/gemfiles/rails41.gemfile +0 -9
  107. data/gemfiles/rails42.gemfile +0 -9
  108. data/gemfiles/ruby192_rails31.gemfile +0 -10
  109. data/gemfiles/ruby192_rails32.gemfile +0 -10
  110. data/gemfiles/sidekiq31.gemfile +0 -11
  111. data/lib/opbeat/better_attr_accessor.rb +0 -44
  112. data/lib/opbeat/event.rb +0 -223
  113. data/lib/opbeat/integrations/resque.rb +0 -22
  114. data/lib/opbeat/integrations/sidekiq.rb +0 -32
  115. data/lib/opbeat/interfaces.rb +0 -35
  116. data/lib/opbeat/interfaces/exception.rb +0 -16
  117. data/lib/opbeat/interfaces/http.rb +0 -57
  118. data/lib/opbeat/interfaces/message.rb +0 -19
  119. data/lib/opbeat/interfaces/stack_trace.rb +0 -50
  120. data/lib/opbeat/linecache.rb +0 -25
  121. data/lib/opbeat/logger.rb +0 -21
  122. data/lib/opbeat/rack.rb +0 -46
  123. data/lib/opbeat/rails/middleware/debug_exceptions_catcher.rb +0 -22
  124. data/lib/opbeat/railtie.rb +0 -26
  125. data/spec/opbeat/better_attr_accessor_spec.rb +0 -99
  126. data/spec/opbeat/event_spec.rb +0 -138
  127. data/spec/opbeat/integrations/delayed_job_spec.rb +0 -38
  128. data/spec/opbeat/logger_spec.rb +0 -55
  129. data/spec/opbeat/opbeat_spec.rb +0 -64
  130. data/spec/opbeat/rack_spec.rb +0 -117
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ describe Trace, mock_time: true do
5
+
6
+ describe "#initialize" do
7
+ it "has a timestamp" do
8
+ trace = Trace.new nil, 'test'
9
+ expect(trace.timestamp).to eq Time.now.utc.to_i
10
+ end
11
+ end
12
+
13
+ describe "#start" do
14
+ it "has a relative and absolute start time with a transaction" do
15
+ transaction = Transaction.new(nil, 'Test')
16
+ travel 400
17
+ trace = transaction.trace 'test-1' do
18
+ travel 100
19
+ transaction.trace 'test-2' do |t|
20
+ travel 100
21
+ t
22
+ end
23
+ end
24
+
25
+ expect(trace.signature).to eq 'test-2'
26
+ expect(trace.relative_start).to eq 100_000_000
27
+ end
28
+ end
29
+
30
+ describe "#done" do
31
+ it "sets duration" do
32
+ transaction = Transaction.new nil, 'Test'
33
+ trace = Trace.new(transaction, 'test').start transaction.start_time
34
+ travel 100
35
+ trace.done
36
+
37
+ expect(trace.duration).to eq 100_000_000
38
+ expect(trace).to be_done
39
+ end
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+ require 'opbeat'
3
+
4
+ module Opbeat
5
+ describe Transaction, mock_time: true do
6
+
7
+ describe "#initialize" do
8
+ it "has a root trace, timestamp and start time" do
9
+ transaction = Transaction.new nil, 'Test'
10
+ expect(transaction.traces.length).to be 1
11
+ expect(transaction.timestamp).to eq 694224000
12
+ expect(transaction.start_time).to eq 694224000000000000
13
+ end
14
+ end
15
+
16
+ describe "#release" do
17
+ it "sets clients current transaction to nil" do
18
+ client = Struct.new(:current_transaction).new(1)
19
+ transaction = Transaction.new client, 'Test'
20
+ transaction.release
21
+ expect(client.current_transaction).to be_nil
22
+ end
23
+ end
24
+
25
+ describe "#done" do
26
+ it "it sets result, durations and ends root trace" do
27
+ transaction = Transaction.new nil, 'Test'
28
+
29
+ travel 100
30
+ transaction.done(200)
31
+
32
+ expect(transaction.result).to be 200
33
+ expect(transaction.traces.first).to be_done
34
+ expect(transaction.duration).to eq 100_000_000
35
+ end
36
+ end
37
+
38
+ describe "#submit" do
39
+ it "ends transaction and submits it to the client" do
40
+ client = double('client', submit_transaction: true, :current_transaction= => true)
41
+ transaction = Transaction.new client, 'Test'
42
+
43
+ travel 100
44
+ transaction.submit 200
45
+
46
+ expect(transaction.result).to be 200
47
+ expect(transaction).to be_done
48
+ expect(client).to have_received(:current_transaction=)
49
+ expect(client).to have_received(:submit_transaction).with transaction
50
+ end
51
+ end
52
+
53
+ describe "#running_traces" do
54
+ it "returns running traces" do
55
+ transaction = Transaction.new nil, 'Test'
56
+
57
+ transaction.trace 'test' do
58
+ travel 100
59
+ end
60
+
61
+ running_trace = transaction.trace 'test2'
62
+ travel 100
63
+
64
+ expect(transaction.running_traces).to eq [transaction.root_trace, running_trace]
65
+ end
66
+ end
67
+
68
+ describe "#trace" do
69
+ subject do
70
+ transaction = Transaction.new nil, 'Test'
71
+
72
+ travel 100
73
+
74
+ transaction.trace 'test' do
75
+ travel 100
76
+ end
77
+
78
+ transaction.done
79
+ end
80
+ it "creates a new trace" do
81
+ expect(subject.traces.length).to be 2
82
+ end
83
+ it "has root as a parent" do
84
+ expect(subject.traces.last.parents).to eq [subject.traces.first]
85
+ end
86
+ it "has a duration" do
87
+ expect(subject.traces.last.duration).to eq 100_000_000
88
+ end
89
+ it "has a relative start" do
90
+ expect(subject.traces.last.relative_start).to eq 100_000_000
91
+ end
92
+ it "has a total duration" do
93
+ expect(subject.duration).to eq 200_000_000
94
+ end
95
+ end
96
+
97
+ end
98
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ RSpec.describe Util::Inspector, start_without_worker: true, mock_time: true do
5
+
6
+ let(:transaction) do
7
+ Opbeat.transaction 'Test' do |transaction|
8
+ travel 10
9
+ Opbeat.trace('test 1', 'trace.test') do
10
+ travel 100
11
+ Opbeat.trace('test 2', 'trace.test') { travel 150 }
12
+ travel 50
13
+ end
14
+ travel 50
15
+ Opbeat.trace('test 3', 'trace.test') do
16
+ travel 100
17
+ end
18
+ travel 1
19
+
20
+ transaction
21
+ end
22
+ end
23
+ subject do
24
+ Util::Inspector.new.transaction(transaction, include_parents: true)
25
+ end
26
+
27
+ it "doesn't explode" do
28
+ expect { subject }.to_not raise_error
29
+ end
30
+
31
+ it "doesn't exceed it's length" do
32
+ expect(subject.split("\n").map(&:length).find { |l| l < 100 })
33
+ end
34
+
35
+ # preview
36
+ it "is beautiful" do
37
+ puts subject
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ RSpec.describe Util do
5
+
6
+ describe "#nearest_minute", mock_time: true do
7
+ it "normalizes to nearest minute" do
8
+ travel 125_000 # two minutes five secs
9
+ expect(Util.nearest_minute).to eq Time.utc(1992, 1, 1, 0, 2, 0)
10
+ end
11
+ end
12
+
13
+ describe "#ms", mock_time: true do
14
+ it "returns current ms since unix epoch" do
15
+ expect(Util.nanos).to eq 694224000000000000
16
+ end
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ RSpec.describe Worker do
5
+
6
+ before do
7
+ @queue = Queue.new
8
+ end
9
+
10
+ let :worker do
11
+ config = build_config
12
+ Worker.new config, @queue, HttpClient.new(config)
13
+ end
14
+
15
+ describe "#run" do
16
+ context "during a loop" do
17
+ before { allow(worker).to receive(:loop).and_yield }
18
+
19
+ subject { Thread.new { worker.run }.join 0.01 }
20
+
21
+ it "does nothing with an empty queue" do
22
+ subject
23
+ expect(WebMock).to_not have_requested(:any, /.*/)
24
+ end
25
+
26
+ it "pops the queue" do
27
+ @queue << Worker::PostRequest.new('/errors/', {id: 1}.to_json)
28
+ @queue << Worker::PostRequest.new('/errors/', {id: 2}.to_json)
29
+
30
+ subject
31
+
32
+ expect(WebMock).to have_requested(:post, %r{/errors/$}).with(body: {id: 1})
33
+ expect(WebMock).to have_requested(:post, %r{/errors/$}).with(body: {id: 2})
34
+ end
35
+ end
36
+
37
+ context "can be stopped by sending a message" do
38
+ it "loops until stopped" do
39
+ thread = Thread.new do
40
+ worker.run
41
+ end
42
+
43
+ @queue << Worker::StopMessage.new
44
+
45
+ thread.join
46
+
47
+ expect(thread).to_not be_alive
48
+ expect(@queue).to be_empty
49
+ end
50
+ end
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Opbeat do
4
+
5
+ it { should_not be_started }
6
+
7
+ describe "self.start!" do
8
+ it "delegates to client" do
9
+ conf = Opbeat::Configuration.new app_id: 'x', organization_id: 'y', secret_token: 'z'
10
+ expect(Opbeat::Client).to receive(:start!).with(conf) { true }
11
+ Opbeat.start! conf
12
+ end
13
+ end
14
+
15
+ it { should delegate :stop!, to: Opbeat }
16
+
17
+ describe "when Opbeat is started", start: true do
18
+ it { should be_started }
19
+
20
+ it { should delegate :transaction, to: Opbeat::Client.inst, args: ['Test', nil, nil] }
21
+ it { should delegate :trace, to: Opbeat::Client.inst, args: ['test', nil, {}] }
22
+ it { should delegate :report, to: Opbeat::Client.inst, args: [Exception.new, nil] }
23
+ it { should delegate :report_message, to: Opbeat::Client.inst, args: ["My message", nil] }
24
+ it { should delegate :release, to: Opbeat::Client.inst, args: [{}, {}] }
25
+ it { should delegate :capture, to: Opbeat::Client.inst }
26
+
27
+ describe "a block example", mock_time: true do
28
+ it "is done" do
29
+ transaction = Opbeat.transaction 'Test' do
30
+ travel 100
31
+ Opbeat.trace 'test1' do
32
+ travel 100
33
+ Opbeat.trace 'test1-1' do
34
+ travel 100
35
+ end
36
+ Opbeat.trace 'test1-2' do
37
+ travel 100
38
+ end
39
+ travel 100
40
+ end
41
+ end.done(true)
42
+
43
+ expect(transaction).to be_done
44
+ expect(transaction.duration).to eq 500_000_000
45
+ end
46
+ end
47
+ end
48
+
49
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,83 @@
1
- require 'simplecov'
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'bundler/setup'
4
+ Bundler.require :default
5
+ require 'timecop'
6
+ require 'webmock/rspec'
7
+
2
8
  SimpleCov.start
3
9
 
4
- def build_exception()
5
- begin
6
- 1 / 0
7
- rescue ZeroDivisionError => exception
8
- return exception
10
+ require 'opbeat'
11
+
12
+ module Opbeat
13
+ class Configuration
14
+ # Override defaults to enable http (caught by WebMock) in test env
15
+ defaults = DEFAULTS.dup.merge enabled_environments: %{test}
16
+ remove_const(:DEFAULTS)
17
+ const_set(:DEFAULTS, defaults.freeze)
9
18
  end
10
19
  end
20
+
21
+ RSpec.configure do |config|
22
+ config.before :each do
23
+ @request_stub = stub_request(:post, /intake\.opbeat\.com/)
24
+ end
25
+
26
+ config.around :each, mock_time: true do |example|
27
+ @date = Time.utc(1992, 1, 1)
28
+
29
+ def travel distance
30
+ Timecop.freeze(@date += distance / 1_000.0)
31
+ end
32
+
33
+ travel 0
34
+ example.run
35
+ Timecop.return
36
+ end
37
+
38
+ def build_config attrs = {}
39
+ Opbeat::Configuration.new({
40
+ app_id: 'x',
41
+ organization_id: 'y',
42
+ secret_token: 'z'
43
+ }.merge(attrs))
44
+ end
45
+
46
+ config.around :each, start: true do |example|
47
+ Opbeat.start! build_config
48
+ example.call
49
+ Opbeat::Client.inst.current_transaction = nil
50
+ Opbeat.stop!
51
+ end
52
+
53
+ config.around :each, start_without_worker: true do |example|
54
+ Opbeat.start! build_config(disable_worker: true)
55
+ example.call
56
+ Opbeat::Client.inst.current_transaction = nil
57
+ Opbeat.stop!
58
+ end
59
+ end
60
+
61
+ RSpec::Matchers.define :delegate do |method, opts|
62
+ to = opts[:to]
63
+ args = opts[:args]
64
+
65
+ match do |delegator|
66
+ unless to.respond_to?(method)
67
+ raise NoMethodError.new("no method :#{method} on #{to}")
68
+ end
69
+
70
+ if args
71
+ allow(to).to receive(method).with(*args) { true }
72
+ else
73
+ allow(to).to receive(method).with(no_args) { true }
74
+ end
75
+
76
+ delegator.send method, *args
77
+ end
78
+
79
+ description do
80
+ "delegate :#{method} to #{to}"
81
+ end
82
+ end
83
+
metadata CHANGED
@@ -1,135 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opbeat
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Thomas Watson Steen
8
- - Ron Cohen
9
- - Noah Kantrowitz
7
+ - Mikkel Malmberg
10
8
  autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2016-01-28 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
- name: faraday
14
+ name: activesupport
17
15
  requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 0.7.6
22
- - - "<"
23
- - !ruby/object:Gem::Version
24
- version: '0.10'
19
+ version: 3.0.0
25
20
  type: :runtime
26
21
  prerelease: false
27
22
  version_requirements: !ruby/object:Gem::Requirement
28
23
  requirements:
29
24
  - - ">="
30
25
  - !ruby/object:Gem::Version
31
- version: 0.7.6
32
- - - "<"
33
- - !ruby/object:Gem::Version
34
- version: '0.10'
35
- - !ruby/object:Gem::Dependency
36
- name: multi_json
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: '1.0'
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '1.0'
49
- - !ruby/object:Gem::Dependency
50
- name: bundler
51
- requirement: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '1.7'
56
- type: :development
57
- prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '1.7'
63
- - !ruby/object:Gem::Dependency
64
- name: rake
65
- requirement: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '10.0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '10.0'
77
- - !ruby/object:Gem::Dependency
78
- name: rspec
79
- requirement: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: '2.14'
84
- type: :development
85
- prerelease: false
86
- version_requirements: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '2.14'
91
- - !ruby/object:Gem::Dependency
92
- name: simplecov
93
- requirement: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
- type: :development
99
- prerelease: false
100
- version_requirements: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: '0'
105
- - !ruby/object:Gem::Dependency
106
- name: delayed_job
107
- requirement: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: '0'
112
- type: :development
113
- prerelease: false
114
- version_requirements: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- - !ruby/object:Gem::Dependency
120
- name: sidekiq
121
- requirement: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: 2.17.0
126
- type: :development
127
- prerelease: false
128
- version_requirements: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: 2.17.0
26
+ version: 3.0.0
133
27
  description:
134
28
  email: support@opbeat.com
135
29
  executables: []
@@ -141,59 +35,105 @@ files:
141
35
  - ".gitignore"
142
36
  - ".rspec"
143
37
  - ".travis.yml"
38
+ - ".yardopts"
144
39
  - Gemfile
40
+ - HISTORY.md
145
41
  - LICENSE
146
- - Makefile
147
42
  - README.md
148
43
  - Rakefile
149
- - gemfiles/rails30.gemfile
150
- - gemfiles/rails31.gemfile
151
- - gemfiles/rails32.gemfile
152
- - gemfiles/rails40.gemfile
153
- - gemfiles/rails41.gemfile
154
- - gemfiles/rails42.gemfile
155
- - gemfiles/ruby192_rails31.gemfile
156
- - gemfiles/ruby192_rails32.gemfile
157
- - gemfiles/sidekiq31.gemfile
44
+ - gemfiles/Gemfile.base
45
+ - gemfiles/Gemfile.rails-3.2.x
46
+ - gemfiles/Gemfile.rails-4.0.x
47
+ - gemfiles/Gemfile.rails-4.1.x
48
+ - gemfiles/Gemfile.rails-4.2.x
158
49
  - lib/opbeat.rb
159
- - lib/opbeat/better_attr_accessor.rb
160
50
  - lib/opbeat/capistrano.rb
161
- - lib/opbeat/capistrano/capistrano2.rb
162
- - lib/opbeat/capistrano/capistrano3.rb
163
51
  - lib/opbeat/client.rb
164
52
  - lib/opbeat/configuration.rb
53
+ - lib/opbeat/data_builders.rb
54
+ - lib/opbeat/data_builders/error.rb
55
+ - lib/opbeat/data_builders/transactions.rb
165
56
  - lib/opbeat/error.rb
166
- - lib/opbeat/event.rb
57
+ - lib/opbeat/error_message.rb
58
+ - lib/opbeat/error_message/exception.rb
59
+ - lib/opbeat/error_message/http.rb
60
+ - lib/opbeat/error_message/stacktrace.rb
61
+ - lib/opbeat/error_message/user.rb
167
62
  - lib/opbeat/filter.rb
168
- - lib/opbeat/integrations/delayed_job.rb
169
- - lib/opbeat/integrations/resque.rb
170
- - lib/opbeat/integrations/sidekiq.rb
171
- - lib/opbeat/interfaces.rb
172
- - lib/opbeat/interfaces/exception.rb
173
- - lib/opbeat/interfaces/http.rb
174
- - lib/opbeat/interfaces/message.rb
175
- - lib/opbeat/interfaces/stack_trace.rb
176
- - lib/opbeat/linecache.rb
177
- - lib/opbeat/logger.rb
178
- - lib/opbeat/rack.rb
179
- - lib/opbeat/rails/middleware/debug_exceptions_catcher.rb
180
- - lib/opbeat/railtie.rb
63
+ - lib/opbeat/http_client.rb
64
+ - lib/opbeat/injections.rb
65
+ - lib/opbeat/injections/json.rb
66
+ - lib/opbeat/injections/net_http.rb
67
+ - lib/opbeat/injections/redis.rb
68
+ - lib/opbeat/injections/sequel.rb
69
+ - lib/opbeat/injections/sinatra.rb
70
+ - lib/opbeat/integration/capistrano2.rb
71
+ - lib/opbeat/integration/capistrano3.rb
72
+ - lib/opbeat/integration/delayed_job.rb
73
+ - lib/opbeat/integration/rails/inject_exceptions_catcher.rb
74
+ - lib/opbeat/integration/railtie.rb
75
+ - lib/opbeat/integration/resque.rb
76
+ - lib/opbeat/integration/sidekiq.rb
77
+ - lib/opbeat/line_cache.rb
78
+ - lib/opbeat/logging.rb
79
+ - lib/opbeat/middleware.rb
80
+ - lib/opbeat/normalizers.rb
81
+ - lib/opbeat/normalizers/action_controller.rb
82
+ - lib/opbeat/normalizers/action_view.rb
83
+ - lib/opbeat/normalizers/active_record.rb
84
+ - lib/opbeat/sql_summarizer.rb
85
+ - lib/opbeat/subscriber.rb
181
86
  - lib/opbeat/tasks.rb
87
+ - lib/opbeat/trace.rb
88
+ - lib/opbeat/trace_helpers.rb
89
+ - lib/opbeat/transaction.rb
90
+ - lib/opbeat/util.rb
91
+ - lib/opbeat/util/constantize.rb
92
+ - lib/opbeat/util/inspector.rb
182
93
  - lib/opbeat/version.rb
94
+ - lib/opbeat/worker.rb
183
95
  - opbeat.gemspec
184
- - spec/opbeat/better_attr_accessor_spec.rb
185
96
  - spec/opbeat/client_spec.rb
186
97
  - spec/opbeat/configuration_spec.rb
187
- - spec/opbeat/event_spec.rb
98
+ - spec/opbeat/data_builders/error_spec.rb
99
+ - spec/opbeat/data_builders/transactions_spec.rb
100
+ - spec/opbeat/error_message/exception_spec.rb
101
+ - spec/opbeat/error_message/http_spec.rb
102
+ - spec/opbeat/error_message/stacktrace_spec.rb
103
+ - spec/opbeat/error_message/user_spec.rb
104
+ - spec/opbeat/error_message_spec.rb
188
105
  - spec/opbeat/filter_spec.rb
189
- - spec/opbeat/integrations/delayed_job_spec.rb
190
- - spec/opbeat/logger_spec.rb
191
- - spec/opbeat/opbeat_spec.rb
192
- - spec/opbeat/rack_spec.rb
106
+ - spec/opbeat/http_client_spec.rb
107
+ - spec/opbeat/injections/net_http_spec.rb
108
+ - spec/opbeat/injections/sequel_spec.rb
109
+ - spec/opbeat/injections/sinatra_spec.rb
110
+ - spec/opbeat/injections_spec.rb
111
+ - spec/opbeat/integration/delayed_job_spec.rb
112
+ - spec/opbeat/integration/json_spec.rb
113
+ - spec/opbeat/integration/rails_spec.rb
114
+ - spec/opbeat/integration/redis_spec.rb
115
+ - spec/opbeat/integration/resque_spec.rb
116
+ - spec/opbeat/integration/sidekiq_spec.rb
117
+ - spec/opbeat/integration/sinatra_spec.rb
118
+ - spec/opbeat/line_cache_spec.rb
119
+ - spec/opbeat/logging_spec.rb
120
+ - spec/opbeat/middleware_spec.rb
121
+ - spec/opbeat/normalizers/action_controller_spec.rb
122
+ - spec/opbeat/normalizers/action_view_spec.rb
123
+ - spec/opbeat/normalizers/active_record_spec.rb
124
+ - spec/opbeat/normalizers_spec.rb
125
+ - spec/opbeat/sql_summarizer_spec.rb
126
+ - spec/opbeat/subscriber_spec.rb
127
+ - spec/opbeat/trace_spec.rb
128
+ - spec/opbeat/transaction_spec.rb
129
+ - spec/opbeat/util/inspector_spec.rb
130
+ - spec/opbeat/util_spec.rb
131
+ - spec/opbeat/worker_spec.rb
132
+ - spec/opbeat_spec.rb
193
133
  - spec/spec_helper.rb
194
- homepage: https://github.com/opbeat/opbeat_ruby
134
+ homepage: https://github.com/opbeat/opbeat-ruby
195
135
  licenses:
196
- - Apache-2.0
136
+ - BSD-3-Clause
197
137
  metadata: {}
198
138
  post_install_message:
199
139
  rdoc_options: []
@@ -211,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
151
  version: '0'
212
152
  requirements: []
213
153
  rubyforge_project:
214
- rubygems_version: 2.4.3
154
+ rubygems_version: 2.5.1
215
155
  signing_key:
216
156
  specification_version: 4
217
- summary: The official Opbeat Ruby client
157
+ summary: The official Opbeat Ruby client library
218
158
  test_files: []