tshield 0.13.4.0 → 0.13.5.0
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/lib/tshield/configuration.rb +4 -4
- data/lib/tshield/grpc/vcr.rb +9 -0
- data/lib/tshield/request_vcr.rb +11 -2
- data/lib/tshield/version.rb +1 -1
- data/spec/tshield/configuration_spec.rb +3 -3
- data/spec/tshield/request_vcr_spec.rb +2 -4
- data/tshield.gemspec +1 -1
- metadata +21 -25
- data/spec/tshield/fixtures/matching/empty.json +0 -0
- data/spec/tshield/fixtures/matching/invalid_matching_file.json +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab5c5057fe81ae295f572912c6955ce0ea0bd9be6b42fb515a7832fe3451459a
|
4
|
+
data.tar.gz: 9c785dc23adb245fdfcc416698c551f7a45eaa32b5892a2cabea708f16fa2859
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58fd33ddf9e466af5882e6522612b2b0fa05c95f728578fe50b014dca0777357bf5ccfa17605a86309c5742cb828dd2e52eb9bb2839096f594e1e75fef80e81b
|
7
|
+
data.tar.gz: f085f1dcc7a3d861da1b28a0d07f3338f03dd5b27cdd234c283cecf0bce8a0dc66f26193755ea8f5b442cbf4953fb2bd4ce295f90257b76121ac7fdbcbdd38b0
|
@@ -65,6 +65,10 @@ module TShield
|
|
65
65
|
nil
|
66
66
|
end
|
67
67
|
|
68
|
+
def windows_compatibility?
|
69
|
+
windows_compatibility || false
|
70
|
+
end
|
71
|
+
|
68
72
|
def get_headers(domain)
|
69
73
|
(domains[domain] || {})['headers'] || {}
|
70
74
|
end
|
@@ -109,10 +113,6 @@ module TShield
|
|
109
113
|
session_path || '/sessions'
|
110
114
|
end
|
111
115
|
|
112
|
-
def get_questionmark_char
|
113
|
-
windows_compatibility ? '%3f' : '?'
|
114
|
-
end
|
115
|
-
|
116
116
|
def grpc
|
117
117
|
defaults = { 'port' => 5678, 'proto_dir' => 'proto', 'services' => {} }
|
118
118
|
defaults.merge(@grpc || {})
|
data/lib/tshield/grpc/vcr.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'tshield/configuration'
|
3
4
|
require 'tshield/sessions'
|
4
5
|
|
5
6
|
module TShield
|
6
7
|
module Grpc
|
7
8
|
module VCR
|
9
|
+
def initialize
|
10
|
+
@configuration = TShield::Configuration.singleton
|
11
|
+
end
|
8
12
|
def handler_in_vcr_mode(method_name, request, parameters, options)
|
9
13
|
parameters.peer =~ /ipv6:\[(.+?)\]|ipv4:(.+?):/
|
10
14
|
peer = Regexp.last_match(1) || Regexp.last_match(2)
|
@@ -31,6 +35,10 @@ module TShield
|
|
31
35
|
response
|
32
36
|
end
|
33
37
|
|
38
|
+
def encode_colon(value)
|
39
|
+
value.gsub(':','%3a')
|
40
|
+
end
|
41
|
+
|
34
42
|
def saved_response(path)
|
35
43
|
response_file = File.join(path, 'response')
|
36
44
|
return false unless File.exist? response_file
|
@@ -58,6 +66,7 @@ module TShield
|
|
58
66
|
|
59
67
|
def complete_path(module_name, method_name, request)
|
60
68
|
@session_name = (@session || {})[:name]
|
69
|
+
module_name = @configuration.windows_compatibility? ? encode_colon(module_name) : module_name
|
61
70
|
path = ['requests', 'grpc', @session_name, module_name, method_name.to_s, hexdigest(request)].compact
|
62
71
|
path
|
63
72
|
end
|
data/lib/tshield/request_vcr.rb
CHANGED
@@ -155,14 +155,23 @@ module TShield
|
|
155
155
|
content[:body] = body
|
156
156
|
end
|
157
157
|
|
158
|
+
def encode_for_windows_dir(directory)
|
159
|
+
replace = [['<','%3c'],['>','%3e'],[':','%3a'],['"','%22'],['?','%3f'],[' ','%20'],['*','%2a'],['/','%2f']]
|
160
|
+
replace.each do |value|
|
161
|
+
directory = directory.gsub(value.first,value.last)
|
162
|
+
end
|
163
|
+
directory
|
164
|
+
end
|
165
|
+
|
158
166
|
def safe_dir(url)
|
159
167
|
if url.size > 225
|
160
168
|
path = url.gsub(/(\?.*)/, '')
|
161
169
|
params = Digest::SHA1.hexdigest Regexp.last_match(1)
|
162
|
-
"#{path.gsub(%r{/}, '-').gsub(/^-/, '')}
|
170
|
+
directory = "#{path.gsub(%r{/}, '-').gsub(/^-/, '')}?#{params}"
|
163
171
|
else
|
164
|
-
url.gsub(%r{/}, '-').gsub(/^-/, '')
|
172
|
+
directory = url.gsub(%r{/}, '-').gsub(/^-/, '')
|
165
173
|
end
|
174
|
+
configuration.windows_compatibility? ? encode_for_windows_dir(directory) : directory
|
166
175
|
end
|
167
176
|
end
|
168
177
|
end
|
data/lib/tshield/version.rb
CHANGED
@@ -71,7 +71,7 @@ describe TShield::Configuration do
|
|
71
71
|
TShield::Configuration.clear
|
72
72
|
@configuration = TShield::Configuration.singleton
|
73
73
|
|
74
|
-
expect(@configuration.
|
74
|
+
expect(@configuration.windows_compatibility?).to eq(true)
|
75
75
|
end
|
76
76
|
|
77
77
|
it 'should be compatible with Unix when configuration is false' do
|
@@ -79,7 +79,7 @@ describe TShield::Configuration do
|
|
79
79
|
TShield::Configuration.clear
|
80
80
|
@configuration = TShield::Configuration.singleton
|
81
81
|
|
82
|
-
expect(@configuration.
|
82
|
+
expect(@configuration.windows_compatibility?).to eq(false)
|
83
83
|
end
|
84
84
|
|
85
85
|
it 'should be compatible with Unix when configuration is missing' do
|
@@ -87,7 +87,7 @@ describe TShield::Configuration do
|
|
87
87
|
TShield::Configuration.clear
|
88
88
|
@configuration = TShield::Configuration.singleton
|
89
89
|
|
90
|
-
expect(@configuration.
|
90
|
+
expect(@configuration.windows_compatibility?).to eq(false)
|
91
91
|
end
|
92
92
|
|
93
93
|
end
|
@@ -81,7 +81,7 @@ describe TShield::RequestVCR do
|
|
81
81
|
}
|
82
82
|
)
|
83
83
|
|
84
|
-
allow(@configuration).to receive(:
|
84
|
+
allow(@configuration).to receive(:windows_compatibility?).and_return(false)
|
85
85
|
|
86
86
|
allow(HTTParty).to receive(:send).and_return(RawResponse.new)
|
87
87
|
file_double = double
|
@@ -106,14 +106,13 @@ describe TShield::RequestVCR do
|
|
106
106
|
end
|
107
107
|
|
108
108
|
it 'should create response directory in windows standard' do
|
109
|
-
|
110
109
|
allow(@configuration).to receive(:domains).and_return(
|
111
110
|
'example.org' => {
|
112
111
|
'skip_query_params' => []
|
113
112
|
}
|
114
113
|
)
|
115
114
|
|
116
|
-
allow(@configuration).to receive(:
|
115
|
+
allow(@configuration).to receive(:windows_compatibility?).and_return(true)
|
117
116
|
|
118
117
|
allow(HTTParty).to receive(:send).and_return(RawResponse.new)
|
119
118
|
file_double = double
|
@@ -150,7 +149,6 @@ describe TShield::RequestVCR do
|
|
150
149
|
call: 0
|
151
150
|
end
|
152
151
|
|
153
|
-
|
154
152
|
end
|
155
153
|
end
|
156
154
|
|
data/tshield.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_dependency('grpc-tools', '~> 1.28', '>= 1.28.0')
|
29
29
|
s.add_dependency('httparty', '~> 0.14', '>= 0.14.0')
|
30
30
|
s.add_dependency('json', '~> 2.0', '>= 2.0')
|
31
|
-
s.add_dependency('puma', '
|
31
|
+
s.add_dependency('puma', '>= 4.3.3', '< 6.0')
|
32
32
|
s.add_dependency('sinatra', '~> 2.1', '>= 2.1.0')
|
33
33
|
s.add_dependency('sinatra-cross_origin', '~> 0.4.0', '>= 0.4')
|
34
34
|
s.add_development_dependency('coveralls', '~> 0.8', '>= 0.8.23')
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tshield
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Diego Rubin
|
8
8
|
- Eduardo Garcia
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-06-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: grpc
|
@@ -95,22 +95,22 @@ dependencies:
|
|
95
95
|
name: puma
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
requirements:
|
98
|
-
- - "~>"
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version: '4.3'
|
101
98
|
- - ">="
|
102
99
|
- !ruby/object:Gem::Version
|
103
100
|
version: 4.3.3
|
101
|
+
- - "<"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '6.0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '4.3'
|
111
108
|
- - ">="
|
112
109
|
- !ruby/object:Gem::Version
|
113
110
|
version: 4.3.3
|
111
|
+
- - "<"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '6.0'
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: sinatra
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -435,9 +435,7 @@ files:
|
|
435
435
|
- spec/tshield/fixtures/config/tshield-without-grpc.yml
|
436
436
|
- spec/tshield/fixtures/config/tshield.yml
|
437
437
|
- spec/tshield/fixtures/filters/example_filter.rb
|
438
|
-
- spec/tshield/fixtures/matching/empty.json
|
439
438
|
- spec/tshield/fixtures/matching/example.json
|
440
|
-
- spec/tshield/fixtures/matching/invalid_matching_file.json
|
441
439
|
- spec/tshield/fixtures/proto/test_services_pb.rb
|
442
440
|
- spec/tshield/grpc_spec.rb
|
443
441
|
- spec/tshield/options_spec.rb
|
@@ -449,7 +447,7 @@ homepage: https://github.com/diegorubin/tshield
|
|
449
447
|
licenses:
|
450
448
|
- MIT
|
451
449
|
metadata: {}
|
452
|
-
post_install_message:
|
450
|
+
post_install_message:
|
453
451
|
rdoc_options: []
|
454
452
|
require_paths:
|
455
453
|
- lib
|
@@ -464,26 +462,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
464
462
|
- !ruby/object:Gem::Version
|
465
463
|
version: '0'
|
466
464
|
requirements: []
|
467
|
-
rubygems_version: 3.0.
|
468
|
-
signing_key:
|
465
|
+
rubygems_version: 3.0.3.1
|
466
|
+
signing_key:
|
469
467
|
specification_version: 4
|
470
468
|
summary: Proxy for mocks API responses
|
471
469
|
test_files:
|
472
|
-
- spec/tshield/options_spec.rb
|
473
470
|
- spec/tshield/controllers/requests_spec.rb
|
474
|
-
- spec/tshield/configuration_spec.rb
|
475
471
|
- spec/tshield/after_filter_spec.rb
|
476
|
-
- spec/tshield/
|
477
|
-
- spec/tshield/
|
478
|
-
- spec/tshield/request_matching_spec.rb
|
479
|
-
- spec/tshield/grpc_spec.rb
|
472
|
+
- spec/tshield/configuration_spec.rb
|
473
|
+
- spec/tshield/fixtures/proto/test_services_pb.rb
|
480
474
|
- spec/tshield/fixtures/config/tshield-without-grpc.yml
|
481
|
-
- spec/tshield/fixtures/config/tshield.yml
|
482
475
|
- spec/tshield/fixtures/config/tshield-with-send-content-type-header_as_false.yml
|
476
|
+
- spec/tshield/fixtures/config/tshield.yml
|
483
477
|
- spec/tshield/fixtures/config/tshield-with-send-content-type-header.yml
|
484
|
-
- spec/tshield/fixtures/proto/test_services_pb.rb
|
485
|
-
- spec/tshield/fixtures/filters/example_filter.rb
|
486
|
-
- spec/tshield/fixtures/matching/empty.json
|
487
|
-
- spec/tshield/fixtures/matching/invalid_matching_file.json
|
488
478
|
- spec/tshield/fixtures/matching/example.json
|
479
|
+
- spec/tshield/fixtures/filters/example_filter.rb
|
480
|
+
- spec/tshield/request_vcr_spec.rb
|
481
|
+
- spec/tshield/sessions_spec.rb
|
482
|
+
- spec/tshield/grpc_spec.rb
|
483
|
+
- spec/tshield/options_spec.rb
|
484
|
+
- spec/tshield/request_matching_spec.rb
|
489
485
|
- spec/spec_helper.rb
|
File without changes
|
@@ -1 +0,0 @@
|
|
1
|
-
[]
|