tshield 0.5.2.0 → 0.6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +60 -0
- data/bin/tshield +12 -1
- data/lib/tshield.rb +1 -0
- data/lib/tshield/configuration.rb +1 -3
- data/lib/tshield/request.rb +1 -0
- data/lib/tshield/simple_tcp_server.rb +27 -0
- data/lib/tshield/version.rb +2 -2
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19c70680e289c5c8b514feeca2fc6a276fc7edc8
|
4
|
+
data.tar.gz: 68c61ad023d98d721bf2c88570e1f3170823b968
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 257777b038cf582aaf4d62e354a11cf976e0bdf55f3f018b3f8c60e1c18d7be81331570bd70a26e0ce461b9c5082f7840371fd7b5bf83187cdbc7865a2147ef1
|
7
|
+
data.tar.gz: 12df75edf9427185e53f67b12d01fab27b015735d78b62a0cf8489b1108f6e8d3af009f25035272d36502c000930b9b78780b59705983e0043da72b13d21fd18
|
data/README.md
CHANGED
@@ -0,0 +1,60 @@
|
|
1
|
+
TShield
|
2
|
+
=======
|
3
|
+
|
4
|
+
## Install
|
5
|
+
|
6
|
+
gem install tshield
|
7
|
+
|
8
|
+
## Using
|
9
|
+
|
10
|
+
To run server execute this command
|
11
|
+
|
12
|
+
tshield
|
13
|
+
|
14
|
+
### Config example
|
15
|
+
|
16
|
+
Before run `tshield` command is necessary to create config file.
|
17
|
+
This is an example of `config/tshield.yml`
|
18
|
+
|
19
|
+
```yaml
|
20
|
+
request:
|
21
|
+
# wait time for real service
|
22
|
+
timeout: 8
|
23
|
+
|
24
|
+
# list of domains that will be used
|
25
|
+
domains:
|
26
|
+
# Base URI of service
|
27
|
+
'https://service.com':
|
28
|
+
# name to identify the domain in the generated files
|
29
|
+
name: 'service'
|
30
|
+
|
31
|
+
# paths list of all services that will be called
|
32
|
+
paths:
|
33
|
+
- /users
|
34
|
+
```
|
35
|
+
|
36
|
+
### Custom controllers
|
37
|
+
|
38
|
+
All custom controller should be created in `controllers` directory.
|
39
|
+
|
40
|
+
Example of controller file called `controllers/foo_controller.rb`
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
require 'json'
|
44
|
+
require 'tshield/controller'
|
45
|
+
|
46
|
+
module FooController
|
47
|
+
include TShield::Controller
|
48
|
+
action :tracking, methods: [:post], path: '/foo'
|
49
|
+
|
50
|
+
module Actions
|
51
|
+
def tracking(params, request)
|
52
|
+
status 201
|
53
|
+
headers 'Content-Type' => 'application/json'
|
54
|
+
{message: 'foo'}.to_json
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
```
|
59
|
+
|
60
|
+
|
data/bin/tshield
CHANGED
@@ -3,5 +3,16 @@
|
|
3
3
|
require 'tshield'
|
4
4
|
|
5
5
|
TShield::Options.init
|
6
|
-
|
6
|
+
|
7
|
+
tshield = Thread.new {TShield::Server.run!}
|
8
|
+
|
9
|
+
configuration = TShield::Configuration.load_configuration
|
10
|
+
(configuration.tcp_servers || []).each do |tcp_server|
|
11
|
+
puts "initializing #{tcp_server['name']}"
|
12
|
+
require "./servers/#{tcp_server['file']}"
|
13
|
+
klass = Object.const_get(tcp_server['name'])
|
14
|
+
Thread.new { klass.new.listen(tcp_server['port']) }
|
15
|
+
end
|
16
|
+
|
17
|
+
tshield.join
|
7
18
|
|
data/lib/tshield.rb
CHANGED
@@ -5,6 +5,7 @@ module TShield
|
|
5
5
|
|
6
6
|
attr_accessor :request
|
7
7
|
attr_accessor :domains
|
8
|
+
attr_accessor :tcp_servers
|
8
9
|
attr_writer :session_path
|
9
10
|
|
10
11
|
def initialize(attributes)
|
@@ -36,9 +37,6 @@ module TShield
|
|
36
37
|
domains[domain]['excluded_headers'] || []
|
37
38
|
end
|
38
39
|
|
39
|
-
def options(path)
|
40
|
-
end
|
41
|
-
|
42
40
|
def session_path
|
43
41
|
@session_path || '/sessions'
|
44
42
|
end
|
data/lib/tshield/request.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'socket'
|
2
|
+
|
3
|
+
module TShield
|
4
|
+
class SimpleTCPServer
|
5
|
+
def initialize
|
6
|
+
@running = true
|
7
|
+
end
|
8
|
+
|
9
|
+
def on_connect(client)
|
10
|
+
raise 'should implement method on_connect'
|
11
|
+
end
|
12
|
+
|
13
|
+
def close
|
14
|
+
@running = false
|
15
|
+
end
|
16
|
+
|
17
|
+
def listen(port)
|
18
|
+
puts "listening #{port}"
|
19
|
+
@server = TCPServer.new(port)
|
20
|
+
while @running
|
21
|
+
client = @server.accept
|
22
|
+
on_connect(client)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/lib/tshield/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tshield
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Diego Rubin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -201,6 +201,7 @@ files:
|
|
201
201
|
- lib/tshield/response.rb
|
202
202
|
- lib/tshield/server.rb
|
203
203
|
- lib/tshield/sessions.rb
|
204
|
+
- lib/tshield/simple_tcp_server.rb
|
204
205
|
- lib/tshield/version.rb
|
205
206
|
- lib/tshield/views/admin/requests/index.haml
|
206
207
|
- lib/tshield/views/admin/requests/show.haml
|
@@ -231,12 +232,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
232
|
version: '0'
|
232
233
|
requirements: []
|
233
234
|
rubyforge_project:
|
234
|
-
rubygems_version: 2.
|
235
|
+
rubygems_version: 2.5.2.1
|
235
236
|
signing_key:
|
236
237
|
specification_version: 4
|
237
238
|
summary: Proxy for mocks API responses
|
238
239
|
test_files:
|
239
|
-
- spec/spec_helper.rb
|
240
|
-
- spec/tshield/fixtures/config/tshield.yml
|
241
240
|
- spec/tshield/configuration_spec.rb
|
241
|
+
- spec/tshield/fixtures/config/tshield.yml
|
242
242
|
- spec/tshield/request_spec.rb
|
243
|
+
- spec/spec_helper.rb
|