qeweney 0.21 → 0.22
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/TODO.md +4 -0
- data/lib/qeweney/errors.rb +6 -0
- data/lib/qeweney/mime_types.rb +1 -1
- data/lib/qeweney/mock_adapter.rb +2 -0
- data/lib/qeweney/request.rb +1 -1
- data/lib/qeweney/request_info.rb +9 -6
- data/lib/qeweney/version.rb +1 -1
- data/lib/qeweney.rb +3 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83fd3aeea3a2ab2fff17ca871189e60098168523583b801423a6d2ecd21d5a9f
|
4
|
+
data.tar.gz: 53dcc37653949d20a6324d5e24df1f5b827a56ce134dd69c168369242917f825
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cee5ee51f356cddcff578d2cd2e582ea0f293ce2d898e43022fe9ab83d0e812423473f047701306796f70ac53833818b125f7308a438c6a05d18a00465e9e93
|
7
|
+
data.tar.gz: 6de0f052bc1077e665d5c5bd3f6fc8de59442e5944ddc68c3b9ceca873cfdd2e6ed47880bb5e0a89dbb36cbfc802936f3f15c121e82e59922515f000bd5d7b31
|
data/CHANGELOG.md
CHANGED
data/TODO.md
CHANGED
data/lib/qeweney/mime_types.rb
CHANGED
data/lib/qeweney/mock_adapter.rb
CHANGED
data/lib/qeweney/request.rb
CHANGED
data/lib/qeweney/request_info.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
require 'uri'
|
4
4
|
require 'escape_utils'
|
5
5
|
|
6
|
+
require_relative './errors'
|
7
|
+
|
6
8
|
module Qeweney
|
7
9
|
module RequestInfoMethods
|
8
10
|
def host
|
@@ -126,12 +128,13 @@ module Qeweney
|
|
126
128
|
when /^application\/x-www-form-urlencoded/
|
127
129
|
parse_urlencoded_form_data(body)
|
128
130
|
else
|
129
|
-
raise "Unsupported form data content type: #{content_type}"
|
131
|
+
raise BadRequestError, "Unsupported form data content type: #{content_type}"
|
130
132
|
end
|
131
133
|
end
|
132
134
|
|
133
135
|
def parse_multipart_form_data(body, boundary)
|
134
136
|
parts = body.split(boundary)
|
137
|
+
raise BadRequestError, 'Invalid form data' if parts.size < 2
|
135
138
|
parts.each_with_object({}) do |p, h|
|
136
139
|
next if p.empty? || p == "--\r\n"
|
137
140
|
|
@@ -174,7 +177,7 @@ module Qeweney
|
|
174
177
|
[part, headers]
|
175
178
|
end
|
176
179
|
|
177
|
-
PARAMETER_RE = /^(
|
180
|
+
PARAMETER_RE = /^([^=]+)(?:=(.*))?$/.freeze
|
178
181
|
MAX_PARAMETER_NAME_SIZE = 256
|
179
182
|
MAX_PARAMETER_VALUE_SIZE = 2**20 # 1MB
|
180
183
|
|
@@ -183,15 +186,15 @@ module Qeweney
|
|
183
186
|
|
184
187
|
body.force_encoding(Encoding::UTF_8) unless body.encoding == Encoding::UTF_8
|
185
188
|
body.split('&').each_with_object({}) do |i, m|
|
186
|
-
raise 'Invalid parameter format' unless i =~ PARAMETER_RE
|
189
|
+
raise BadRequestError, 'Invalid parameter format' unless i =~ PARAMETER_RE
|
187
190
|
|
188
191
|
k = Regexp.last_match(1)
|
189
|
-
raise 'Invalid parameter size' if k.size > MAX_PARAMETER_NAME_SIZE
|
192
|
+
raise BadRequestError, 'Invalid parameter size' if k.size > MAX_PARAMETER_NAME_SIZE
|
190
193
|
|
191
194
|
v = Regexp.last_match(2)
|
192
|
-
raise 'Invalid parameter size' if v.size > MAX_PARAMETER_VALUE_SIZE
|
195
|
+
raise BadRequestError, 'Invalid parameter size' if v && v.size > MAX_PARAMETER_VALUE_SIZE
|
193
196
|
|
194
|
-
m[EscapeUtils.unescape_uri(k)] = EscapeUtils.unescape_uri(v)
|
197
|
+
m[EscapeUtils.unescape_uri(k)] = v ? EscapeUtils.unescape_uri(v) : true
|
195
198
|
end
|
196
199
|
end
|
197
200
|
end
|
data/lib/qeweney/version.rb
CHANGED
data/lib/qeweney.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qeweney
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.22'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: escape_utils
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- TODO.md
|
97
97
|
- examples/routing_benchmark.rb
|
98
98
|
- lib/qeweney.rb
|
99
|
+
- lib/qeweney/errors.rb
|
99
100
|
- lib/qeweney/mime_types.rb
|
100
101
|
- lib/qeweney/mock_adapter.rb
|
101
102
|
- lib/qeweney/rack.rb
|
@@ -136,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
137
|
- !ruby/object:Gem::Version
|
137
138
|
version: '0'
|
138
139
|
requirements: []
|
139
|
-
rubygems_version: 3.6.
|
140
|
+
rubygems_version: 3.6.9
|
140
141
|
specification_version: 4
|
141
142
|
summary: Qeweney - cross library HTTP request / response API
|
142
143
|
test_files: []
|