pliny 1.1.0 → 2.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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/bin/pliny-generate +2 -1
  3. data/bin/pliny-new +2 -1
  4. data/bin/pliny-update +2 -1
  5. data/lib/pliny/canonical_log_line_helpers.rb +2 -0
  6. data/lib/pliny/commands/creator.rb +13 -12
  7. data/lib/pliny/commands/generator/base.rb +11 -9
  8. data/lib/pliny/commands/generator/endpoint.rb +19 -17
  9. data/lib/pliny/commands/generator/mediator.rb +7 -5
  10. data/lib/pliny/commands/generator/migration.rb +4 -2
  11. data/lib/pliny/commands/generator/model.rb +11 -9
  12. data/lib/pliny/commands/generator/schema.rb +4 -2
  13. data/lib/pliny/commands/generator/serializer.rb +7 -5
  14. data/lib/pliny/commands/generator.rb +19 -17
  15. data/lib/pliny/commands/updater.rb +5 -3
  16. data/lib/pliny/config_helpers.rb +10 -35
  17. data/lib/pliny/db_support.rb +21 -21
  18. data/lib/pliny/error_reporters/rollbar.rb +5 -3
  19. data/lib/pliny/error_reporters/sentry.rb +40 -0
  20. data/lib/pliny/error_reporters.rb +5 -5
  21. data/lib/pliny/errors.rb +47 -45
  22. data/lib/pliny/helpers/encode.rb +8 -2
  23. data/lib/pliny/helpers/params.rb +4 -2
  24. data/lib/pliny/helpers/serialize.rb +6 -4
  25. data/lib/pliny/helpers/zulu_time.rb +3 -1
  26. data/lib/pliny/log.rb +26 -25
  27. data/lib/pliny/metrics/backends/logger.rb +5 -3
  28. data/lib/pliny/metrics.rb +4 -2
  29. data/lib/pliny/middleware/canonical_log_line.rb +5 -3
  30. data/lib/pliny/middleware/cors.rb +13 -12
  31. data/lib/pliny/middleware/instruments.rb +9 -7
  32. data/lib/pliny/middleware/metrics.rb +3 -1
  33. data/lib/pliny/middleware/request_id.rb +4 -2
  34. data/lib/pliny/middleware/request_store/clear.rb +3 -1
  35. data/lib/pliny/middleware/request_store/seed.rb +3 -1
  36. data/lib/pliny/middleware/rescue_errors.rb +2 -0
  37. data/lib/pliny/middleware/versioning.rb +11 -11
  38. data/lib/pliny/request_store.rb +4 -2
  39. data/lib/pliny/rollbar_logger.rb +6 -4
  40. data/lib/pliny/router.rb +3 -2
  41. data/lib/pliny/tasks/db.rake +3 -1
  42. data/lib/pliny/tasks/schema.rake +3 -1
  43. data/lib/pliny/tasks.rb +2 -0
  44. data/lib/pliny/templates/endpoint_acceptance_test.erb +2 -2
  45. data/lib/pliny/templates/endpoint_scaffold_acceptance_test.erb +2 -2
  46. data/lib/pliny/utils.rb +4 -2
  47. data/lib/pliny/version.rb +3 -1
  48. data/lib/pliny.rb +3 -1
  49. data/lib/template/{.rubocop.yml → .rubocop_template.yml} +1 -5
  50. data/lib/template/Gemfile +7 -6
  51. data/lib/template/Rakefile +1 -0
  52. data/lib/template/bin/console +2 -1
  53. data/lib/template/bin/run +4 -1
  54. data/lib/template/config/config.rb +18 -16
  55. data/lib/template/config/initializers/database.rb +4 -2
  56. data/lib/template/config/initializers/log.rb +2 -0
  57. data/lib/template/config/initializers/metrics.rb +2 -0
  58. data/lib/template/config/initializers/sentry.rb +14 -0
  59. data/lib/template/config/puma.rb +3 -1
  60. data/lib/template/config.ru +2 -0
  61. data/lib/template/db/seeds.rb +2 -0
  62. data/lib/template/lib/application.rb +2 -0
  63. data/lib/template/lib/endpoints/base.rb +2 -0
  64. data/lib/template/lib/endpoints/health.rb +2 -0
  65. data/lib/template/lib/endpoints/root.rb +2 -0
  66. data/lib/template/lib/endpoints/schema.rb +2 -0
  67. data/lib/template/lib/initializer.rb +6 -4
  68. data/lib/template/lib/mediators/base.rb +2 -0
  69. data/lib/template/lib/routes.rb +8 -6
  70. data/lib/template/lib/serializers/base.rb +2 -0
  71. data/lib/template/lib/tasks/rubocop.rake +2 -0
  72. data/lib/template/lib/tasks/spec.rake +2 -1
  73. data/lib/template/spec/endpoints/health_spec.rb +4 -2
  74. data/lib/template/spec/endpoints/schema_spec.rb +2 -0
  75. data/lib/template/spec/spec_helper.rb +2 -0
  76. data/lib/template/spec/spec_support/auto_define_rack_app.rb +2 -0
  77. data/lib/template/spec/spec_support/coverage.rb +2 -0
  78. data/lib/template/spec/spec_support/log.rb +2 -0
  79. data/spec/canonical_log_line_helpers_spec.rb +10 -8
  80. data/spec/commands/creator_spec.rb +3 -0
  81. data/spec/commands/generator/base_spec.rb +61 -59
  82. data/spec/commands/generator/endpoint_spec.rb +17 -16
  83. data/spec/commands/generator/mediator_spec.rb +11 -9
  84. data/spec/commands/generator/migration_spec.rb +7 -5
  85. data/spec/commands/generator/model_spec.rb +13 -11
  86. data/spec/commands/generator/schema_spec.rb +29 -28
  87. data/spec/commands/generator/serializer_spec.rb +11 -9
  88. data/spec/commands/generator_spec.rb +64 -62
  89. data/spec/commands/updater_spec.rb +2 -0
  90. data/spec/config_helpers_spec.rb +7 -85
  91. data/spec/db_support_spec.rb +46 -44
  92. data/spec/error_reporters/rollbar_spec.rb +8 -6
  93. data/spec/error_reporters/sentry_spec.rb +83 -0
  94. data/spec/error_reporters_spec.rb +4 -2
  95. data/spec/errors_spec.rb +4 -1
  96. data/spec/helpers/encode_spec.rb +5 -3
  97. data/spec/helpers/params_spec.rb +9 -7
  98. data/spec/helpers/serialize_spec.rb +16 -12
  99. data/spec/helpers/zulu_time_spec.rb +6 -4
  100. data/spec/integration_spec.rb +14 -12
  101. data/spec/log_spec.rb +8 -6
  102. data/spec/metrics/backends/logger_spec.rb +10 -6
  103. data/spec/metrics_spec.rb +15 -13
  104. data/spec/middleware/canonical_log_line_spec.rb +5 -2
  105. data/spec/middleware/cors_spec.rb +2 -0
  106. data/spec/middleware/instruments_spec.rb +10 -8
  107. data/spec/middleware/metrics_spec.rb +3 -1
  108. data/spec/middleware/request_id_spec.rb +2 -0
  109. data/spec/middleware/request_store/clear_spec.rb +2 -0
  110. data/spec/middleware/request_store/seed_spec.rb +2 -0
  111. data/spec/middleware/rescue_errors_spec.rb +16 -16
  112. data/spec/middleware/versioning_spec.rb +29 -27
  113. data/spec/request_store_spec.rb +3 -1
  114. data/spec/rollbar_logger_spec.rb +11 -9
  115. data/spec/router_spec.rb +9 -7
  116. data/spec/spec_helper.rb +3 -1
  117. data/spec/support/config.rb +2 -0
  118. data/spec/support/endpoints.rb +2 -0
  119. metadata +84 -113
  120. data/lib/template/config/initializers/rollbar.rb +0 -12
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Pliny::Middleware::Versioning do
@@ -10,58 +12,58 @@ describe Pliny::Middleware::Versioning do
10
12
  def app
11
13
  Rack::Builder.new do
12
14
  use Rack::Lint
13
- use Pliny::Middleware::Versioning, default: '2', app_name: 'pliny'
15
+ use Pliny::Middleware::Versioning, default: "2", app_name: "pliny"
14
16
  run Sinatra.new {
15
17
  get "/" do
16
- MultiJson.encode env
18
+ JSON.generate env
17
19
  end
18
20
  }
19
21
  end
20
22
  end
21
23
 
22
24
  it "produces default version on application/json" do
23
- get '/', {}, {'HTTP_ACCEPT' => 'application/json'}
24
- json = MultiJson.decode(last_response.body)
25
- assert_equal 'application/json', json['HTTP_ACCEPT']
26
- assert_equal '2', json['HTTP_X_API_VERSION']
25
+ get "/", {}, { "HTTP_ACCEPT" => "application/json" }
26
+ json = JSON.parse(last_response.body)
27
+ assert_equal "application/json", json["HTTP_ACCEPT"]
28
+ assert_equal "2", json["HTTP_X_API_VERSION"]
27
29
  end
28
30
 
29
31
  it "errors without a version specified on application/vnd.pliny+json" do
30
- get '/', {}, {'HTTP_ACCEPT' => 'application/vnd.pliny+json'}
31
- error = { id: :bad_version, message: <<-eos }
32
- Please specify a version along with the MIME type. For example, `Accept: application/vnd.pliny+json; version=1`.
33
- eos
32
+ get "/", {}, { "HTTP_ACCEPT" => "application/vnd.pliny+json" }
33
+ error = { id: :bad_version, message: <<~EOS }
34
+ Please specify a version along with the MIME type. For example, `Accept: application/vnd.pliny+json; version=1`.
35
+ EOS
34
36
 
