qeweney 0.17 → 0.18

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: 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