qeweney 0.8.4 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f42e3096a55b17945a57c5251356358d001c0dffccd946b6d15e45197a2b14e7
4
- data.tar.gz: 461d3ee59c50da3600f9dbb77240de119a796e720cfb3e5887f872e472619eb6
3
+ metadata.gz: 1fbf7ec4eb0c73fef2003190fd086c46fff0edc74ab4544c5a36b7d6fcce4041
4
+ data.tar.gz: 328254edf151b4ce1acc201438b315eb6569c96868b84b9160a2ed0ff0636870
5
5
  SHA512:
6
- metadata.gz: 2b8767bb2d9c537d612270d14b99c250cc1094d5809d937a921da59aa53156ea91a06db51393fb0e98d850bbd996e6f7f019757f1e041ad25e65efcc1e1d4f20
7
- data.tar.gz: 8fc8247af91f73ceba720d76eb5ef0965d9543e72c6d8edfae9e8b951ddd7269b2d2c921abf7cca05b18037f165389f9c43d3b57093206e3b81975b67c4aac75
6
+ metadata.gz: 31ba2523f8ef5dd0155eaba082967b1a2ee97bea5f40b319c3b3110e9cb549032909a95c9a5147161ed2613a9c3f8688d81496286684876c614f0b185629232b
7
+ data.tar.gz: 2d2b4a3b7a30b6a6ec5fa83c95e2b19a37bad50ab195af011ca52f504f597069d4d3ef0a60e6553a99132baac506fe6e0be570532392557be207923125f47577
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.9.0 2021-05-14
2
+
3
+ - Fix query parsing for fields with empty value
4
+
1
5
  ## 0.8.4 2021-03-23
2
6
 
3
7
  - Rename and fix `#parse_query` to deal with no-value query parts
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qeweney (0.8.4)
4
+ qeweney (0.9.0)
5
5
  escape_utils (~> 1.2.1)
6
6
 
7
7
  GEM
@@ -55,9 +55,12 @@ module Qeweney
55
55
  @query = (q = uri.query) ? parse_query(q) : {}
56
56
  end
57
57
 
58
+ QUERY_KV_REGEXP = /([^=]+)(?:=(.*))?/
59
+
58
60
  def parse_query(query)
59
61
  query.split('&').each_with_object({}) do |kv, h|
60
- k, v = kv.split('=')
62
+ k, v = kv.match(QUERY_KV_REGEXP)[1..2]
63
+ # k, v = kv.split('=')
61
64
  h[k.to_sym] = v ? URI.decode_www_form_component(v) : true
62
65
  end
63
66
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Qeweney
4
- VERSION = '0.8.4'
4
+ VERSION = '0.9.0'
5
5
  end
@@ -21,6 +21,9 @@ class RequestInfoTest < MiniTest::Test
21
21
  r = Qeweney.mock(':path' => '/?a=1&b=2')
22
22
  assert_equal '/', r.path
23
23
  assert_equal({a: '1', b: '2'}, r.query)
24
+
25
+ r = Qeweney.mock(':path' => '/?l=a&t=&x=42')
26
+ assert_equal({l: 'a', t: '', x: '42'}, r.query)
24
27
  end
25
28
 
26
29
  def test_host
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qeweney
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-23 00:00:00.000000000 Z
11
+ date: 2021-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: escape_utils