35
37
  assert_equal 400, last_response.status
36
- assert_equal MultiJson.encode(error), last_response.body
38
+ assert_equal JSON.generate(error), last_response.body
37
39
  end
38
40
 
39
41
  it "ignores a wrong app name" do
40
- get '/', {}, {'HTTP_ACCEPT' => 'application/vnd.chuck_norris+json'}
41
- json = MultiJson.decode(last_response.body)
42
- assert_equal 'application/vnd.chuck_norris+json', json['HTTP_ACCEPT']
43
- assert_equal '2', json['HTTP_X_API_VERSION']
42
+ get "/", {}, { "HTTP_ACCEPT" => "application/vnd.chuck_norris+json" }
43
+ json = JSON.parse(last_response.body)
44
+ assert_equal "application/vnd.chuck_norris+json", json["HTTP_ACCEPT"]
45
+ assert_equal "2", json["HTTP_X_API_VERSION"]
44
46
  end
45
47
 
46
48
  it "produces a version on application/vnd.pliny+json; version=3" do
47
- get '/', {}, {'HTTP_ACCEPT' => 'application/vnd.pliny+json; version=3'}
48
- json = MultiJson.decode(last_response.body)
49
- assert_equal 'application/json', json['HTTP_ACCEPT']
50
- assert_equal '3', json['HTTP_X_API_VERSION']
49
+ get "/", {}, { "HTTP_ACCEPT" => "application/vnd.pliny+json; version=3" }
50
+ json = JSON.parse(last_response.body)
51
+ assert_equal "application/json", json["HTTP_ACCEPT"]
52
+ assert_equal "3", json["HTTP_X_API_VERSION"]
51
53
  end
52
54
 
53
55
  # this behavior is pretty sketchy, but a pretty extreme edge case
54
56
  it "handles multiple MIME types" do
