sinatra-rest-helpers 0.5.1 → 0.5.2
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.
- data/VERSION +1 -1
- data/lib/sinatra/rest_helpers.rb +2 -0
- data/sinatra-rest-helpers.gemspec +2 -2
- data/spec/sinatra_rest_helpers_spec.rb +9 -0
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/lib/sinatra/rest_helpers.rb
CHANGED
@@ -58,6 +58,8 @@ module Sinatra
|
|
58
58
|
halt 400, "Input data size must not be empty and must not exceed #{options[:limit]} bytes." if (options[:limit] && input_data.length > options[:limit]) || input_data.length == 0
|
59
59
|
parser_selector.select(mime_type).load(input_data)
|
60
60
|
end
|
61
|
+
rescue StandardError => e
|
62
|
+
halt 400, "#{e.class.name}: #{e.message}"
|
61
63
|
end
|
62
64
|
|
63
65
|
def compute_etag(*args) # :nodoc:
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sinatra-rest-helpers}
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Cyril Rohr"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-30}
|
13
13
|
s.description = %q{A set of helpers for sinatra apps that expose REST resources.}
|
14
14
|
s.email = %q{cyril.rohr@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -134,6 +134,15 @@ describe "SinatraRestHelpers" do
|
|
134
134
|
app.should_receive(:halt).with(400, /must provide a Content-Type HTTP header/)
|
135
135
|
app.test_parse_input_data!(parser_selector)
|
136
136
|
end
|
137
|
+
it "should return 400 if the request's body is not parseable" do
|
138
|
+
require 'json'
|
139
|
+
parser_selector = mock("parser_selector")
|
140
|
+
request = mock("request", :env => {'rack.input' => StringIO.new('{"foo": bar"}'), 'CONTENT_TYPE' => 'application/json'})
|
141
|
+
app = App.new(request)
|
142
|
+
parser_selector.should_receive(:select).with('application/json').and_return(JSON)
|
143
|
+
app.should_receive(:halt).with(400, /unexpected token at '\{"foo": bar"\}'/)
|
144
|
+
app.test_parse_input_data!(parser_selector)
|
145
|
+
end
|
137
146
|
end
|
138
147
|
|
139
148
|
describe ":compute_etag" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-rest-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyril Rohr
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-30 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|