rollbar 2.8.3 → 3.6.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 (238) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +18 -0
  3. data/.github/pull_request_template.md +34 -0
  4. data/.github/workflows/ci.yml +67 -0
  5. data/.gitignore +3 -1
  6. data/.rubocop.yml +206 -7
  7. data/Appraisals +10 -10
  8. data/CHANGELOG.md +257 -3
  9. data/Gemfile +74 -13
  10. data/README.md +38 -833
  11. data/Rakefile +0 -0
  12. data/THANKS.md +1 -0
  13. data/data/rollbar.snippet.js +1 -1
  14. data/docs/configuration.md +64 -3
  15. data/docs/plugins.md +46 -0
  16. data/gemfiles/rails50.gemfile +56 -0
  17. data/gemfiles/rails51.gemfile +57 -0
  18. data/gemfiles/rails52.gemfile +56 -0
  19. data/gemfiles/rails60.gemfile +52 -0
  20. data/gemfiles/rails61.gemfile +52 -0
  21. data/gemfiles/rails70.gemfile +52 -0
  22. data/gemfiles/rails71.gemfile +52 -0
  23. data/lib/generators/rollbar/rollbar_generator.rb +24 -20
  24. data/lib/generators/rollbar/templates/{initializer.rb → initializer.erb} +19 -5
  25. data/lib/rails/rollbar_runner.rb +26 -22
  26. data/lib/rollbar/capistrano.rb +78 -38
  27. data/lib/rollbar/capistrano3.rb +62 -1
  28. data/lib/rollbar/capistrano_tasks.rb +166 -0
  29. data/lib/rollbar/configuration.rb +291 -71
  30. data/lib/rollbar/delay/active_job.rb +17 -0
  31. data/lib/rollbar/delay/delayed_job.rb +23 -0
  32. data/lib/rollbar/delay/girl_friday.rb +4 -9
  33. data/lib/rollbar/delay/resque.rb +3 -6
  34. data/lib/rollbar/delay/shoryuken.rb +36 -0
  35. data/lib/rollbar/delay/sidekiq.rb +6 -8
  36. data/lib/rollbar/delay/sucker_punch.rb +17 -22
  37. data/lib/rollbar/delay/thread.rb +74 -3
  38. data/lib/rollbar/deploy.rb +91 -0
  39. data/lib/rollbar/encoding/encoder.rb +22 -11
  40. data/lib/rollbar/encoding.rb +2 -7
  41. data/lib/rollbar/exception_reporter.rb +36 -12
  42. data/lib/rollbar/item/backtrace.rb +118 -0
  43. data/lib/rollbar/item/frame.rb +121 -0
  44. data/lib/rollbar/item/locals.rb +103 -0
  45. data/lib/rollbar/item.rb +314 -0
  46. data/lib/rollbar/js.rb +0 -28
  47. data/lib/rollbar/json.rb +7 -55
  48. data/lib/rollbar/language_support.rb +7 -19
  49. data/lib/rollbar/lazy_store.rb +8 -12
  50. data/lib/rollbar/logger.rb +71 -0
  51. data/lib/rollbar/logger_proxy.rb +18 -1
  52. data/lib/rollbar/middleware/js/json_value.rb +36 -0
  53. data/lib/rollbar/middleware/js.rb +297 -0
  54. data/lib/rollbar/middleware/rack/builder.rb +4 -4
  55. data/lib/rollbar/middleware/rack/test_session.rb +4 -4
  56. data/lib/rollbar/middleware/rack.rb +52 -0
  57. data/lib/rollbar/middleware/rails/rollbar.rb +19 -7
  58. data/lib/rollbar/middleware/rails/show_exceptions.rb +21 -9
  59. data/lib/rollbar/middleware/sinatra.rb +2 -40
  60. data/lib/rollbar/notifier/trace_with_bindings.rb +75 -0
  61. data/lib/rollbar/notifier.rb +913 -0
  62. data/lib/rollbar/plugin.rb +126 -0
  63. data/lib/rollbar/plugins/active_job.rb +54 -0
  64. data/lib/rollbar/plugins/basic_socket.rb +31 -0
  65. data/lib/rollbar/plugins/delayed_job/job_data.rb +50 -0
  66. data/lib/rollbar/plugins/delayed_job/plugin.rb +88 -0
  67. data/lib/rollbar/plugins/delayed_job.rb +12 -0
  68. data/lib/rollbar/plugins/error_context.rb +11 -0
  69. data/lib/rollbar/plugins/goalie.rb +65 -0
  70. data/lib/rollbar/plugins/rack.rb +18 -0
  71. data/lib/rollbar/plugins/rails/controller_methods.rb +56 -0
  72. data/lib/rollbar/plugins/rails/error_subscriber.rb +12 -0
  73. data/lib/rollbar/plugins/rails/railtie30.rb +18 -0
  74. data/lib/rollbar/plugins/rails/railtie32.rb +18 -0
  75. data/lib/rollbar/plugins/rails/railtie_mixin.rb +37 -0
  76. data/lib/rollbar/plugins/rails.rb +89 -0
  77. data/lib/rollbar/plugins/rake.rb +73 -0
  78. data/lib/rollbar/plugins/resque/failure.rb +39 -0
  79. data/lib/rollbar/plugins/resque.rb +11 -0
  80. data/lib/rollbar/plugins/sidekiq/plugin.rb +77 -0
  81. data/lib/rollbar/plugins/sidekiq.rb +37 -0
  82. data/lib/rollbar/plugins/thread.rb +14 -0
  83. data/lib/rollbar/plugins/validations.rb +45 -0
  84. data/lib/rollbar/plugins.rb +47 -0
  85. data/lib/rollbar/rails.rb +0 -1
  86. data/lib/rollbar/rake_tasks.rb +4 -66
  87. data/lib/rollbar/request_data_extractor.rb +157 -117
  88. data/lib/rollbar/rollbar_test.rb +38 -0
  89. data/lib/rollbar/scrubbers/params.rb +133 -0
  90. data/lib/rollbar/scrubbers/url.rb +90 -35
  91. data/lib/rollbar/scrubbers.rb +13 -0
  92. data/lib/rollbar/truncation/frames_strategy.rb +2 -1
  93. data/lib/rollbar/truncation/min_body_strategy.rb +3 -4
  94. data/lib/rollbar/truncation/mixin.rb +1 -1
  95. data/lib/rollbar/truncation/remove_any_key_strategy.rb +126 -0
  96. data/lib/rollbar/truncation/remove_extra_strategy.rb +37 -0
  97. data/lib/rollbar/truncation/remove_request_strategy.rb +21 -0
  98. data/lib/rollbar/truncation/strings_strategy.rb +6 -5
  99. data/lib/rollbar/truncation.rb +10 -4
  100. data/lib/rollbar/util/hash.rb +37 -6
  101. data/lib/rollbar/util/ip_anonymizer.rb +33 -0
  102. data/lib/rollbar/util/ip_obfuscator.rb +1 -1
  103. data/lib/rollbar/util.rb +101 -55
  104. data/lib/rollbar/version.rb +1 -1
  105. data/lib/rollbar.rb +91 -879
  106. data/lib/tasks/benchmark.rake +104 -0
  107. data/lib/tasks/tasks.rake +3 -3
  108. data/rollbar.gemspec +21 -32
  109. data/spec/support/rollbar_api.rb +67 -0
  110. metadata +78 -439
  111. data/.travis.yml +0 -155
  112. data/gemfiles/rails30.gemfile +0 -20
  113. data/gemfiles/rails31.gemfile +0 -16
  114. data/gemfiles/rails32.gemfile +0 -17
  115. data/gemfiles/rails40.gemfile +0 -17
  116. data/gemfiles/rails41.gemfile +0 -15
  117. data/gemfiles/rails42.gemfile +0 -15
  118. data/lib/rollbar/active_job.rb +0 -11
  119. data/lib/rollbar/active_record_extension.rb +0 -14
  120. data/lib/rollbar/core_ext/basic_socket.rb +0 -7
  121. data/lib/rollbar/core_ext/thread.rb +0 -9
  122. data/lib/rollbar/delayed_job.rb +0 -78
  123. data/lib/rollbar/encoding/legacy_encoder.rb +0 -20
  124. data/lib/rollbar/goalie.rb +0 -33
  125. data/lib/rollbar/js/frameworks/rails.rb +0 -29
  126. data/lib/rollbar/js/frameworks.rb +0 -6
  127. data/lib/rollbar/js/middleware.rb +0 -129
  128. data/lib/rollbar/js/version.rb +0 -5
  129. data/lib/rollbar/json/default.rb +0 -11
  130. data/lib/rollbar/json/oj.rb +0 -15
  131. data/lib/rollbar/rack.rb +0 -9
  132. data/lib/rollbar/rails/controller_methods.rb +0 -40
  133. data/lib/rollbar/railtie.rb +0 -46
  134. data/lib/rollbar/rake.rb +0 -38
  135. data/lib/rollbar/sidekiq.rb +0 -40
  136. data/lib/rollbar/tasks/rollbar.cap +0 -45
  137. data/spec/cacert.pem +0 -3988
  138. data/spec/controllers/home_controller_spec.rb +0 -455
  139. data/spec/delay/sidekiq_spec.rb +0 -61
  140. data/spec/delay/sucker_punch_spec.rb +0 -25
  141. data/spec/delayed/backend/test.rb +0 -139
  142. data/spec/delayed/serialization/test.rb +0 -0
  143. data/spec/dummyapp/.gitignore +0 -73
  144. data/spec/dummyapp/Rakefile +0 -7
  145. data/spec/dummyapp/app/assets/javascripts/application.js +0 -3
  146. data/spec/dummyapp/app/assets/stylesheets/application.css.scss +0 -37
  147. data/spec/dummyapp/app/controllers/application_controller.rb +0 -3
  148. data/spec/dummyapp/app/controllers/home_controller.rb +0 -60
  149. data/spec/dummyapp/app/controllers/users_controller.rb +0 -17
  150. data/spec/dummyapp/app/helpers/.gitkeep +0 -0
  151. data/spec/dummyapp/app/mailers/.gitkeep +0 -0
  152. data/spec/dummyapp/app/models/.gitkeep +0 -0
  153. data/spec/dummyapp/app/models/user.rb +0 -7
  154. data/spec/dummyapp/app/views/devise/registrations/edit.html.erb +0 -27
  155. data/spec/dummyapp/app/views/devise/registrations/new.html.erb +0 -20
  156. data/spec/dummyapp/app/views/devise/shared/_links.html.erb +0 -25
  157. data/spec/dummyapp/app/views/home/cause_exception.html.erb +0 -1
  158. data/spec/dummyapp/app/views/home/index.html.erb +0 -4
  159. data/spec/dummyapp/app/views/home/report_exception.html.erb +0 -1
  160. data/spec/dummyapp/app/views/js/test.html.erb +0 -1
  161. data/spec/dummyapp/app/views/layouts/_messages.html.erb +0 -5
  162. data/spec/dummyapp/app/views/layouts/_navigation.html.erb +0 -21
  163. data/spec/dummyapp/app/views/layouts/application.html.erb +0 -25
  164. data/spec/dummyapp/app/views/layouts/simple.html.erb +0 -18
  165. data/spec/dummyapp/app/views/users/index.html.erb +0 -8
  166. data/spec/dummyapp/app/views/users/show.html.erb +0 -3
  167. data/spec/dummyapp/config/application.rb +0 -59
  168. data/spec/dummyapp/config/boot.rb +0 -10
  169. data/spec/dummyapp/config/database.yml +0 -25
  170. data/spec/dummyapp/config/environment.rb +0 -5
  171. data/spec/dummyapp/config/environments/development.rb +0 -37
  172. data/spec/dummyapp/config/environments/production.rb +0 -67
  173. data/spec/dummyapp/config/environments/test.rb +0 -37
  174. data/spec/dummyapp/config/initializers/backtrace_silencers.rb +0 -7
  175. data/spec/dummyapp/config/initializers/inflections.rb +0 -15
  176. data/spec/dummyapp/config/initializers/mime_types.rb +0 -5
  177. data/spec/dummyapp/config/initializers/rollbar.rb +0 -23
  178. data/spec/dummyapp/config/initializers/secret_token.rb +0 -7
  179. data/spec/dummyapp/config/initializers/session_store.rb +0 -8
  180. data/spec/dummyapp/config/initializers/wrap_parameters.rb +0 -16
  181. data/spec/dummyapp/config/locales/devise.en.yml +0 -58
  182. data/spec/dummyapp/config/locales/en.yml +0 -5
  183. data/spec/dummyapp/config/routes.rb +0 -17
  184. data/spec/dummyapp/config.ru +0 -4
  185. data/spec/dummyapp/db/migrate/20121121184652_devise_create_users.rb +0 -46
  186. data/spec/dummyapp/db/migrate/20121121184654_add_name_to_users.rb +0 -5
  187. data/spec/dummyapp/db/schema.rb +0 -35
  188. data/spec/dummyapp/db/seeds.rb +0 -12
  189. data/spec/dummyapp/lib/assets/.gitkeep +0 -0
  190. data/spec/dummyapp/public/404.html +0 -26
  191. data/spec/dummyapp/public/422.html +0 -26
  192. data/spec/dummyapp/public/500.html +0 -25
  193. data/spec/dummyapp/public/favicon.ico +0 -0
  194. data/spec/dummyapp/script/rails +0 -6
  195. data/spec/fixtures/file1 +0 -1
  196. data/spec/fixtures/file2 +0 -1
  197. data/spec/fixtures/payloads/message.json +0 -25
  198. data/spec/fixtures/payloads/sample.trace.json +0 -275
  199. data/spec/fixtures/payloads/sample.trace_chain.json +0 -530
  200. data/spec/generators/rollbar/rollbar_generator_spec.rb +0 -24
  201. data/spec/requests/home_spec.rb +0 -49
  202. data/spec/rollbar/active_job_spec.rb +0 -33
  203. data/spec/rollbar/configuration_spec.rb +0 -24
  204. data/spec/rollbar/delay/girl_friday_spec.rb +0 -41
  205. data/spec/rollbar/delay/resque_spec.rb +0 -37
  206. data/spec/rollbar/delay/thread_spec.rb +0 -27
  207. data/spec/rollbar/delayed_job/job_data.rb +0 -35
  208. data/spec/rollbar/delayed_job_spec.rb +0 -90
  209. data/spec/rollbar/encoding/encoder_spec.rb +0 -63
  210. data/spec/rollbar/js/frameworks/rails_spec.rb +0 -19
  211. data/spec/rollbar/js/middleware_spec.rb +0 -162
  212. data/spec/rollbar/json/oj_spec.rb +0 -18
  213. data/spec/rollbar/json_spec.rb +0 -110
  214. data/spec/rollbar/lazy_store_spec.rb +0 -99
  215. data/spec/rollbar/logger_proxy_spec.rb +0 -34
  216. data/spec/rollbar/middleware/rack/builder_spec.rb +0 -151
  217. data/spec/rollbar/middleware/sinatra_spec.rb +0 -197
  218. data/spec/rollbar/rake_spec.rb +0 -34
  219. data/spec/rollbar/request_data_extractor_spec.rb +0 -82
  220. data/spec/rollbar/scrubbers/url_spec.rb +0 -111
  221. data/spec/rollbar/sidekiq_spec.rb +0 -90
  222. data/spec/rollbar/truncation/frames_strategy_spec.rb +0 -70
  223. data/spec/rollbar/truncation/min_body_strategy_spec.rb +0 -57
  224. data/spec/rollbar/truncation/strings_strategy_spec.rb +0 -89
  225. data/spec/rollbar/truncation_spec.rb +0 -27
  226. data/spec/rollbar/util/hash_spec.rb +0 -22
  227. data/spec/rollbar/util_spec.rb +0 -19
  228. data/spec/rollbar_bc_spec.rb +0 -380
  229. data/spec/rollbar_spec.rb +0 -2067
  230. data/spec/spec_helper.rb +0 -49
  231. data/spec/support/cause_exception.rb +0 -1
  232. data/spec/support/encoding_helpers.rb +0 -8
  233. data/spec/support/encodings/iso_8859_9 +0 -1
  234. data/spec/support/fixture_helpers.rb +0 -10
  235. data/spec/support/get_ip_raising.rb +0 -7
  236. data/spec/support/helpers.rb +0 -5
  237. data/spec/support/notifier_helpers.rb +0 -36
  238. data/spec/support/shared_contexts.rb +0 -12
data/.travis.yml DELETED
@@ -1,155 +0,0 @@
1
- sudo: false
2
- services:
3
- - redis-server
4
- language: ruby
5
- # Broken bundler on travis CI - https://github.com/bundler/bundler/issues/2784
6
- before_install:
7
- - gem update --system 2.1.11
8
- - gem --version
9
- rvm:
10
- - 1.8.7
11
- - 1.9.2
12
- - 1.9.3
13
- - 2.0.0
14
- - 2.1.0
15
- - 2.2.2
16
- - jruby-18mode
17
- - jruby-19mode
18
- - rbx
19
- jdk:
20
- - openjdk6
21
- - openjdk7
22
- - oraclejdk7
23
- - oraclejdk8
24
- env:
25
- - ROLLBAR_SSL_CERT_FILE=/home/travis/build/rollbar/rollbar-gem/spec/cacert.pem
26
- gemfile:
27
- - gemfiles/rails30.gemfile
28
- - gemfiles/rails31.gemfile
29
- - gemfiles/rails32.gemfile
30
- - gemfiles/rails40.gemfile
31
- - gemfiles/rails41.gemfile
32
- matrix:
33
- allow_failures:
34
- - rvm: ruby-head
35
- - rvm: jruby-18mode
36
- - rvm: jruby-head
37
-
38
- # NOTE: Allowing this to fail because of some strange error in rspec-core `undefined method `example_group_finished'`.
39
- # Seems to work with oraclejdk7.
40
- - rvm: jruby-19mode
41
- jdk: openjdk7
42
- exclude:
43
- # Don't run tests for non-jruby environments with the JDK.
44
- # NOTE: openjdk7 is missing from these exclusions so that Travis will run at least 1 build for the given rvm.
45
- - rvm: 1.8.7
46
- jdk: openjdk6
47
- - rvm: 1.8.7
48
- jdk: oraclejdk7
49
- - rvm: 1.8.7
50
- jdk: oraclejdk8
51
- - rvm: 1.9.2
52
- jdk: openjdk6
53
- - rvm: 1.9.2
54
- jdk: oraclejdk7
55
- - rvm: 1.9.2
56
- jdk: oraclejdk8
57
- - rvm: 1.9.3
58
- jdk: openjdk6
59
- - rvm: 1.9.3
60
- jdk: oraclejdk7
61
- - rvm: 1.9.3
62
- jdk: oraclejdk8
63
- - rvm: 2.0.0
64
- jdk: openjdk6
65
- - rvm: 2.0.0
66
- jdk: oraclejdk7
67
- - rvm: 2.0.0
68
- jdk: oraclejdk8
69
- - rvm: 2.1.0
70
- jdk: openjdk6
71
- - rvm: 2.1.0
72
- jdk: oraclejdk7
73
- - rvm: 2.1.0
74
- jdk: oraclejdk8
75
- - rvm: ruby-head
76
- jdk: openjdk6
77
- - rvm: ruby-head
78
- jdk: oraclejdk7
79
- - rvm: ruby-head
80
- jdk: oraclejdk8
81
- - rvm: rbx
82
- jdk: openjdk6
83
- - rvm: rbx
84
- jdk: oraclejdk7
85
- - rvm: rbx
86
- jdk: oraclejdk8
87
-
88
- # TODO: comment as to why these are excluded
89
- - rvm: 1.8.7
90
- gemfile: gemfiles/rails31.gemfile
91
- - rvm: 1.8.7
92
- gemfile: gemfiles/rails32.gemfile
93
- - rvm: 1.8.7
94
- gemfile: gemfiles/rails40.gemfile
95
- - rvm: 1.8.7
96
- gemfile: gemfiles/rails41.gemfile
97
- - rvm: 1.8.7
98
- gemfile: gemfiles/rails42.gemfile
99
- - rvm: 1.9.2
100
- gemfile: gemfiles/rails31.gemfile
101
- - rvm: 1.9.2
102
- gemfile: gemfiles/rails32.gemfile
103
- - rvm: 1.9.2
104
- gemfile: gemfiles/rails40.gemfile
105
- - rvm: 1.9.2
106
- gemfile: gemfiles/rails41.gemfile
107
- - rvm: 1.9.2
108
- gemfile: gemfiles/rails42.gemfile
109
- - rvm: 2.2.2
110
- gemfile: gemfiles/rails30.gemfile
111
- - rvm: 2.2.2
112
- gemfile: gemfiles/rails31.gemfile
113
- - rvm: jruby-18mode
114
- gemfile: gemfiles/rails30.gemfile
115
- - rvm: jruby-18mode
116
- gemfile: gemfiles/rails31.gemfile
117
- - rvm: jruby-18mode
118
- gemfile: gemfiles/rails32.gemfile
119
- - rvm: jruby-18mode
120
- gemfile: gemfiles/rails40.gemfile
121
- - rvm: jruby-18mode
122
- gemfile: gemfiles/rails41.gemfile
123
- - rvm: jruby-18mode
124
- gemfile: gemfiles/rails42.gemfile
125
- - rvm: jruby-19mode
126
- gemfile: gemfiles/rails30.gemfile
127
- - rvm: jruby-19mode
128
- gemfile: gemfiles/rails31.gemfile
129
- - rvm: jruby-19mode
130
- gemfile: gemfiles/rails32.gemfile
131
- - rvm: jruby-19mode
132
- gemfile: gemfiles/rails40.gemfile
133
- - rvm: jruby-19mode
134
- gemfile: gemfiles/rails41.gemfile
135
- - rvm: jruby-19mode
136
- gemfile: gemfiles/rails42.gemfile
137
- - rvm: rbx
138
- gemfile: gemfiles/rails30.gemfile
139
- - rvm: rbx
140
- gemfile: gemfiles/rails31.gemfile
141
- - rvm: rbx
142
- gemfile: gemfiles/rails32.gemfile
143
- - rvm: rbx
144
- gemfile: gemfiles/rails40.gemfile
145
- - rvm: rbx
146
- gemfile: gemfiles/rails41.gemfile
147
- - rvm: rbx
148
- gemfile: gemfiles/rails42.gemfile
149
- gemfile:
150
- - gemfiles/rails30.gemfile
151
- - gemfiles/rails31.gemfile
152
- - gemfiles/rails32.gemfile
153
- - gemfiles/rails40.gemfile
154
- - gemfiles/rails41.gemfile
155
- - gemfiles/rails42.gemfile
@@ -1,20 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
6
- gem 'jruby-openssl', :platform => :jruby
7
- gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
8
- gem 'appraisal', '= 1.0.2'
9
- gem 'rubysl', '~> 2.0', :platform => :rbx
10
- gem 'racc', :platform => :rbx
11
- gem 'minitest', :platform => :rbx
12
- gem 'rubysl-test-unit', :platform => :rbx
13
- gem 'rubinius-developer_tools', :platform => :rbx
14
- gem 'rails', '3.0.20'
15
- gem 'hitimes', '< 1.2.2'
16
-
17
- gem 'celluloid', '< 0.17.0' if RUBY_VERSION == '1.9.2'
18
-
19
-
20
- gemspec :path => '../'
@@ -1,16 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
6
- gem "jruby-openssl", :platform => :jruby
7
- gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
8
- gem "appraisal", '= 1.0.2'
9
- gem "rubysl", "~> 2.0", :platform => :rbx
10
- gem "racc", :platform => :rbx
11
- gem "minitest", :platform => :rbx
12
- gem "rubysl-test-unit", :platform => :rbx
13
- gem "rubinius-developer_tools", :platform => :rbx
14
- gem "rails", "3.1.12"
15
-
16
- gemspec :path => "../"
@@ -1,17 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "test-unit" # Please see https://github.com/rspec/rspec-rails/issues/1273
6
- gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
7
- gem "jruby-openssl", :platform => :jruby
8
- gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
9
- gem "appraisal"
10
- gem "rubysl", "~> 2.0", :platform => :rbx
11
- gem "racc", :platform => :rbx
12
- gem "minitest", :platform => :rbx
13
- gem "rubysl-test-unit", :platform => :rbx
14
- gem "rubinius-developer_tools", :platform => :rbx
15
- gem "rails", "3.2.22"
16
-
17
- gemspec :path => "../"
@@ -1,17 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "test-unit" # Please see https://github.com/rspec/rspec-rails/issues/1273
6
- gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
7
- gem "jruby-openssl", :platform => :jruby
8
- gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
9
- gem "appraisal"
10
- gem "rubysl", "~> 2.0", :platform => :rbx
11
- gem "racc", :platform => :rbx
12
- gem "minitest", :platform => :rbx
13
- gem "rubysl-test-unit", :platform => :rbx
14
- gem "rubinius-developer_tools", :platform => :rbx
15
- gem "rails", "4.0.13"
16
-
17
- gemspec :path => "../"
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
6
- gem "jruby-openssl", :platform => :jruby
7
- gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
8
- gem "appraisal"
9
- gem "rubysl", "~> 2.0", :platform => :rbx
10
- gem "racc", :platform => :rbx
11
- gem "minitest", :platform => :rbx
12
- gem "rubinius-developer_tools", :platform => :rbx
13
- gem "rails", "4.1.12"
14
-
15
- gemspec :path => "../"
@@ -1,15 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
6
- gem "jruby-openssl", :platform => :jruby
7
- gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
8
- gem "appraisal"
9
- gem "rubysl", "~> 2.0", :platform => :rbx
10
- gem "racc", :platform => :rbx
11
- gem "minitest", :platform => :rbx
12
- gem "rubinius-developer_tools", :platform => :rbx
13
- gem "rails", "4.2.3"
14
-
15
- gemspec :path => "../"
@@ -1,11 +0,0 @@
1
- module Rollbar
2
- # Report any uncaught errors in a job to Rollbar and reraise
3
- module ActiveJob
4
- def self.included(base)
5
- base.send :rescue_from, Exception do |exception|
6
- Rollbar.error(exception, :job => self.class.name, :job_id => job_id)
7
- raise exception
8
- end
9
- end
10
- end
11
- end
@@ -1,14 +0,0 @@
1
- module Rollbar
2
- module ActiveRecordExtension
3
- extend ActiveSupport::Concern
4
-
5
- def report_validation_errors_to_rollbar
6
- self.errors.full_messages.each do |error|
7
- Rollbar.log_info "[Rollbar] Reporting form validation error: #{error} for #{self.to_s}"
8
- Rollbar.warning("Form Validation Error: #{error} for #{self.to_s}")
9
- end
10
- end
11
- end
12
- end
13
-
14
- ActiveRecord::Base.send(:include, Rollbar::ActiveRecordExtension)
@@ -1,7 +0,0 @@
1
- require 'socket'
2
-
3
- class BasicSocket
4
- def as_json
5
- to_s
6
- end
7
- end
@@ -1,9 +0,0 @@
1
- class Thread
2
- def initialize_with_rollbar(*args, &block)
3
- self[:_rollbar_notifier] ||= Rollbar.notifier.scope
4
- initialize_without_rollbar(*args, &block)
5
- end
6
-
7
- alias_method :initialize_without_rollbar, :initialize
8
- alias_method :initialize, :initialize_with_rollbar
9
- end
@@ -1,78 +0,0 @@
1
- require 'delayed_job'
2
-
3
- module Rollbar
4
- module Delayed
5
- class << self
6
- attr_accessor :wrapped
7
- end
8
-
9
- class JobData
10
- attr_reader :job
11
-
12
- def initialize(job)
13
- @job = job
14
- end
15
-
16
- def to_hash
17
- job_data = job.as_json
18
- # Here job_data['handler'] is a YAML object comming
19
- # from the storage backend
20
- job_data['handler'] = job.payload_object.as_json
21
-
22
- job_data
23
- end
24
- end
25
-
26
- class RollbarPlugin < ::Delayed::Plugin
27
- callbacks do |lifecycle|
28
- lifecycle.around(:invoke_job, &Delayed::invoke_job_callback)
29
- end
30
- end
31
-
32
- self.wrapped = false
33
-
34
- def self.wrap_worker
35
- return if wrapped
36
-
37
- ::Delayed::Worker.plugins << RollbarPlugin
38
-
39
- self.wrapped = true
40
- end
41
-
42
- def self.wrap_worker!
43
- self.wrapped = false
44
-
45
- wrap_worker
46
- end
47
-
48
- def self.invoke_job_callback
49
- proc do |job, *args, &block|
50
- begin
51
- block.call(job, *args)
52
- rescue => e
53
- report(e, job)
54
-
55
- raise e
56
- end
57
- end
58
- end
59
-
60
- def self.report(e, job)
61
- return if skip_report?(job)
62
-
63
- data = build_job_data(job)
64
-
65
- ::Rollbar.scope(:request => data).error(e, :use_exception_level_filters => true)
66
- end
67
-
68
- def self.skip_report?(job)
69
- job.attempts < ::Rollbar.configuration.dj_threshold
70
- end
71
-
72
- def self.build_job_data(job)
73
- return nil unless ::Rollbar.configuration.report_dj_data
74
-
75
- JobData.new(job).to_hash
76
- end
77
- end
78
- end
@@ -1,20 +0,0 @@
1
- require 'iconv'
2
-
3
- module Rollbar
4
- module Encoding
5
- class LegacyEncoder
6
- attr_accessor :object
7
-
8
- def initialize(object)
9
- @object = object
10
- end
11
-
12
- def encode
13
- value = object.to_s
14
- encoded_value = ::Iconv.conv('UTF-8//IGNORE', 'UTF-8', value)
15
-
16
- object.is_a?(Symbol) ? encoded_value.to_sym : encoded_value
17
- end
18
- end
19
- end
20
- end
@@ -1,33 +0,0 @@
1
- module Goalie
2
- class CustomErrorPages
3
- alias_method :orig_render_exception, :render_exception
4
-
5
- private
6
-
7
- def render_exception(env, exception)
8
- exception_data = nil
9
- begin
10
- controller = env['action_controller.instance']
11
- request_data = controller.rollbar_request_data rescue nil
12
- person_data = controller.rollbar_person_data rescue nil
13
- exception_data = Rollbar.scope(:request => request_data, :person => person_data).error(exception, :use_exception_level_filters => true)
14
- rescue => e
15
- Rollbar.log_warning "[Rollbar] Exception while reporting exception to Rollbar: #{e}"
16
- end
17
-
18
- # if an exception was reported, save uuid in the env
19
- # so it can be displayed to the user on the error page
20
- if exception_data.is_a?(Hash)
21
- env['rollbar.exception_uuid'] = exception_data[:uuid]
22
- Rollbar.log_info "[Rollbar] Exception uuid saved in env: #{exception_data[:uuid]}"
23
- elsif exception_data == 'disabled'
24
- Rollbar.log_info "[Rollbar] Exception not reported because Rollbar is disabled"
25
- elsif exception_data == 'ignored'
26
- Rollbar.log_info "[Rollbar] Exception not reported because it was ignored"
27
- end
28
-
29
- # now continue as normal
30
- orig_render_exception(env, exception)
31
- end
32
- end
33
- end
@@ -1,29 +0,0 @@
1
- module Rollbar
2
- module Js
3
- module Frameworks
4
- class Rails
5
- attr_accessor :prepared
6
-
7
- alias prepared? prepared
8
-
9
- def prepare
10
- return if prepared?
11
-
12
- require 'rollbar/js/middleware'
13
-
14
- config = {
15
- :options => Rollbar.configuration.js_options,
16
- :enabled => Rollbar.configuration.js_enabled
17
- }
18
- rails_config.middleware.use(::Rollbar::Js::Middleware, config)
19
-
20
- self.prepared = true
21
- end
22
-
23
- def rails_config
24
- ::Rails.configuration
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,6 +0,0 @@
1
- module Rollbar
2
- module Js
3
- module Frameworks
4
- end
5
- end
6
- end
@@ -1,129 +0,0 @@
1
- require 'rack'
2
- require 'rack/response'
3
-
4
-
5
- module Rollbar
6
- module Js
7
- class Middleware
8
- attr_reader :app
9
- attr_reader :config
10
-
11
- JS_IS_INJECTED_KEY = 'rollbar.js_is_injected'
12
- SNIPPET = File.read(File.expand_path('../../../../data/rollbar.snippet.js', __FILE__))
13
-
14
- def initialize(app, config)
15
- @app = app
16
- @config = config
17
- end
18
-
19
- def call(env)
20
- result = app.call(env)
21
-
22
- _call(env, result)
23
- end
24
-
25
- private
26
-
27
- def _call(env, result)
28
- return result unless should_add_js?(env, result[0], result[1])
29
-
30
- if response_string = add_js(result[2])
31
- env[JS_IS_INJECTED_KEY] = true
32
- response = ::Rack::Response.new(response_string, result[0], result[1])
33
-
34
- response.finish
35
- else
36
- result
37
- end
38
- rescue => e
39
- Rollbar.log_error("[Rollbar] Rollbar.js could not be added because #{e} exception")
40
- result
41
- end
42
-
43
- def enabled?
44
- !!config[:enabled]
45
- end
46
-
47
- def should_add_js?(env, status, headers)
48
- enabled? &&
49
- status == 200 &&
50
- !env[JS_IS_INJECTED_KEY] &&
51
- html?(headers) &&
52
- !attachment?(headers) &&
53
- !streaming?(env)
54
- end
55
-
56
- def html?(headers)
57
- headers['Content-Type'] && headers['Content-Type'].include?('text/html')
58
- end
59
-
60
- def attachment?(headers)
61
- headers['Content-Disposition'].to_s.include?('attachment')
62
- end
63
-
64
- def streaming?(env)
65
- return false unless defined?(ActionController::Live)
66
-
67
- env['action_controller.instance'].class.included_modules.include?(ActionController::Live)
68
- end
69
-
70
- def add_js(response)
71
- body = join_body(response)
72
- close_old_response(response)
73
-
74
- return nil unless body
75
-
76
- head_open_end = find_end_of_head_open(body)
77
- return nil unless head_open_end
78
-
79
- if head_open_end
80
- body = body[0..head_open_end] <<
81
- config_js_tag <<
82
- snippet_js_tag <<
83
- body[head_open_end..-1]
84
- end
85
-
86
- body
87
- rescue => e
88
- Rollbar.log_error("[Rollbar] Rollbar.js could not be added because #{e} exception")
89
- nil
90
- end
91
-
92
- def find_end_of_head_open(body)
93
- head_open = body.index(/<head\W/)
94
- body.index('>', head_open) + 1 if head_open
95
- end
96
-
97
- def join_body(response)
98
- source = nil
99
- response.each { |fragment| source ? (source << fragment.to_s) : (source = fragment.to_s)}
100
- source
101
- end
102
-
103
- def close_old_response(response)
104
- response.close if response.respond_to?(:close)
105
- end
106
-
107
- def config_js_tag
108
- script_tag("var _rollbarConfig = #{config[:options].to_json};")
109
- end
110
-
111
- def snippet_js_tag
112
- script_tag(js_snippet)
113
- end
114
-
115
- def js_snippet
116
- SNIPPET
117
- end
118
-
119
- def script_tag(content)
120
- html_safe_if_needed("\n<script type=\"text/javascript\">#{content}</script>")
121
- end
122
-
123
- def html_safe_if_needed(string)
124
- string = string.html_safe if string.respond_to?(:html_safe)
125
- string
126
- end
127
- end
128
- end
129
- end
@@ -1,5 +0,0 @@
1
- module Rollbar
2
- module Js
3
- VERSION = "0.1.0"
4
- end
5
- end
@@ -1,11 +0,0 @@
1
- module Rollbar
2
- module JSON
3
- module Default
4
- extend self
5
-
6
- def options
7
- {}
8
- end
9
- end
10
- end
11
- end
@@ -1,15 +0,0 @@
1
- module Rollbar
2
- module JSON
3
- module Oj
4
- extend self
5
-
6
- def options
7
- { :mode=> :compat,
8
- :use_to_json => false,
9
- :symbol_keys => false,
10
- :circular => false
11
- }
12
- end
13
- end
14
- end
15
- end
data/lib/rollbar/rack.rb DELETED
@@ -1,9 +0,0 @@
1
- if defined?(Rack::Builder)
2
- require 'rollbar/middleware/rack/builder'
3
- Rack::Builder.send(:include, Rollbar::Middleware::Rack::Builder)
4
- end
5
-
6
- if defined?(Rack::Test::Session)
7
- require 'rollbar/middleware/rack/test_session'
8
- Rack::Test::Session.send(:include, Rollbar::Middleware::Rack::TestSession)
9
- end