55
- get '/', {}, {'HTTP_ACCEPT' => 'application/vnd.pliny+json; version=3; q=0.5, text/xml'}
56
- json = MultiJson.decode(last_response.body)
57
- assert_equal 'text/xml, application/json; q=0.5', json['HTTP_ACCEPT']
58
- assert_equal '3', json['HTTP_X_API_VERSION']
57
+ get "/", {}, { "HTTP_ACCEPT" => "application/vnd.pliny+json; version=3; q=0.5, text/xml" }
58
+ json = JSON.parse(last_response.body)
59
+ assert_equal "text/xml, application/json; q=0.5", json["HTTP_ACCEPT"]
60
+ assert_equal "3", json["HTTP_X_API_VERSION"]
59
61
  end
60
62
 
61
63
  it "produces the priority version on multiple types" do
62
- get '/', {}, {'HTTP_ACCEPT' => 'application/vnd.pliny+json; version=4; q=0.5, application/vnd.pliny+json; version=3'}
63
- json = MultiJson.decode(last_response.body)
64
- assert_equal 'application/json, application/json; q=0.5', json['HTTP_ACCEPT']
65
- assert_equal '3', json['HTTP_X_API_VERSION']
64
+ get "/", {}, { "HTTP_ACCEPT" => "application/vnd.pliny+json; version=4; q=0.5, application/vnd.pliny+json; version=3" }
65
+ json = JSON.parse(last_response.body)
66
+ assert_equal "application/json, application/json; q=0.5", json["HTTP_ACCEPT"]
67
+ assert_equal "3", json["HTTP_X_API_VERSION"]
66
68
  end
67
69
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Pliny::RequestStore do
4
6
  before do
5
7
  @env = {
6
- "REQUEST_IDS" => ["abc", "def"]
8
+ "REQUEST_IDS" => ["abc", "def"],
7
9
  }
8
10
  end
9
11
 
@@ -1,41 +1,43 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Pliny::RollbarLogger do
4
6
  subject(:logger) { Pliny::RollbarLogger.new }
5
7
 
6
- let(:message) { 'hello world' }
8
+ let(:message) { "hello world" }
7
9
  let(:log_context) { { rollbar: true, level: level, message: message } }
8
10
 
9
11
  before do
10
12
  expect(Pliny).to receive(:log).with(log_context)
11
13
  end
12
14
 
13
- context '#debug' do
14
- let(:level) { 'debug' }
15
+ context "#debug" do
16
+ let(:level) { "debug" }
15
17
 
16
18
  it "proxies the debug log level" do
17
19
  logger.debug(message)
18
20
  end
19
21
  end
20
22
 
21
- context '#info' do
22
- let(:level) { 'info' }
23
+ context "#info" do
24
+ let(:level) { "info" }
23
25
 
24
26
  it "proxies the info log level" do
25
27
  logger.info(message)
26
28
  end
27
29
  end
28
30
 
29
- context '#warn' do
30
- let(:level) { 'warn' }
31
+ context "#warn" do
32
+ let(:level) { "warn" }
31
33
 
32
34
  it "proxies the warn log level" do
33
35
  logger.warn(message)
34
36
  end
35
37
  end
36
38
 
37
- context '#error' do
38
- let(:level) { 'error' }
39
+ context "#error" do
40
+ let(:level) { "error" }
39
41
 
40
42
  it "proxies the error log level" do
41
43
  logger.error(message)
data/spec/router_spec.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe Pliny::Router do
@@ -5,12 +7,12 @@ describe Pliny::Router do
5
7
  def app
6
8
  Rack::Builder.new do
7
9
  use Rack::Lint
8
- use Pliny::Middleware::Versioning, default: '2', app_name: 'pliny'
10
+ use Pliny::Middleware::Versioning, default: "2", app_name: "pliny"
9
11
 
10
12
  use Pliny::Router do
11
- version '3' do
13
+ version "3" do
12
14
  mount Sinatra.new {
13
- get '/' do
15
+ get "/" do
14
16
  "API V3"
15
17
  end
16
18
  }
