qeweney 0.17 → 0.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e4dd770959464f8684fe167c3254c81a408dba8cc921c9cf9c2203affe859d4
4
- data.tar.gz: 0b8331d894c8c5dc275cb8cb69fa75848516d168b1baf9a647d1692e7b5abd71
3
+ metadata.gz: 70524001d652ee7b23a7a08b8c09aae2a7bf484148fa693b1c6b23a9c868ba51
4
+ data.tar.gz: 17c5254f9b07b242cc673219f2738bd6f4f0176bb4f076273b10f2aed9a21530
5
5
  SHA512:
6
- metadata.gz: 963911778bb98a2280f788522d77942787d5fc9bb80e19df64aef7387d8b6468d353bc91ae5dcfa87834b0656909a32fca1d2ece8ba4f1376e26b96571854222
7
- data.tar.gz: 1f3c71c9d0bb148b265652a9c6516fb65fb4236725394baaa7a61706986afa05ce9371038aa7a4bd3f90ae399967237bd7610ba53303769eab40526f6b4d2a26
6
+ metadata.gz: be74c2f1c96b8a4b4cd6b7e081f71b2c2019c2ab9c37b8680bdead5f4de1eddddca1522658ee56869837851bb6752fc147b3ffb42d0a49c4d7bd1f98822a0c98
7
+ data.tar.gz: 6f252321dc1f79d69e635d47ee34efefd1274a704122bfc736aa589618836d6e29e0cbb495669d1a96321569e75559c0a441ff0ebf91c71c4f38b2543383d27a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.18 2022-02-16
2
+
3
+ - Implement `Request#rewrite!` (#2)
4
+
1
5
  ## 0.17 2022-02-10
2
6
 
3
7
  - Fix default return value in `TestAdapter#status`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qeweney (0.17)
4
+ qeweney (0.18)
5
5
  escape_utils (~> 1.2.1)
6
6
 
7
7
  GEM
@@ -34,6 +34,22 @@ module Qeweney
34
34
  @scheme ||= @headers[':scheme']
35
35
  end
36
36
 
37
+ # Rewrites the request path by replacing the given src with the given
38
+ # replacement.
39
+ #
40
+ # @param src [String, Regexp] src pattern
41
+ # @param replacement [String] replacement
42
+ # @return [Qeweney::Request] self
43
+ def rewrite!(src, replacement)
44
+ @headers[':path'] = @headers[':path']
45
+ .gsub(src, replacement)
46
+ .gsub('//', '/')
47
+ @path = nil
48
+ @uri = nil
49
+ @full_uri = nil
50
+ self
51
+ end
52
+
37
53
  def uri
38
54
  @uri ||= URI.parse(@headers[':path'] || '')
39
55
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Qeweney
4
- VERSION = '0.17'
4
+ VERSION = '0.18'
5
5
  end
@@ -65,4 +65,26 @@ class RequestInfoTest < MiniTest::Test
65
65
  'signin_ref' => '/'
66
66
  }, r.cookies)
67
67
  end
68
+
69
+ def test_rewrite!
70
+ r = Qeweney.mock(
71
+ ':scheme' => 'https',
72
+ 'host' => 'foo.bar',
73
+ ':path' => '/hey/ho?a=b&c=d'
74
+ )
75
+
76
+ assert_equal '/hey/ho', r.path
77
+ assert_equal URI.parse('/hey/ho?a=b&c=d'), r.uri
78
+ assert_equal 'https://foo.bar/hey/ho?a=b&c=d', r.full_uri
79
+
80
+ r.rewrite!('/hhh', '/')
81
+ assert_equal '/hey/ho', r.path
82
+ assert_equal URI.parse('/hey/ho?a=b&c=d'), r.uri
83
+ assert_equal 'https://foo.bar/hey/ho?a=b&c=d', r.full_uri
84
+
85
+ r.rewrite!('/hey', '/')
86
+ assert_equal '/ho', r.path
87
+ assert_equal URI.parse('/ho?a=b&c=d'), r.uri
88
+ assert_equal 'https://foo.bar/ho?a=b&c=d', r.full_uri
89
+ end
68
90
  end
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.17'
4
+ version: '0.18'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-10 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: escape_utils