pliny 0.2.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b3d302c95bbb9e4efdc88a49e8a5b776e6da923
4
- data.tar.gz: dd49138a22449f1ac5311ecface0e021e3a61e2c
3
+ metadata.gz: 59e9993f316b4360e09b0e9e60c9227daad19a00
4
+ data.tar.gz: 4de44f2103e728082c0c611d97d5e4a43695588e
5
5
  SHA512:
6
- metadata.gz: 114580f793a3db337e548ca506e85019d35376d4d6d59fcbc0501c45e3e6b52a7495e5074bdaaf58f5f54d19e10c68ebb478f346d36a2ccc1be713293cd07301
7
- data.tar.gz: 60e5461d06bce0f370b6a2640731709623154e3bdaee6a7f6676f04898e194f1b1f662638c3cdd585a6a155a1d7bf4ca749750e6bed2e67611f2b6e15fbf4a6d
6
+ metadata.gz: 4361dee922785399136ce3a3a76e3ac6ec6d075700a4eb485fe6f6536bd9535676bee13424d41e7593110d8ef55843d9de23cce7da8c0ee155645f1ea1951fbf
7
+ data.tar.gz: 1a72822bb718edb5d5c5918b18b8b032272cc4c19c25c415cfb50a0cd1fa19700822bb1a01683034bd4f73922e8c3756f2b6ea09b1a134e4f58a764170d6540f
data/lib/pliny/errors.rb CHANGED
@@ -3,6 +3,12 @@ module Pliny
3
3
  class Error < StandardError
4
4
  attr_accessor :id
5
5
 
6
+ def self.render(error)
7
+ headers = { "Content-Type" => "application/json; charset=utf-8" }
8
+ data = { id: error.id, message: error.message, status: error.status }
9
+ [error.status, headers, [MultiJson.encode(data)]]
10
+ end
11
+
6
12
  def initialize(message, id)
7
13
  @id = id
8
14
  super(message)
@@ -10,10 +16,7 @@ module Pliny
10
16
  end
11
17
 
12
18
  class HTTPStatusError < Error
13
- attr_reader :status
14
-
15
- # so that Sinatra respects are status code when catching an exception
16
- alias :http_status :status
19
+ attr_accessor :status
17
20
 
18
21
  def initialize(message = nil, id = nil, status = nil)
19
22
  meta = Pliny::Errors::META[self.class]
@@ -8,13 +8,13 @@ module Pliny::Middleware
8
8
  def call(env)
9
9
  @app.call(env)
10
10
  rescue Pliny::Errors::Error => e
11
- render(e, env)
11
+ Pliny::Errors::Error.render(e)
12
12
  rescue Exception => e
13
13
  if @raise
14
14
  raise
15
15
  else
16
16
  dump_error(e, env)
17
- render(Pliny::Errors::InternalServerError.new, env)
17
+ Pliny::Errors::Error.render(Pliny::Errors::InternalServerError.new)
18
18
  end
19
19
  end
20
20
 
@@ -25,11 +25,5 @@ module Pliny::Middleware
25
25
  message = ["#{e.class} - #{e.message}:", *e.backtrace].join("\n\t")
26
26
  env['rack.errors'].puts(message)
27
27
  end
28
-
29
- def render(e, env)
30
- headers = { "Content-Type" => "application/json; charset=utf-8" }
31
- error = { id: e.id, message: e.message, status: e.status }
32
- [e.status, headers, [MultiJson.encode(error)]]
33
- end
34
28
  end
35
29
  end
data/lib/pliny/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pliny
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -14,6 +14,10 @@ module Endpoints
14
14
  register Sinatra::Reloader
15
15
  end
16
16
 
17
+ error Pliny::Errors::Error do
18
+ Pliny::Errors::Error.render(env["sinatra.error"])
19
+ end
20
+
17
21
  not_found do
18
22
  content_type :json
19
23
  status 404
@@ -6,6 +6,10 @@ describe Pliny::Extensions::Instruments do
6
6
  run Sinatra.new {
7
7
  register Pliny::Extensions::Instruments
8
8
 
9
+ error Pliny::Errors::Error do
10
+ Pliny::Errors::Error.render(env["sinatra.error"])
11
+ end
12
+
9
13
  get "/apps/:id" do
10
14
  status 201
11
15
  "hi"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pliny
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandur Leach
@@ -175,6 +175,9 @@ dependencies:
175
175
  name: rake
176
176
  requirement: !ruby/object:Gem::Requirement
177
177
  requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.8'
178
181
  - - ">="
179
182
  - !ruby/object:Gem::Version
180
183
  version: 0.8.7
@@ -182,6 +185,9 @@ dependencies:
182
185
  prerelease: false
183
186
  version_requirements: !ruby/object:Gem::Requirement
184
187
  requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: '0.8'
185
191
  - - ">="
186
192
  - !ruby/object:Gem::Version
187
193
  version: 0.8.7
@@ -189,6 +195,9 @@ dependencies:
189
195
  name: rack-test
190
196
  requirement: !ruby/object:Gem::Requirement
191
197
  requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '0.6'
192
201
  - - ">="
193
202
  - !ruby/object:Gem::Version
194
203
  version: 0.6.2
@@ -196,6 +205,9 @@ dependencies:
196
205
  prerelease: false
197
206
  version_requirements: !ruby/object:Gem::Requirement
198
207
  requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: '0.6'
199
211
  - - ">="
200
212
  - !ruby/object:Gem::Version
201
213
  version: 0.6.2
@@ -203,6 +215,9 @@ dependencies:
203
215
  name: rr
204
216
  requirement: !ruby/object:Gem::Requirement
205
217
  requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: '1.1'
206
221
  - - ">="
207
222
  - !ruby/object:Gem::Version
208
223
  version: 1.1.2
@@ -210,6 +225,9 @@ dependencies:
210
225
  prerelease: false
211
226
  version_requirements: !ruby/object:Gem::Requirement
212
227
  requirements:
228
+ - - "~>"
229
+ - !ruby/object:Gem::Version
230
+ version: '1.1'
213
231
  - - ">="
214
232
  - !ruby/object:Gem::Version
215
233
  version: 1.1.2
@@ -217,6 +235,9 @@ dependencies:
217
235
  name: timecop
218
236
  requirement: !ruby/object:Gem::Requirement
219
237
  requirements:
238
+ - - "~>"
239
+ - !ruby/object:Gem::Version
240
+ version: '0.7'
220
241
  - - ">="
221
242
  - !ruby/object:Gem::Version
222
243
  version: 0.7.1
@@ -224,6 +245,9 @@ dependencies:
224
245
  prerelease: false
225
246
  version_requirements: !ruby/object:Gem::Requirement
226
247
  requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '0.7'
227
251
  - - ">="
228
252
  - !ruby/object:Gem::Version
229
253
  version: 0.7.1