@@ -26,13 +28,13 @@ describe Pliny::Router do
26
28
  end
27
29
 
28
30
  it "should not run on any api" do
29
- get '/'
30
- assert_equal 'No API', last_response.body
31
+ get "/"
32
+ assert_equal "No API", last_response.body
31
33
  end
32
34
 
33
35
  it "should run on API V3" do
34
- get '/', {}, {'HTTP_ACCEPT' => 'application/vnd.pliny+json; version=3'}
35
- assert_equal 'API V3', last_response.body
36
+ get "/", {}, { "HTTP_ACCEPT" => "application/vnd.pliny+json; version=3" }
37
+ assert_equal "API V3", last_response.body
36
38
  end
37
39
  end
38
40
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # make sure this is set before Sinatra is required
2
4
  ENV["RACK_ENV"] = "test"
3
5
 
@@ -35,7 +37,7 @@ RSpec.configure do |config|
35
37
  # order dependency and want to debug it, you can fix the order by providing
36
38
  # the seed, which is printed after each run.
37
39
  # --seed 1234
38
- config.order = 'random'
40
+ config.order = "random"
39
41
 
40
42
  # the rack app to be tested with rack-test:
41
43
  def app
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "pliny/config_helpers"
2
4
 
3
5
  # Supress the "use RbConfig instead" warning.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # create Endpoints::Base so we can test subclasses generated by Pliny:
2
4
  module Endpoints
3
5
  class Base < Sinatra::Base
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pliny
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandur Leach
8
8
  - Pedro Belo
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2024-02-13 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
@@ -17,40 +16,54 @@ dependencies:
17
16
  requirements:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
- version: '6.0'
19
+ version: '7.0'
21
20
  - - "<"
22
21
  - !ruby/object:Gem::Version
23
- version: '8.0'
22
+ version: '9.0'
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
27
26
  requirements:
28
27
  - - ">="
29
28
  - !ruby/object:Gem::Version
30
- version: '6.0'
29
+ version: '7.0'
31
30
  - - "<"
32
31
  - !ruby/object:Gem::Version
33
- version: '8.0'
32
+ version: '9.0'
34
33
  - !ruby/object:Gem::Dependency
35
- name: multi_json
34
+ name: http_accept
36
35
  requirement: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '1.9'
39
+ version: '0.1'
41
40
  - - ">="
42
41
  - !ruby/object:Gem::Version
43
- version: 1.9.3
42
+ version: 0.1.5
44
43
  type: :runtime
45
44
  prerelease: false
46
45
  version_requirements: !ruby/object:Gem::Requirement
47
46
  requirements:
48
47
  - - "~>"
49
48
  - !ruby/object:Gem::Version
50
- version: '1.9'
49
+ version: '0.1'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.1.5
53
+ - !ruby/object:Gem::Dependency
54
+ name: ostruct
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
51
64
  - - ">="
52
65
  - !ruby/object:Gem::Version
53
- version: 1.9.3
66
+ version: '0'
54
67
  - !ruby/object:Gem::Dependency
55
68
  name: prmd
56
69
  requirement: !ruby/object:Gem::Requirement
@@ -77,7 +90,7 @@ dependencies:
77
90
  requirements:
78
91
  - - ">="
79
92
  - !ruby/object:Gem::Version
80
- version: '2.0'
93
+ version: '3.0'
81
94
  - - "<"
82
95
  - !ruby/object:Gem::Version
83
96
  version: '5.0'
@@ -87,30 +100,10 @@ dependencies:
87
100
  requirements:
88
101
  - - ">="
89
102
  - !ruby/object:Gem::Version
90
- version: '2.0'
103
+ version: '3.0'
91
104
  - - "<"
92
105
  - !ruby/object:Gem::Version
93
106
  version: '5.0'
