robust_params_parser 0.0.3

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.
Files changed (5) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +45 -0
  3. data/Rakefile +19 -0
  4. data/lib/robust_params_parser.rb +23 -0
  5. metadata +102 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OTZkNzY1ZTc3OGM1NDk5NWVlMmRjMjQ4YjVjODY2M2UyM2FhMjNjZQ==
5
+ data.tar.gz: !binary |-
6
+ NDYyZmFhYTAwZDQ5MzcwOTkxOWRlNTZiZWZjNTI1YjQyODBkOGE2MQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NzFmNmZmODhmZDYyNTUzMWEzYzcyZWNiZWI0MmJlZTFmOWJlY2Q4Y2FkNWY2
10
+ ZTk2OTkwZWQ3YTI5NTFjYjMwZGMwMWJkNWMxZTY2YWRjYWU2MDgzODRlNTZl
11
+ N2VkODlmMDVmZWFjOTkyMWNmMzg2OWVjODgyMjIyNGVlZmU4MmY=
12
+ data.tar.gz: !binary |-
13
+ OWQxOGQyZDM3NWU3MDk0ZWQ5ODQ3NDY2NzljMWVmMGQyODNhZDAzYmIwYWVj
14
+ YTIwZTcwOGJlMzVhMWZlODk0YTMwODc1MWFhODZkYjM3YmIyNGFiZDdjYzc4
15
+ ODIxOTQyOTA0NjEyYjY3ZjU1Y2M5Yzk0MmY4MmVkN2UyNTgzODI=
data/README.md ADDED
@@ -0,0 +1,45 @@
1
+ # Params parser Rack middleware able to handle parsing errors
2
+
3
+ Temporary workaround for https://github.com/rails/rails/pull/7424
4
+
5
+ ## Caveats
6
+
7
+ Only works if you're using `MultiJson`.
8
+
9
+ ## Installation
10
+
11
+ ```ruby
12
+ # In your Gemfile
13
+ gem 'robust_params_parser'
14
+
15
+ # In your config/application.rb
16
+ config.middleware.swap ActionDispatch::ParamsParser, ::RobustParamsParser, {}
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ Just make a POST with Content-Type 'application/json' and an invalid JSON as payload, which
22
+ will result in a 400 status code and an empty body response.
23
+
24
+ ## MIT-License
25
+
26
+ Copyright 2013 Kostiantyn Kahanskyi
27
+
28
+ Permission is hereby granted, free of charge, to any person obtaining
29
+ a copy of this software and associated documentation files (the
30
+ "Software"), to deal in the Software without restriction, including
31
+ without limitation the rights to use, copy, modify, merge, publish,
32
+ distribute, sublicense, and/or sell copies of the Software, and to
33
+ permit persons to whom the Software is furnished to do so, subject to
34
+ the following conditions:
35
+
36
+ The above copyright notice and this permission notice shall be
37
+ included in all copies or substantial portions of the Software.
38
+
39
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
41
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
43
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
44
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
45
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env rake
2
+
3
+ begin
4
+ require 'bundler/setup'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
9
+ Bundler::GemHelper.install_tasks
10
+
11
+ require 'rake/testtask'
12
+
13
+ Rake::TestTask.new do |t|
14
+ t.libs << 'test'
15
+ t.test_files = FileList['test/*_test.rb']
16
+ t.verbose = true
17
+ end
18
+
19
+ task :default => :test
@@ -0,0 +1,23 @@
1
+ require 'multi_json'
2
+
3
+ class RobustParamsParser < ActionDispatch::ParamsParser
4
+ DecodeError = Class.new(::MultiJson::DecodeError)
5
+
6
+ def initialize(app, parsers={})
7
+ super(app, parsers)
8
+ end
9
+
10
+ def call(env)
11
+ super(env)
12
+ rescue RobustParamsParser::DecodeError
13
+ [400, {}, ['Bad Request']]
14
+ end
15
+
16
+ private
17
+
18
+ def parse_formatted_parameters(env)
19
+ super(env)
20
+ rescue ::MultiJson::DecodeError
21
+ raise RobustParamsParser::DecodeError
22
+ end
23
+ end
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: robust_params_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Kostiantyn Kahanskyi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: multi_json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 3.2.8
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 3.2.8
41
+ - !ruby/object:Gem::Dependency
42
+ name: rack-test
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Params parser Rack middleware able to handle parsing errors
70
+ email:
71
+ - kostiantyn.kahanskyi@googlemail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - lib/robust_params_parser.rb
77
+ - Rakefile
78
+ - README.md
79
+ homepage: https://github.com/kostia/robust_params_parser
80
+ licenses: []
81
+ metadata: {}
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 2.0.3
99
+ signing_key:
100
+ specification_version: 4
101
+ summary: Params parser Rack middleware able to handle parsing errors
102
+ test_files: []