rack-parser 0.4.0 → 0.5.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2bfc0d8a49d8bbfbea8feb0f9760dd7ddc4ab9a4
4
+ data.tar.gz: b2012859f92dc0317ca7d3db060ed82aececaf31
5
+ SHA512:
6
+ metadata.gz: dcbf8aad748d39e46dd18557c44184bd5500ca38d55420f5e30f16b6b8aabfbc4577ccae569658c4c269b74ed80d91d47dfc9c3b22c8926fde5c6ea88988a152
7
+ data.tar.gz: e73679c51a235e0983fdca3bbb9b2fded19ebb8d0ec62da4ae486d35340c702df403314f6bf7adaa219f36cbad1746397eba9158e8c19f299d1e3ca664552094
data/README.md CHANGED
@@ -27,7 +27,7 @@ In a Sinatra or [Padrino](http://padrinorb.com) application, it would probably b
27
27
  ```ruby
28
28
  # app.rb
29
29
 
30
- use Rack::Parser :parsers => { 'application/json' => proc { |data| JSON.parse data },
30
+ use Rack::Parser, :parsers => { 'application/json' => proc { |data| JSON.parse data },
31
31
  'application/xml' => proc { |data| XML.parse data },
32
32
  %r{msgpack} => proc { |data| Msgpack.parse data }
33
33
  }
@@ -67,6 +67,18 @@ override the default response as well.
67
67
 
68
68
  If no content_type error handling response is present, it will return `400`
69
69
 
70
+ ### Regex Matching ###
71
+
72
+ With version `0.4.0`, you can specify regex matches for the content
73
+ types that you want the `parsers` and `handlers` to match.
74
+
75
+ ```ruby
76
+ parser = proc { |data| JSON.parse data }
77
+ handler = proc { |e, type| [400, {}, 'boop'] }
78
+ use Rack::Parser, :parsers => { %r{json} => parser },
79
+ :handlers => { %r{heyyyy} => handler }
80
+ ```
81
+
70
82
  ## Inspirations ##
71
83
 
72
84
  This project came to being because of:
@@ -87,6 +99,7 @@ This project came to being because of:
87
99
  * [Moonsik Kang](https://github.com/deepblue) - skip rack parser for content types that are not explicitly set.
88
100
  * [Guillermo Iguaran](https://github.com/guilleiguaran) - Updating `multi_xml` version dependency for XML/YAML exploit
89
101
  * [Doug Orleans](https://github.com/dougo) - Handle only post-body parsing errors and let upstream errors propogate downstream
102
+ * [Akshay Moghe](https://github.com/amoghe) - Make default error handler rack compliant by responding to #each
90
103
 
91
104
  ## Copyright
92
105
 
@@ -6,7 +6,7 @@ module Rack
6
6
  FORM_HASH = 'rack.request.form_hash'.freeze
7
7
 
8
8
  JSON_PARSER = proc { |data| JSON.parse data }
9
- ERROR_HANDLER = proc { |err, type| [400, {}, ''] }
9
+ ERROR_HANDLER = proc { |err, type| [400, {}, ['']] }
10
10
 
11
11
  attr_reader :parsers, :handlers, :logger
12
12
 
@@ -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.4.0"
6
+ s.version = "0.5.0"
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"
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Arthur Chiu
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-16 00:00:00.000000000 Z
11
+ date: 2013-12-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rack
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: minitest
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rack-test
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: Rack Middleware for parsing post body data for json, xml and various
@@ -78,28 +71,28 @@ files:
78
71
  - spec/spec_helper.rb
79
72
  homepage: https://www.github.com/achiu/rack-parser
80
73
  licenses: []
74
+ metadata: {}
81
75
  post_install_message:
82
76
  rdoc_options: []
83
77
  require_paths:
84
78
  - lib
85
79
  required_ruby_version: !ruby/object:Gem::Requirement
86
- none: false
87
80
  requirements:
88
- - - ! '>='
81
+ - - '>='
89
82
  - !ruby/object:Gem::Version
90
83
  version: '0'
91
84
  required_rubygems_version: !ruby/object:Gem::Requirement
92
- none: false
93
85
  requirements:
94
- - - ! '>='
86
+ - - '>='
95
87
  - !ruby/object:Gem::Version
96
88
  version: '0'
97
89
  requirements: []
98
90
  rubyforge_project: rack-parser
99
- rubygems_version: 1.8.23
91
+ rubygems_version: 2.0.3
100
92
  signing_key:
101
- specification_version: 3
93
+ specification_version: 4
102
94
  summary: Rack Middleware for parsing post body data
103
95
  test_files:
104
96
  - spec/parser_spec.rb
105
97
  - spec/spec_helper.rb
98
+ has_rdoc: