tshield 0.11.9.0 → 0.11.15.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8500d36e8b1861611e519cc93e40f176622a24d890f73615fa9852d83b12d530
4
- data.tar.gz: e5e8dcccd4a31ba89cba70c328f533c1128fb7a8917fdcdec5bbb74cd6832b08
3
+ metadata.gz: e6ed543aa8bab1fff2c4d75d7479b7af0b3e2f06432330a697b6808048466228
4
+ data.tar.gz: d14d318efb407d1a927cb2c5ac745081531c307f011d873965793c77ec0fd1b6
5
5
  SHA512:
6
- metadata.gz: 4780911e56839db9afd8a28dbc5759e3cd1d8a604c195c8f5921258cf0bcddf0d8042764e775b871088ac41b0791f14109ed8538c9ad5f991be35a225098c989
7
- data.tar.gz: 65ce05ffd2f63a68de6e91d9f34d2fe057376f32cf860132d5aca54455a16f97987c90b8af0785d03006c0aaa72cf18f58bfe8e079e2571e8ba3d07e51ded190
6
+ metadata.gz: 7a46edf78463d75e523fd842397bae66e749dc58cd31d5fab8500dab706028850963d8e84f366706e0aef7807f45283d74ad785379f38b9b144d40b801681155
7
+ data.tar.gz: 2eafe43d7acd092e04ff7b7dc1f2fcdd6dc7de2789a7f10e441bda3b72e838e13df86b8193ec7f3cbbd30a7f43a5880ce4c1629faf313ee3db3363695858aee0
data/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source 'https://rubygems.org'
4
-
4
+ gem 'sinatra-cross_origin'
5
5
  gemspec
@@ -65,7 +65,7 @@ module TShield
65
65
  api_response = TShield::RequestMatching.new(path, options.clone).match_request
66
66
 
67
67
  unless api_response
68
- add_headers(headers, path)
68
+ add_headers(options, path)
69
69
 
70
70
  api_response ||= TShield::RequestVCR.new(path, options.clone).response
71
71
  api_response.headers.reject! do |key, _v|
@@ -85,9 +85,9 @@ module TShield
85
85
  body api_response.body
86
86
  end
87
87
 
88
- def add_headers(headers, path)
88
+ def add_headers(options, path)
89
89
  (configuration.get_headers(domain(path)) || {}).each do |source, destiny|
90
- headers[destiny] = request.env[source] if request.env[source]
90
+ options[:headers][destiny] = request.env[source] if request.env[source]
91
91
  end
92
92
  end
93
93
 
@@ -31,24 +31,25 @@ module TShield
31
31
 
32
32
  @url = "#{domain}#{@path}"
33
33
 
34
+ configuration.get_before_filters(domain).each do |filter|
35
+ _method, @url, @options = filter.new.filter(method, @url, @options)
36
+ end
37
+
34
38
  if exists
35
39
  response.original = false
36
- response
40
+ resp = response
37
41
  else
38
- configuration.get_before_filters(domain).each do |filter|
39
- _method, @url, @options = filter.new.filter(method, @url, @options)
40
- end
41
-
42
42
  raw = HTTParty.send(method.to_s, @url, @options)
43
43
 
44
- configuration.get_after_filters(domain).each do |filter|
45
- raw = filter.new.filter(raw)
46
- end
47
-
48
44
  original_response = save(raw)
49
45
  original_response.original = true
50
- original_response
46
+ resp = original_response
47
+ end
48
+
49
+ configuration.get_after_filters(domain).each do |filter|
50
+ resp = filter.new.filter(resp)
51
51
  end
52
+ resp
52
53
  end
53
54
 
54
55
  def response
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  require 'sinatra'
4
+ require 'sinatra/cross_origin'
4
5
 
5
6
  require 'tshield/options'
6
7
  require 'tshield/controllers/requests'
@@ -16,6 +17,23 @@ module TShield
16
17
  set :views, File.join(File.dirname(__FILE__), 'views')
17
18
  set :bind, '0.0.0.0'
18
19
  set :port, TShield::Options.instance.port
20
+ set :server, :puma
21
+
22
+ configure do
23
+ enable :cross_origin
24
+ end
25
+
26
+ before do
27
+ response.headers['Access-Control-Allow-Origin'] = '*'
28
+ end
29
+
30
+ options '*' do
31
+ response.headers['Allow'] = 'GET, PUT, POST, DELETE, OPTIONS'
32
+ response.headers['Access-Control-Allow-Headers'] = 'Authorization, Content-Type,
33
+ Accept, X-User-Email, X-Auth-Token'
34
+ response.headers['Access-Control-Allow-Origin'] = '*'
35
+ 200
36
+ end
19
37
 
20
38
  def self.register_resources
21
39
  load_controllers
@@ -5,7 +5,7 @@ module TShield
5
5
  class Version
6
6
  MAJOR = 0
7
7
  MINOR = 11
8
- PATCH = 9
8
+ PATCH = 15
9
9
  PRE = 0