94
- - !ruby/object:Gem::Dependency
95
- name: http_accept
96
- requirement: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - "~>"
99
- - !ruby/object:Gem::Version
100
- version: '0.1'
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 0.1.5
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '0.1'
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: 0.1.5
114
107
  - !ruby/object:Gem::Dependency
115
108
  name: sinatra-router
116
109
  requirement: !ruby/object:Gem::Requirement
@@ -152,95 +145,77 @@ dependencies:
152
145
  - !ruby/object:Gem::Version
153
146
  version: '2.0'
154
147
  - !ruby/object:Gem::Dependency
155
- name: rake
148
+ name: pg
156
149
  requirement: !ruby/object:Gem::Requirement
157
150
  requirements:
158
- - - "~>"
151
+ - - ">="
159
152
  - !ruby/object:Gem::Version
160
- version: '13.0'
153
+ version: '0'
161
154
  type: :development
162
155
  prerelease: false
163
156
  version_requirements: !ruby/object:Gem::Requirement
164
157
  requirements:
165
- - - "~>"
158
+ - - ">="
166
159
  - !ruby/object:Gem::Version
167
- version: '13.0'
160
+ version: '0'
168
161
  - !ruby/object:Gem::Dependency
169
- name: rack-test
162
+ name: pry
170
163
  requirement: !ruby/object:Gem::Requirement
171
164
  requirements:
172
- - - "~>"
165
+ - - ">="
173
166
  - !ruby/object:Gem::Version
174
- version: '2'
167
+ version: '0'
175
168
  type: :development
176
169
  prerelease: false
177
170
  version_requirements: !ruby/object:Gem::Requirement
178
171
  requirements:
179
- - - "~>"
172
+ - - ">="
180
173
  - !ruby/object:Gem::Version
181
- version: '2'
174
+ version: '0'
182
175
  - !ruby/object:Gem::Dependency
183
- name: rspec
176
+ name: pry-byebug
184
177
  requirement: !ruby/object:Gem::Requirement
185
178
  requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '3.1'
189
179
  - - ">="
190
180
  - !ruby/object:Gem::Version
191
- version: 3.1.0
181
+ version: '0'
192
182
  type: :development
193
183
  prerelease: false
194
184
  version_requirements: !ruby/object:Gem::Requirement
195
185
  requirements:
196
- - - "~>"
197
- - !ruby/object:Gem::Version
198
- version: '3.1'
199
186
  - - ">="
200
187
  - !ruby/object:Gem::Version
201
- version: 3.1.0
188
+ version: '0'
202
189
  - !ruby/object:Gem::Dependency
203
- name: sinatra-contrib
190
+ name: rack-test
204
191
  requirement: !ruby/object:Gem::Requirement
205
192
  requirements:
206
193
  - - ">="
207
194
  - !ruby/object:Gem::Version
208
- version: '2.0'
209
- - - "<"
210
- - !ruby/object:Gem::Version
211
- version: '5.0'
195
+ version: '0'
212
196
  type: :development
213
197
  prerelease: false
214
198
  version_requirements: !ruby/object:Gem::Requirement
215
199
  requirements:
216
200
  - - ">="
217
201
  - !ruby/object:Gem::Version
218
- version: '2.0'
219
- - - "<"
220
- - !ruby/object:Gem::Version
221
- version: '5.0'
202
+ version: '0'
222
203
  - !ruby/object:Gem::Dependency
223
- name: timecop
204
+ name: rake
224
205
  requirement: !ruby/object:Gem::Requirement
225
206
  requirements:
226
- - - "~>"
227
- - !ruby/object:Gem::Version
228
- version: '0.7'
229
207
  - - ">="
230
208
  - !ruby/object:Gem::Version
231
- version: 0.7.1
209
+ version: '0'
232
210
  type: :development
233
211
  prerelease: false
234
212
  version_requirements: !ruby/object:Gem::Requirement
235
213
  requirements:
236
- - - "~>"
237
- - !ruby/object:Gem::Version
238
- version: '0.7'
239
214
  - - ">="
