rack-remove-param 0.0.1

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,31 @@
1
+ module Rack
2
+ class RemoveParam
3
+ def initialize(app, param_to_filter)
4
+ @param_to_filter = param_to_filter
5
+ @app = app
6
+ end
7
+
8
+ def call(env)
9
+ dup._call(env)
10
+ end
11
+
12
+ def _call(env)
13
+ @request = Rack::Request.new(env)
14
+
15
+ if @request.post?
16
+ delete_param(@request.params, @param_to_filter)
17
+ env["rack.request.form_hash"] = @request.params
18
+ env["rack.request.form_vars"] = Rack::Utils.build_query(@request.params)
19
+ end
20
+
21
+ @status, @headers, @body = @app.call(env)
22
+ [@status, @headers, @body]
23
+ end
24
+
25
+ private
26
+ def delete_param(hash, param)
27
+ hash.delete(param)
28
+ hash.each{|k, value| delete_param(value, param) if value.is_a?(Hash) }
29
+ end
30
+ end
31
+ end
@@ -0,0 +1 @@
1
+ require 'rack/remove-param'
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rack-remove-param
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Thomas Pomfret
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-09-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70257290096640 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70257290096640
25
+ - !ruby/object:Gem::Dependency
26
+ name: rack
27
+ requirement: &70257290125080 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70257290125080
36
+ description: Remove POST params from reqs
37
+ email:
38
+ - thomas@mintdigital.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - lib/rack-remove-param.rb
44
+ - lib/rack/remove-param.rb
45
+ homepage: http://github.com/mintdigital/rack-remove-param
46
+ licenses: []
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ requirements: []
64
+ rubyforge_project:
65
+ rubygems_version: 1.8.11
66
+ signing_key:
67
+ specification_version: 3
68
+ summary: Filter out unwanted params
69
+ test_files: []