rack-parser 0.1.1 → 0.1.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/README.md CHANGED
@@ -98,13 +98,14 @@ This project came to being because of:
98
98
 
99
99
  ## External Sources/Documentations
100
100
 
101
- * [Sinatra book contrib](https://github.com/sinatra/sinatra-book-contrib/blob/master/middleware/rack_parser.md) - mini tutorial on using rack-parser (thanks to [Eric Gjertsen](https://github.com/ericgj))
101
+ * [Sinatra recipes](https://github.com/sinatra/sinatra-recipes/blob/master/middleware/rack_parser.md) - mini tutorial on using rack-parser (thanks to [Eric Gjertsen](https://github.com/ericgj))
102
102
 
103
103
 
104
104
  ## Contributors ##
105
105
 
106
106
  * [Stephen Becker IV](https://github.com/sbeckeriv) - For initial custom error response handling work.
107
107
  * [Tom May](https://github.com/tommay) - skip loading post body unless content type is set.
108
+ * [Moonsik Kang](https://github.com/deepblue) - skip rack parser for content types that are not explicitly set.
108
109
 
109
110
  ## Copyright
110
111
 
data/lib/rack/parser.rb CHANGED
@@ -63,6 +63,7 @@ module Rack
63
63
 
64
64
  def _call(env)
65
65
  content_type = Rack::Request.new(env).media_type
66
+ return @app.call(env) if !@content_types[content_type] && !@error_responses[content_type]
66
67
  body = env[POST_BODY].read if content_type
67
68
  return @app.call(env) if (body.respond_to?(:empty?) ? body.empty? : !body) # Send it down the stack immediately
68
69
  begin
data/rack-parser.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "rack-parser"
6
- s.version = "0.1.1"
6
+ s.version = "0.1.2"
7
7
  s.authors = ["Arthur Chiu"]
8
8
  s.email = ["mr.arthur.chiu@gmail.com"]
9
9
  s.homepage = "https://www.github.com/achiu/rack-parser"
data/test/parser_test.rb CHANGED
@@ -62,7 +62,7 @@ context "Rack::Parser" do
62
62
  end
63
63
 
64
64
  asserts(:status).equals 400
65
- asserts(:body).equals "{\"errors\":\"710: unexpected token at 'fuuuuuuuuuu'\"}"
65
+ asserts(:body).matches %r!{"errors":"\d+: unexpected token at 'fuuuuuuuuuu'"}!
66
66
  end
67
67
 
68
68
  context "with custom default error message" do
@@ -82,4 +82,13 @@ context "Rack::Parser" do
82
82
  asserts(:body).matches %r{Hello world}
83
83
  end
84
84
 
85
+ context "for get with unconcerned content_type" do
86
+ setup do
87
+ post '/post', 'foo=bar', { 'CONTENT_TYPE' => 'application/x-www-form-urlencoded' }
88
+ end
89
+
90
+ asserts(:status).equals 200
91
+ asserts(:body).equals({'foo' => 'bar'}.inspect)
92
+ end
93
+
85
94
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-08 00:00:00.000000000Z
12
+ date: 2011-10-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
- requirement: &2173199560 !ruby/object:Gem::Requirement
16
+ requirement: &2152479300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2173199560
24
+ version_requirements: *2152479300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: multi_json
27
- requirement: &2173199120 !ruby/object:Gem::Requirement
27
+ requirement: &2152478860 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2173199120
35
+ version_requirements: *2152478860
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: multi_xml
38
- requirement: &2173198700 !ruby/object:Gem::Requirement
38
+ requirement: &2152478400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2173198700
46
+ version_requirements: *2152478400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: riot
49
- requirement: &2173198280 !ruby/object:Gem::Requirement
49
+ requirement: &2152477960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2173198280
57
+ version_requirements: *2152477960
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rack-test
60
- requirement: &2173197860 !ruby/object:Gem::Requirement
60
+ requirement: &2152477540 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2173197860
68
+ version_requirements: *2152477540
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: json
71
- requirement: &2173197440 !ruby/object:Gem::Requirement
71
+ requirement: &2152477120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2173197440
79
+ version_requirements: *2152477120
80
80
  description: Rack Middleware for parsing post body data for json, xml and various
81
81
  content types
82
82
  email:
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  version: '0'
115
115
  requirements: []
116
116
  rubyforge_project: rack-parser
117
- rubygems_version: 1.8.6
117
+ rubygems_version: 1.8.10
118
118
  signing_key:
119
119
  specification_version: 3
120
120
  summary: Rack Middleware for parsing post body data