240
215
  - !ruby/object:Gem::Version
241
- version: 0.7.1
216
+ version: '0'
242
217
  - !ruby/object:Gem::Dependency
243
- name: pry
218
+ name: rollbar
244
219
  requirement: !ruby/object:Gem::Requirement
245
220
  requirements:
246
221
  - - ">="
@@ -254,7 +229,7 @@ dependencies:
254
229
  - !ruby/object:Gem::Version
255
230
  version: '0'
256
231
  - !ruby/object:Gem::Dependency
257
- name: pry-byebug
232
+ name: rspec
258
233
  requirement: !ruby/object:Gem::Requirement
259
234
  requirements:
260
235
  - - ">="
@@ -268,79 +243,75 @@ dependencies:
268
243
  - !ruby/object:Gem::Version
269
244
  version: '0'
270
245
  - !ruby/object:Gem::Dependency
271
- name: pg
246
+ name: sentry-ruby
272
247
  requirement: !ruby/object:Gem::Requirement
273
248
  requirements:
274
- - - "~>"
275
- - !ruby/object:Gem::Version
276
- version: '1.0'
277
- - - "<"
249
+ - - ">="
278
250
  - !ruby/object:Gem::Version
279
- version: '2.0'
251
+ version: '0'
280
252
  type: :development
281
253
  prerelease: false
282
254
  version_requirements: !ruby/object:Gem::Requirement
283
255
  requirements:
284
- - - "~>"
285
- - !ruby/object:Gem::Version
286
- version: '1.0'
287
- - - "<"
256
+ - - ">="
288
257
  - !ruby/object:Gem::Version
289
- version: '2.0'
258
+ version: '0'
290
259
  - !ruby/object:Gem::Dependency
291
- name: rollbar
260
+ name: rubocop
292
261
  requirement: !ruby/object:Gem::Requirement
293
262
  requirements:
294
- - - "~>"
263
+ - - ">="
295
264
  - !ruby/object:Gem::Version
296
- version: '3.2'
265
+ version: '0'
297
266
  type: :development
298
267
  prerelease: false
299
268
  version_requirements: !ruby/object:Gem::Requirement
300
269
  requirements:
301
- - - "~>"
270
+ - - ">="
302
271
  - !ruby/object:Gem::Version
303
- version: '3.2'
272
+ version: '0'
304
273
  - !ruby/object:Gem::Dependency
305
274
  name: sequel
306
275
  requirement: !ruby/object:Gem::Requirement
307
276
  requirements:
308
- - - "~>"
309
- - !ruby/object:Gem::Version
310
- version: '5.4'
311
- - - "<"
277
+ - - ">="
312
278
  - !ruby/object:Gem::Version
313
- version: '6.0'
279
+ version: '0'
314
280
  type: :development
315
281
  prerelease: false
316
282
  version_requirements: !ruby/object:Gem::Requirement
317
283
  requirements:
318
- - - "~>"
319
- - !ruby/object:Gem::Version
320
- version: '5.4'
321
- - - "<"
284
+ - - ">="
322
285
  - !ruby/object:Gem::Version
323
- version: '6.0'
286
+ version: '0'
324
287
  - !ruby/object:Gem::Dependency
325
- name: rubocop
288
+ name: sinatra-contrib
326
289
  requirement: !ruby/object:Gem::Requirement
327
290
  requirements:
328
- - - "~>"
329
- - !ruby/object:Gem::Version
330
- version: '0.52'
331
291
  - - ">="
332
292
  - !ruby/object:Gem::Version
333
- version: 0.52.1
293
+ version: '0'
334
294
  type: :development
335
295
  prerelease: false
336
296
  version_requirements: !ruby/object:Gem::Requirement
337
297
  requirements:
338
- - - "~>"
298
+ - - ">="
339
299
  - !ruby/object:Gem::Version
340
- version: '0.52'
300
+ version: '0'
301
+ - !ruby/object:Gem::Dependency
302
+ name: timecop
303
+ requirement: !ruby/object:Gem::Requirement
304
+ requirements:
341
305
  - - ">="
