sinatra-rest-addons 0.1.3 → 0.1.4
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/routes.rb +6 -2
- data/sinatra-rest-addons.gemspec +2 -2
- data/test/test_routes.rb +15 -0
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/lib/sinatra/rest/routes.rb
CHANGED
@@ -98,11 +98,15 @@ module Sinatra
|
|
98
98
|
when /^application\/x-www-form-urlencoded/i
|
99
99
|
request.env['sinatra.decoded_input'] = request.env['rack.request.form_hash']
|
100
100
|
else
|
101
|
-
|
101
|
+
content = ""
|
102
|
+
request.env['rack.input'].each do |block|
|
103
|
+
content.concat(block)
|
104
|
+
break if content.length > size_range.end
|
105
|
+
end
|
106
|
+
if not size_range.include?(content.length)
|
102
107
|
content_type :txt
|
103
108
|
halt 400, "Input data size must be between #{size_range.begin} and #{size_range.end} bytes."
|
104
109
|
else
|
105
|
-
content = request.env['rack.input'].read
|
106
110
|
request.env['sinatra.decoded_input'] = parsing_proc.call(mime_type, content)
|
107
111
|
end
|
108
112
|
end
|
data/sinatra-rest-addons.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sinatra-rest-addons}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.4"
|
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-11-
|
12
|
+
s.date = %q{2009-11-23}
|
13
13
|
s.description = %q{A set of helpers and extensions for sinatra apps that expose REST resources.}
|
14
14
|
s.email = %q{cyril.rohr@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/test/test_routes.rb
CHANGED
@@ -161,6 +161,21 @@ class RoutesTest < Test::Unit::TestCase
|
|
161
161
|
assert_equal JSON.dump(input), last_response.body
|
162
162
|
assert_equal 'application/json', last_response.headers['Content-Type']
|
163
163
|
end
|
164
|
+
test "should work" do
|
165
|
+
input = "{\"walltime\":3600,\"resources\":\"/nodes=1\",\"at\":1258552306,\"on_launch\":{\"in\":\"/home/crohr\",\"do\":\"id\"}}"
|
166
|
+
mock_app {
|
167
|
+
register Sinatra::REST::Routes
|
168
|
+
post '/', :decode => [PARSING_PROC, 2...3000] do
|
169
|
+
content_type 'application/json'
|
170
|
+
JSON.dump request.env['sinatra.decoded_input']
|
171
|
+
end
|
172
|
+
}
|
173
|
+
post '/', input, {'CONTENT_TYPE' => "application/json"}
|
174
|
+
p last_response.body
|
175
|
+
assert_equal 200, last_response.status
|
176
|
+
assert_equal JSON.parse(input), JSON.parse(last_response.body)
|
177
|
+
assert_equal 'application/json', last_response.headers['Content-Type']
|
178
|
+
end
|
164
179
|
test "should set the decoded input to the params hash already decoded by Sinatra, if the request's content type is application/x-www-form-urlencoded" do
|
165
180
|
input = {"key1" => ["value1", "value2"]}
|
166
181
|
mock_app {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-rest-addons
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
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-11-
|
12
|
+
date: 2009-11-23 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|