10
10
 
11
11
  class << self
@@ -27,12 +27,14 @@ Gem::Specification.new do |s|
27
27
  s.add_dependency('byebug', '~> 11.0', '>= 11.0.1')
28
28
  s.add_dependency('httparty', '~> 0.14', '>= 0.14.0')
29
29
  s.add_dependency('json', '~> 2.0', '>= 2.0')
30
+ s.add_dependency('puma', '~> 4.3', '>= 4.3.3')
30
31
  s.add_dependency('sinatra', '~> 1.4', '>= 1.4.0')
32
+ s.add_dependency('sinatra-cross_origin', '~> 0.4.0', '>= 0.4')
31
33
  s.add_development_dependency('coveralls')
32
34
  s.add_development_dependency('cucumber', '~> 3.1', '>= 3.1.2')
33
35
  s.add_development_dependency('guard', '~> 2.15', '>= 2.15.0')
34
36
  s.add_development_dependency('guard-rspec', '~> 4.7', '>= 4.7.3')
35
- s.add_development_dependency('rake', '~> 10.0', '>= 10.0')
37
+ s.add_development_dependency('rake', '>= 10.0', '~> 13.0')
36
38
  s.add_development_dependency('rdoc', '~> 6.0', '>= 6.0')
37
39
  s.add_development_dependency('reek', '~> 5.4.0', '>= 5.4.0')
38
40
  s.add_development_dependency('rspec', '~> 3.5', '>= 3.5.0')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tshield
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.9.0
4
+ version: 0.11.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego Rubin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-10-22 00:00:00.000000000 Z
12
+ date: 2020-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: byebug
@@ -71,6 +71,26 @@ dependencies:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
73
  version: '2.0'
74
+ - !ruby/object:Gem::Dependency
75
+ name: puma
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '4.3'
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 4.3.3
84
+ type: :runtime
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '4.3'
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 4.3.3
74
94
  - !ruby/object:Gem::Dependency
75
95
  name: sinatra
76
96
  requirement: !ruby/object:Gem::Requirement
@@ -91,6 +111,26 @@ dependencies:
91
111
  - - "~>"
92
112
  - !ruby/object:Gem::Version
93
113
  version: '1.4'
114
+ - !ruby/object:Gem::Dependency
115
+ name: sinatra-cross_origin
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0.4'
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 0.4.0
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0.4'
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 0.4.0
94
134
  - !ruby/object:Gem::Dependency
95
135
  name: coveralls
96
136
  requirement: !ruby/object:Gem::Requirement
@@ -174,7 +214,7 @@ dependencies:
174
214
  version: '10.0'
175
215
  - - "~>"
176
216
  - !ruby/object:Gem::Version
177
- version: '10.0'
217
+ version: '13.0'
178
218
  type: :development
179
219
  prerelease: false
180
220
  version_requirements: !ruby/object:Gem::Requirement
@@ -184,7 +224,7 @@ dependencies:
184
224
  version: '10.0'
185
225
  - - "~>"
186
226
  - !ruby/object:Gem::Version
187
- version: '10.0'
227
+ version: '13.0'
188
228
  - !ruby/object:Gem::Dependency
189
229
  name: rdoc
190
230
  requirement: !ruby/object:Gem::Requirement
@@ -336,7 +376,6 @@ files:
336
376
  - README.md
337
377
  - Rakefile
338
378
  - bin/tshield
339
- - config/tshield.yml
340
379
  - lib/tshield.rb
341
380
  - lib/tshield/after_filter.rb
342
381
  - lib/tshield/before_filter.rb
@@ -388,18 +427,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
388
427
  - !ruby/object:Gem::Version
389
428
  version: '0'
390
429
  requirements: []
391
- rubygems_version: 3.0.6
430
+ rubygems_version: 3.0.8
392
431
  signing_key:
393
432
  specification_version: 4
394
433
  summary: Proxy for mocks API responses
395
434
  test_files:
396
435
  - spec/spec_helper.rb
397
- - spec/tshield/options_spec.rb
436
+ - spec/tshield/request_matching_spec.rb
398
437
  - spec/tshield/configuration_spec.rb
399
438
  - spec/tshield/request_vcr_spec.rb
400
439
  - spec/tshield/controllers/requests_spec.rb
440
+ - spec/tshield/options_spec.rb
401
441
  - spec/tshield/after_filter_spec.rb
402
- - spec/tshield/fixtures/config/tshield.yml
403
442
  - spec/tshield/fixtures/matching/example.json
404
443
  - spec/tshield/fixtures/filters/example_filter.rb
405
- - spec/tshield/request_matching_spec.rb
444
+ - spec/tshield/fixtures/config/tshield.yml
@@ -1,11 +0,0 @@
1
- ---
2
- request:
3
- timeout: 10
4
- domains:
5
- 'http://localhost:9090':
6
- name: 'components'
7
- skip_query_params:
8
- - b
9
- paths:
10
- - /users
11
- - /resources