342
306
  - !ruby/object:Gem::Version
343
- version: 0.52.1
307
+ version: '0'
308
+ type: :development
309
+ prerelease: false
310
+ version_requirements: !ruby/object:Gem::Requirement
311
+ requirements:
312
+ - - ">="
313
+ - !ruby/object:Gem::Version
314
+ version: '0'
344
315
  description: Pliny is a set of base classes and helpers to help developers write excellent
345
316
  APIs in Sinatra
346
317
  email:
@@ -373,6 +344,7 @@ files:
373
344
  - lib/pliny/db_support.rb
374
345
  - lib/pliny/error_reporters.rb
375
346
  - lib/pliny/error_reporters/rollbar.rb
347
+ - lib/pliny/error_reporters/sentry.rb
376
348
  - lib/pliny/errors.rb
377
349
  - lib/pliny/helpers/encode.rb
378
350
  - lib/pliny/helpers/params.rb
@@ -415,7 +387,7 @@ files:
415
387
  - lib/template/.env.test.erb
416
388
  - lib/template/.gitignore
417
389
  - lib/template/.rspec
418
- - lib/template/.rubocop.yml
390
+ - lib/template/.rubocop_template.yml
419
391
  - lib/template/.ruby-version
420
392
  - lib/template/Gemfile
421
393
  - lib/template/LICENSE
@@ -431,7 +403,7 @@ files:
431
403
  - lib/template/config/initializers/database.rb
432
404
  - lib/template/config/initializers/log.rb
433
405
  - lib/template/config/initializers/metrics.rb
434
- - lib/template/config/initializers/rollbar.rb
406
+ - lib/template/config/initializers/sentry.rb
435
407
  - lib/template/config/puma.rb
436
408
  - lib/template/db/schema.sql
437
409
  - lib/template/db/seeds.rb
@@ -468,6 +440,7 @@ files:
468
440
  - spec/config_helpers_spec.rb
469
441
  - spec/db_support_spec.rb
470
442
  - spec/error_reporters/rollbar_spec.rb
443
+ - spec/error_reporters/sentry_spec.rb
471
444
  - spec/error_reporters_spec.rb
472
445
  - spec/errors_spec.rb
473
446
  - spec/helpers/encode_spec.rb
@@ -497,7 +470,6 @@ homepage: https://github.com/interagent/pliny
497
470
  licenses:
498
471
  - MIT
499
472
  metadata: {}
500
- post_install_message:
501
473
  rdoc_options: []
502
474
  require_paths:
503
475
  - lib
@@ -505,15 +477,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
505
477
  requirements:
506
478
  - - ">="
507
479
  - !ruby/object:Gem::Version
508
- version: '0'
480
+ version: '3.2'
509
481
  required_rubygems_version: !ruby/object:Gem::Requirement
510
482
  requirements:
511
483
  - - ">="
512
484
  - !ruby/object:Gem::Version
513
485
  version: '0'
514
486
  requirements: []
515
- rubygems_version: 3.5.3
516
- signing_key:
487
+ rubygems_version: 4.0.3
517
488
  specification_version: 4
518
489
  summary: Basic tooling to support API apps in Sinatra
519
490
  test_files: []
@@ -1,12 +0,0 @@
1
- require "pliny/error_reporters/rollbar"
2
-
3
- Pliny::ErrorReporters.error_reporters << Pliny::ErrorReporters::Rollbar
4
-
5
- Rollbar.configure do |config|
6
- config.enabled = ENV.key?("ROLLBAR_ACCESS_TOKEN")
7
- config.disable_rack_monkey_patch = true
8
- config.access_token = ENV["ROLLBAR_ACCESS_TOKEN"]
9
- config.environment = ENV["ROLLBAR_ENV"]
10
- config.logger = Pliny::RollbarLogger.new
11
- config.use_sucker_punch
12
- end