fitting 2.5.0 → 2.6.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/CHANGELOG.md +5 -0
- data/lib/fitting.rb +33 -1
- data/lib/fitting/railtie.rb +9 -0
- data/lib/fitting/records/realized_unit.rb +54 -0
- data/lib/fitting/records/spherical/request.rb +49 -0
- data/lib/fitting/records/spherical/requests.rb +19 -0
- data/lib/fitting/records/spherical/response.rb +38 -0
- data/lib/fitting/records/test_unit/request.rb +96 -0
- data/lib/fitting/records/tested/request.rb +22 -1
- data/lib/fitting/records/tested/response.rb +9 -0
- data/lib/fitting/records/unit/request.rb +1 -1
- data/lib/fitting/storage/responses.rb +7 -2
- data/lib/fitting/templates/realized_template.rb +49 -0
- data/lib/fitting/tests.rb +23 -0
- data/lib/fitting/version.rb +1 -1
- data/lib/tasks/fitting.rake +34 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f803f26bbe2cb7472a2ca8077aa7a00754ec755
|
4
|
+
data.tar.gz: 38f77aec3f07b3aed3f82ebcae34549a953d45f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a3619063602e165398a68ea20e4630be7d3877119f11cbead7fdc05a38b4f436e2d06039b75c3d09a55b069498e0f2e043d7acb14151342a90c7282378cc580
|
7
|
+
data.tar.gz: 7c2ec1512bc655dbd816b3ba9665ec6af4bbf7e9c68deb8f3d1f608396ac1e24389bb5099621c732aeb0f895c019cd7e54725e825015bfe8d94829dda00586f1
|
data/CHANGELOG.md
CHANGED
data/lib/fitting.rb
CHANGED
@@ -3,6 +3,7 @@ require 'fitting/configuration'
|
|
3
3
|
require 'fitting/matchers/response_matcher'
|
4
4
|
require 'fitting/documentation'
|
5
5
|
require 'fitting/storage/responses'
|
6
|
+
require 'fitting/railtie' if defined?(Rails)
|
6
7
|
|
7
8
|
module Fitting
|
8
9
|
class << self
|
@@ -19,7 +20,7 @@ module Fitting
|
|
19
20
|
|
20
21
|
RSpec.configure do |config|
|
21
22
|
config.after(:each, type: :controller) do
|
22
|
-
responses.add(response)
|
23
|
+
responses.add(response, self.inspect)
|
23
24
|
end
|
24
25
|
|
25
26
|
config.after(:suite) do
|
@@ -27,5 +28,36 @@ module Fitting
|
|
27
28
|
end
|
28
29
|
end
|
29
30
|
end
|
31
|
+
|
32
|
+
def save_test_data
|
33
|
+
responses = Fitting::Storage::Responses.new
|
34
|
+
|
35
|
+
RSpec.configure do |config|
|
36
|
+
config.after(:each, type: :controller) do
|
37
|
+
responses.add(response, self.inspect)
|
38
|
+
end
|
39
|
+
|
40
|
+
config.after(:suite) do
|
41
|
+
responses.tests.save
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.loaded_tasks=(val)
|
48
|
+
@loaded_tasks = val
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.loaded_tasks
|
52
|
+
@loaded_tasks
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.load_tasks
|
56
|
+
return if loaded_tasks
|
57
|
+
self.loaded_tasks = true
|
58
|
+
|
59
|
+
Dir[File.join(File.dirname(__FILE__), 'tasks', '**/*.rake')].each do |rake|
|
60
|
+
load rake
|
61
|
+
end
|
30
62
|
end
|
31
63
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'fitting/records/test_unit/request'
|
2
|
+
|
3
|
+
module Fitting
|
4
|
+
class Records
|
5
|
+
class RealizedUnit
|
6
|
+
def initialize(realized_requests, documented_requests)
|
7
|
+
@realized_requests = realized_requests
|
8
|
+
@documented_requests = documented_requests
|
9
|
+
end
|
10
|
+
|
11
|
+
def fully_covered?
|
12
|
+
test_file_paths.each do |key, requests|
|
13
|
+
all_good = requests.all? { |request| request.documented? }
|
14
|
+
return false unless all_good
|
15
|
+
end
|
16
|
+
test_file_paths.each do |key, requests|
|
17
|
+
all_good = requests.all? { |request| request.response_documented? }
|
18
|
+
return false unless all_good
|
19
|
+
end
|
20
|
+
test_file_paths.each do |key, requests|
|
21
|
+
all_good = requests.all? { |request| request.response_json_schemas? }
|
22
|
+
return false unless all_good
|
23
|
+
end
|
24
|
+
test_file_paths.each do |key, requests|
|
25
|
+
all_good = requests.all? { |request| request.valid_json_schemas? }
|
26
|
+
return false unless all_good
|
27
|
+
end
|
28
|
+
true
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_file_paths
|
32
|
+
return @test_file_paths if @test_file_paths
|
33
|
+
@test_file_paths = {}
|
34
|
+
white_unit.map do |request|
|
35
|
+
@test_file_paths[request.test_file_path] ||= []
|
36
|
+
@test_file_paths[request.test_file_path].push(request)
|
37
|
+
end
|
38
|
+
@test_file_paths
|
39
|
+
end
|
40
|
+
|
41
|
+
def all_documented_requests
|
42
|
+
@all_documented_requests ||= @documented_requests.to_a.inject([]) do |res, tomogram_request|
|
43
|
+
res.push(Fitting::Records::Documented::Request.new(tomogram_request, nil))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def white_unit
|
48
|
+
@white_unit_requests ||= @realized_requests.to_a.inject([]) do |res, tested_request|
|
49
|
+
res.push(Fitting::Records::TestUnit::Request.new(tested_request, all_documented_requests))
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'fitting/records/spherical/response'
|
3
|
+
|
4
|
+
module Fitting
|
5
|
+
class Records
|
6
|
+
class Spherical
|
7
|
+
class Request
|
8
|
+
attr_reader :method, :path, :body, :response, :title, :group
|
9
|
+
|
10
|
+
def initialize(method:, path:, body:, response:, title:, group:)
|
11
|
+
@method = method
|
12
|
+
@path = path
|
13
|
+
@body = body
|
14
|
+
@response = response
|
15
|
+
@title = title
|
16
|
+
@group = group
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_hash
|
20
|
+
{
|
21
|
+
method: method,
|
22
|
+
path: path.to_s,
|
23
|
+
body: body,
|
24
|
+
response: response.to_hash,
|
25
|
+
title: title,
|
26
|
+
group: group
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_json
|
31
|
+
JSON.dump(to_hash)
|
32
|
+
end
|
33
|
+
|
34
|
+
class << self
|
35
|
+
def load(hash)
|
36
|
+
new(
|
37
|
+
method: hash["method"],
|
38
|
+
path: hash["path"],
|
39
|
+
body: hash["body"],
|
40
|
+
response: Fitting::Records::Spherical::Response.load(hash["response"]),
|
41
|
+
title: hash["title"],
|
42
|
+
group: hash["group"]
|
43
|
+
)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'fitting/records/spherical/request'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Fitting
|
5
|
+
class Records
|
6
|
+
class Spherical
|
7
|
+
class Requests
|
8
|
+
def to_a
|
9
|
+
return @to_a if @to_a
|
10
|
+
|
11
|
+
array = JSON.load(File.read('tests.json'))
|
12
|
+
@to_a = array.inject([]) do |res, tested_request|
|
13
|
+
res.push(Fitting::Records::Spherical::Request.load(tested_request))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Fitting
|
4
|
+
class Records
|
5
|
+
class Spherical
|
6
|
+
class Response
|
7
|
+
attr_reader :status, :body
|
8
|
+
|
9
|
+
def initialize(status:, body:)
|
10
|
+
@status = status
|
11
|
+
@body = body
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_hash
|
15
|
+
{
|
16
|
+
status: status,
|
17
|
+
body: JSON.load(body)
|
18
|
+
}
|
19
|
+
rescue JSON::ParserError
|
20
|
+
{
|
21
|
+
status: status,
|
22
|
+
body: {}
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_json
|
27
|
+
JSON.dump(to_hash)
|
28
|
+
end
|
29
|
+
|
30
|
+
class << self
|
31
|
+
def load(hash)
|
32
|
+
new(status: hash["status"], body: hash["body"])
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'json-schema'
|
2
|
+
|
3
|
+
module Fitting
|
4
|
+
class Records
|
5
|
+
class TestUnit
|
6
|
+
class Request
|
7
|
+
def initialize(tested_request, all_documented_requests)
|
8
|
+
@tested_request = tested_request
|
9
|
+
@all_documented_requests = all_documented_requests
|
10
|
+
end
|
11
|
+
|
12
|
+
def method
|
13
|
+
@method ||= @tested_request.method
|
14
|
+
end
|
15
|
+
|
16
|
+
def path
|
17
|
+
@path ||= @tested_request.path
|
18
|
+
end
|
19
|
+
|
20
|
+
def body
|
21
|
+
@body ||= @tested_request.body
|
22
|
+
end
|
23
|
+
|
24
|
+
def response
|
25
|
+
@response ||= @tested_request.response
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_path
|
29
|
+
@test_path ||= @tested_request.title
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_file_path
|
33
|
+
@test_file_path ||= @tested_request.group
|
34
|
+
end
|
35
|
+
|
36
|
+
def documented_requests
|
37
|
+
@documented_requests ||= @all_documented_requests.inject([]) do |res, documented_request|
|
38
|
+
next res unless @tested_request.method == documented_request.method &&
|
39
|
+
documented_request.path.match(@tested_request.path.to_s)
|
40
|
+
res.push(documented_request)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def documented?
|
45
|
+
@documented ||= documented_requests.present?
|
46
|
+
end
|
47
|
+
|
48
|
+
def documented_responses
|
49
|
+
@documented_responses ||= documented_requests.inject([]) do |res, documented_request|
|
50
|
+
documented_request.responses.map do |documented_response|
|
51
|
+
next unless documented_response["status"] == response.status.to_s
|
52
|
+
res.push(documented_response)
|
53
|
+
end
|
54
|
+
end.flatten.compact
|
55
|
+
end
|
56
|
+
|
57
|
+
def response_documented?
|
58
|
+
@response_documented ||= documented_responses.present?
|
59
|
+
end
|
60
|
+
|
61
|
+
def response_json_schemas
|
62
|
+
@response_json_schemas ||= documented_responses.inject([]) do |res, documented_response|
|
63
|
+
res.push(documented_response["json_schemas"])
|
64
|
+
end.flatten
|
65
|
+
end
|
66
|
+
|
67
|
+
def response_json_schemas?
|
68
|
+
@response_json_schemas_present ||= response_json_schemas.present?
|
69
|
+
end
|
70
|
+
|
71
|
+
def valid_json_schemas
|
72
|
+
@valid_json_schemas ||= response_json_schemas.inject([]) do |res, json_schema|
|
73
|
+
next res unless JSON::Validator.validate(json_schema, response.body)
|
74
|
+
res.push(json_schema)
|
75
|
+
end.flatten
|
76
|
+
end
|
77
|
+
|
78
|
+
def invalid_json_schemas
|
79
|
+
@invalid_json_schemas ||= response_json_schemas.inject([]) do |res, json_schema|
|
80
|
+
next res if JSON::Validator.validate(json_schema, response.body)
|
81
|
+
res.push(
|
82
|
+
{
|
83
|
+
json_schema: json_schema,
|
84
|
+
fully_validate: JSON::Validator.fully_validate(json_schema, response.body)
|
85
|
+
}
|
86
|
+
)
|
87
|
+
end.flatten
|
88
|
+
end
|
89
|
+
|
90
|
+
def valid_json_schemas?
|
91
|
+
@valid_json_schemas_present ||= valid_json_schemas.present?
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'tomograph/path'
|
2
2
|
require 'fitting/records/tested/response'
|
3
|
+
require 'fitting/records/spherical/request'
|
3
4
|
|
4
5
|
module Fitting
|
5
6
|
class Records
|
6
7
|
class Tested
|
7
8
|
class Request
|
8
|
-
def initialize(env_response)
|
9
|
+
def initialize(env_response, test_title)
|
9
10
|
@env_response = env_response
|
11
|
+
@test_title = test_title
|
10
12
|
end
|
11
13
|
|
12
14
|
def method
|
@@ -24,6 +26,25 @@ module Fitting
|
|
24
26
|
def response
|
25
27
|
@response ||= Fitting::Records::Tested::Response.new(@env_response)
|
26
28
|
end
|
29
|
+
|
30
|
+
def test_path
|
31
|
+
@test_path ||= @test_title[/#{'\(\.'}(.*?)#{'\)'}/m, 1] || @test_title[/#{'\.'}(.*?)#{'\"'}/m, 1]
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_file_path
|
35
|
+
@test_file_path ||= test_path.split(':').first
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_spherical
|
39
|
+
Fitting::Records::Spherical::Request.new(
|
40
|
+
method: method,
|
41
|
+
path: path,
|
42
|
+
body: body,
|
43
|
+
response: response.to_spherical,
|
44
|
+
title: test_path,
|
45
|
+
group: test_file_path
|
46
|
+
)
|
47
|
+
end
|
27
48
|
end
|
28
49
|
end
|
29
50
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'fitting/records/spherical/response'
|
2
|
+
|
1
3
|
module Fitting
|
2
4
|
class Records
|
3
5
|
class Tested
|
@@ -13,6 +15,13 @@ module Fitting
|
|
13
15
|
def body
|
14
16
|
@body ||= @env_response.body
|
15
17
|
end
|
18
|
+
|
19
|
+
def to_spherical
|
20
|
+
Fitting::Records::Spherical::Response.new(
|
21
|
+
status: status,
|
22
|
+
body: body
|
23
|
+
)
|
24
|
+
end
|
16
25
|
end
|
17
26
|
end
|
18
27
|
end
|
@@ -24,7 +24,7 @@ module Fitting
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def tested_responses
|
27
|
-
@tested_responses ||= @tested_requests.inject([]) do |res, tested_request|
|
27
|
+
@tested_responses ||= @tested_requests.to_a.inject([]) do |res, tested_request|
|
28
28
|
next res unless @documented_request.method == tested_request.method &&
|
29
29
|
@documented_request.path.match(tested_request.path.to_s)
|
30
30
|
res.push(tested_request.response)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'fitting/statistics'
|
2
|
+
require 'fitting/tests'
|
2
3
|
require 'fitting/records/tested/request'
|
3
4
|
|
4
5
|
module Fitting
|
@@ -8,13 +9,17 @@ module Fitting
|
|
8
9
|
@tested_requests = []
|
9
10
|
end
|
10
11
|
|
11
|
-
def add(env_response)
|
12
|
-
@tested_requests.push(Fitting::Records::Tested::Request.new(env_response))
|
12
|
+
def add(env_response, test_title = '')
|
13
|
+
@tested_requests.push(Fitting::Records::Tested::Request.new(env_response, test_title))
|
13
14
|
end
|
14
15
|
|
15
16
|
def statistics
|
16
17
|
Fitting::Statistics.new(@tested_requests)
|
17
18
|
end
|
19
|
+
|
20
|
+
def tests
|
21
|
+
Fitting::Tests.new(@tested_requests)
|
22
|
+
end
|
18
23
|
end
|
19
24
|
end
|
20
25
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Fitting
|
2
|
+
class Templates
|
3
|
+
class RealizedTemplate
|
4
|
+
def initialize(realized_unit)
|
5
|
+
@realized_unit = realized_unit
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_s
|
9
|
+
res = ''
|
10
|
+
res += "1. Find request method and path:\n"
|
11
|
+
@realized_unit.test_file_paths.each do |key, requests|
|
12
|
+
all_good = requests.all? { |request| request.documented? }
|
13
|
+
res += "file: #{key} #{all_good ? '✔' : '✖'}\n"
|
14
|
+
end
|
15
|
+
res += "\n2. Find response status code:\n"
|
16
|
+
@realized_unit.test_file_paths.each do |key, requests|
|
17
|
+
all_good = requests.all? { |request| request.response_documented? }
|
18
|
+
res += "file: #{key} #{all_good ? '✔' : '✖'}\n"
|
19
|
+
end
|
20
|
+
res += "\n3. Find response json-schemas:\n"
|
21
|
+
@realized_unit.test_file_paths.each do |key, requests|
|
22
|
+
all_good = requests.all? { |request| request.response_json_schemas? }
|
23
|
+
res += "file: #{key} #{all_good ? '✔' : '✖'}\n"
|
24
|
+
end
|
25
|
+
res += "\n4. Check valid json-schemas:\n"
|
26
|
+
@realized_unit.test_file_paths.each do |key, requests|
|
27
|
+
all_good = requests.all? { |request| request.valid_json_schemas? }
|
28
|
+
res += "path: #{key} #{all_good ? '✔' : '✖'}\n"
|
29
|
+
unless all_good
|
30
|
+
requests.map do |request|
|
31
|
+
unless request.valid_json_schemas?
|
32
|
+
res += " full path: #{request.test_path} ✖\n"
|
33
|
+
res += " request.method #{request.method}\n"
|
34
|
+
res += " request.path #{request.path}\n"
|
35
|
+
res += " request.response.status #{request.response.status}\n"
|
36
|
+
res += " request.response.body #{request.response.body}\n\n"
|
37
|
+
request.invalid_json_schemas.map do |schema|
|
38
|
+
res += " json_schemas: #{schema[:json_schema]}\n"
|
39
|
+
res += " fully_validate: #{schema[:fully_validate]}\n\n"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
res
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'fitting/statistics/template'
|
2
|
+
|
3
|
+
module Fitting
|
4
|
+
class Tests
|
5
|
+
def initialize(tested_requests)
|
6
|
+
@tested_requests = tested_requests
|
7
|
+
end
|
8
|
+
|
9
|
+
def save
|
10
|
+
array = @tested_requests.inject([]) do |res, request|
|
11
|
+
next res unless request.path.to_s.start_with?(Fitting.configuration.prefix)
|
12
|
+
res.push(request.to_spherical.to_hash)
|
13
|
+
end
|
14
|
+
json = JSON.dump(array)
|
15
|
+
File.open("tests.json", 'w') { |file| file.write(json) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def make_dir(dir_name)
|
19
|
+
FileUtils.mkdir_p(dir_name)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
data/lib/fitting/version.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'fitting/records/spherical/requests'
|
2
|
+
require 'fitting/configuration'
|
3
|
+
require 'fitting/records/realized_unit'
|
4
|
+
require 'fitting/templates/realized_template'
|
5
|
+
|
6
|
+
namespace :fitting do
|
7
|
+
desc 'Fitting documentation'
|
8
|
+
task :documentation do
|
9
|
+
documented_unit = Fitting::Statistics::Template.new(
|
10
|
+
Fitting::Records::Spherical::Requests.new,
|
11
|
+
Fitting.configuration
|
12
|
+
)
|
13
|
+
puts documented_unit.stats
|
14
|
+
|
15
|
+
unless documented_unit.not_covered == "\n"
|
16
|
+
puts 'Not all responses from the whitelist are covered!'
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'Fitting tests'
|
22
|
+
task :tests do
|
23
|
+
realized_unit = Fitting::Records::RealizedUnit.new(
|
24
|
+
Fitting::Records::Spherical::Requests.new,
|
25
|
+
Fitting.configuration.tomogram
|
26
|
+
)
|
27
|
+
puts Fitting::Templates::RealizedTemplate.new(realized_unit).to_s
|
28
|
+
|
29
|
+
unless realized_unit.fully_covered?
|
30
|
+
puts 'Not all responses from the whitelist are covered!'
|
31
|
+
exit 1
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fitting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- d.efimov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json-schema
|
@@ -197,7 +197,13 @@ files:
|
|
197
197
|
- lib/fitting/configuration/yaml.rb
|
198
198
|
- lib/fitting/documentation.rb
|
199
199
|
- lib/fitting/matchers/response_matcher.rb
|
200
|
+
- lib/fitting/railtie.rb
|
200
201
|
- lib/fitting/records/documented/request.rb
|
202
|
+
- lib/fitting/records/realized_unit.rb
|
203
|
+
- lib/fitting/records/spherical/request.rb
|
204
|
+
- lib/fitting/records/spherical/requests.rb
|
205
|
+
- lib/fitting/records/spherical/response.rb
|
206
|
+
- lib/fitting/records/test_unit/request.rb
|
201
207
|
- lib/fitting/records/tested/request.rb
|
202
208
|
- lib/fitting/records/tested/response.rb
|
203
209
|
- lib/fitting/records/unit/json_schema.rb
|
@@ -219,7 +225,10 @@ files:
|
|
219
225
|
- lib/fitting/statistics/template.rb
|
220
226
|
- lib/fitting/storage/responses.rb
|
221
227
|
- lib/fitting/storage/white_list.rb
|
228
|
+
- lib/fitting/templates/realized_template.rb
|
229
|
+
- lib/fitting/tests.rb
|
222
230
|
- lib/fitting/version.rb
|
231
|
+
- lib/tasks/fitting.rake
|
223
232
|
homepage: https://github.com/funbox/fitting
|
224
233
|
licenses:
|
225
234
|
- MIT
|