fitting 2.15.0 → 2.16.0

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: d604ca859d26a71406a404ad3fd2ea7d232fa670ee1f930ada129df6fe55f15a
4
- data.tar.gz: 919ece6a20bdf078459ef5b42351687ddbabb01296364ba52cf4f5e669e36d7d
3
+ metadata.gz: 9de3ef63b994a6585d5795ebff3c5473d5b150a47b29abab37d8c306a813e4ee
4
+ data.tar.gz: 0c8b4c52d63c38f4b1d6fb174b991544b185bedde24722b09428adfb0260cf05
5
5
  SHA512:
6
- metadata.gz: '0810933b01cb101b7cee10d06e522a29e746139181ccd7c948f6af3b6aa0dcf082856db941c371b1e1945839b5a7ddff537fc2656025bf905485d06ed61685bd'
7
- data.tar.gz: c08f43a84f31a7d029c0c72f4667e95c9e9769a92a3bb243a4a6de7af8da2e493bd63716794ee24f04eb7bd31dff43a71bb2ebf67ec9078685fb08dffd885195
6
+ metadata.gz: df9e196563d7a3430b228d9bc4fdaf13600a4db62ee0c8182506b30a4c890fb39a4bb3dc0ae194df63d6a48489ccaf8817dda54c6e6ab3c509a9fa5ee73421c2
7
+ data.tar.gz: a140201ca99818ce637b39d80721a26a0c00a75beb5435778e41aacce5e60e953d6b62c285272295b48446c234c3992dd0b7c87c8670bad91d0601f64a7ded1e
@@ -23,10 +23,10 @@ jobs:
23
23
  - name: Set up Ruby
24
24
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
25
25
  # change this to (see https://github.com/ruby/setup-ruby#versioning):
26
- # uses: ruby/setup-ruby@v1
27
- uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
26
+ uses: ruby/setup-ruby@v1
27
+ # uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
28
28
  with:
29
- ruby-version: 2.6
29
+ ruby-version: 2.7
30
30
  - name: Install dependencies
31
31
  run: bundle install
32
32
  - name: Run tests
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Change log
2
2
 
3
+ ### 2.16.0 - 2021-02-10
4
+
5
+ * features
6
+ * support swagger and openapi [#96](https://github.com/funbox/fitting/issues/96)
7
+ * patch
8
+ * let's bump to tomograph '3.0.1' [#95](https://github.com/funbox/fitting/issues/95)
9
+
3
10
  ### 2.15.0 - 2020-10-12
4
11
 
5
12
  * features
data/README.md CHANGED
@@ -1,41 +1,25 @@
1
1
  # Fitting
2
-
3
- [![Gem Version](https://badge.fury.io/rb/fitting.svg)](https://badge.fury.io/rb/fitting)
4
-
5
- This gem will help you implement your API in strict accordance to the documentation in [API Blueprint](https://apiblueprint.org/) format.
6
- To do this, when you run your RSpec tests on controllers, it automatically searches for the corresponding JSON-schemas in the documentation and then validates responses with them.
2
+ Coverage API Blueprint, Swagger and OpenAPI with rspec tests for easily make high-quality API and documenatiton.
3
+ ![exmaple](example.png)
7
4
 
8
5
  ## Installation
9
-
10
- First you need to install [drafter](https://github.com/apiaryio/drafter).
11
-
12
- Then add this line to your application's Gemfile:
13
-
6
+ Add this line to your application's Gemfile:
14
7
  ```ruby
15
8
  gem 'fitting'
16
9
  ```
17
10
 
18
11
  After that execute:
19
-
20
12
  ```bash
21
13
  $ bundle
22
14
  ```
23
15
 
24
16
  Or install the gem by yourself:
25
-
26
17
  ```bash
27
18
  $ gem install fitting
28
19
  ```
29
20
 
30
21
  ## Usage
31
-
32
- Add this to your `.fitting.yml`:
33
-
34
- ```yaml
35
- apib_path: /path/to/doc.apib
36
- ```
37
-
38
- And this to your `spec_helper.rb`:
22
+ And next to your `spec_helper.rb`:
39
23
 
40
24
  ```ruby
41
25
  require 'fitting'
@@ -43,305 +27,103 @@ require 'fitting'
43
27
  Fitting.save_test_data
44
28
  ```
45
29
 
46
- The result files will be created in `./fitting_tests/` folder.
47
-
48
- Output example:
49
-
50
- ```json
51
- [
52
- {
53
- "method": "GET",
54
- "path": "/api/v1/book",
55
- "body": {},
56
- "response": {
57
- "status": 200,
58
- "body": {
59
- "title": "The Martian Chronicles"
60
- }
61
- },
62
- "title": "/spec/controllers/api/v1/books_controller_spec.rb:11",
63
- "group": "/spec/controllers/api/v1/books_controller_spec.rb"
64
- },
65
- {
66
- "method": "POST",
67
- "path": "/api/v1/book",
68
- "body": {},
69
- "response": {
70
- "status": 200,
71
- "body": {
72
- "title": "The Old Man and the Sea"
73
- }
74
- },
75
- "title": "/spec/controllers/api/v1/books_controller_spec.rb:22",
76
- "group": "/spec/controllers/api/v1/books_controller_spec.rb"
77
- }
78
- ]
79
- ```
80
-
81
- ## Documentation coverage
82
-
83
- To match routes and validate JSON-schemas run:
84
-
85
- ```bash
86
- rake fitting:documentation_responses[report_size]
87
- ```
88
-
89
- There are four types (or `report_size`) of reports available:
90
-
91
- - `xs` — the smallest report;
92
- - `s` — includes coverage for `required` fields;
93
- - `m` — includes coverage for `required` and `enum` fields;
94
- - `l` — includes coverage for `required`, `enum` and `oneOf` fields.
95
-
96
- E.g. for `xs` size:
97
-
98
- ```bash
99
- rake fitting:documentation_responses[xs]
100
- ```
101
-
102
- **Note**: In zsh you should add quotes around the task:
103
-
104
- ```bash
105
- rake 'fitting:documentation_responses[xs]'
106
- ```
107
-
108
- Also you can use `documentation_responses_error` to get more detailed errors description.
109
- Check the examples below.
110
-
111
- ### Examples
112
-
113
- `xs` size:
114
-
115
- ```text
116
- Fully conforming requests:
117
- DELETE /api/v1/book ✔ 200 ✔ 201 ✔ 404
118
- DELETE /api/v1/book/{id} ✔ 200 ✔ 201 ✔ 404
119
- GET /api/v1/book/{id}/seller ✔ 200 ✔ 201 ✔ 404
120
-
121
- Partially conforming requests:
122
- GET /api/v1/book ✖ 200 ✔ 404
123
- POST /api/v1/book ✖ 200 ✔ 201 ✔ 404
124
- GET /api/v1/book/{id} ✖ 200 ✔ 404 ✔ 200
125
- PATCH /api/v1/book/{id} ✖ 200 ✔ 201 ✔ 404
126
-
127
- Non-conforming requests:
128
- GET /api/v1/seller ✖ 200 ✖ 201 ✖ 404
129
- GET /api/v1/buyer ✖ 200 ✖ 404
130
-
131
- API requests with fully implemented responses: 3 (33.33% of 9).
132
- API requests with partially implemented responses: 4 (44.44% of 9).
133
- API requests with no implemented responses: 2 (22.22% of 9).
134
-
135
- API responses conforming to the blueprint: 16 (64.00% of 25).
136
- API responses with validation errors or untested: 9 (36.00% of 25).
137
- ```
138
-
139
- `s` size:
140
-
141
- ```text
142
- Fully conforming requests:
143
- DELETE /api/v1/book 100% 200 100% 201 100% 404
144
- DELETE /api/v1/book/{id} 100% 200 100% 201 100% 404
145
- GET /api/v1/book/{id}/seller 100% 200 100% 201 100% 404
146
-
147
- Partially conforming requests:
148
- GET /api/v1/book 0% 200 66% 404
149
- POST /api/v1/book 0% 200 90% 201 100% 404
150
- GET /api/v1/book/{id} 0% 200 88% 404 10% 200
151
- PATCH /api/v1/book/{id} 0% 200 100% 201 10% 404
152
-
153
- Non-conforming requests:
154
- GET /api/v1/seller 0% 200 0% 201 0 404
155
- GET /api/v1/buyer 0% 200 0% 404
156
-
157
- API requests with fully implemented responses: 3 (33.33% of 9).
158
- API requests with partially implemented responses: 4 (44.44% of 9).
159
- API requests with no implemented responses: 2 (22.22% of 9).
160
-
161
- API responses conforming to the blueprint: 16 (64.00% of 25).
162
- API responses with validation errors or untested: 9 (36.00% of 25).
163
- ```
30
+ Add this to your `.fitting.yml`:
164
31
 
165
- `documentation_responses_error[s]` example:
32
+ ### OpenAPI 2.0
33
+ Also Swagger
166
34
 
35
+ ```yaml
36
+ prefixes:
37
+ - name: /api/v1
38
+ openapi2_json_path: doc.json
167
39
  ```
168
- request method: GET
169
- request path: /api/v1/book
170
- response status: 200
171
- source json-schema: {"$schema"=>"http://json-schema.org/draft-04/schema#", "type"=>"object", ...}
172
- combination: ["required", "pages"]
173
- new json-schema: {"$schema"=>"http://json-schema.org/draft-04/schema#", "type"=>"object", ...}
174
- ```
175
-
176
- ### Experimental report
177
40
 
178
- This report will be available and properly documented in the next major update, but you already can try it by running:
41
+ ### OpenAPI 3.0
42
+ Also OpenAPI
179
43
 
180
- ```bash
181
- bundle e rake fitting:report
44
+ ```yaml
45
+ prefixes:
46
+ - name: /api/v1
47
+ openapi3_yaml_path: doc.yaml
182
48
  ```
183
49
 
184
- Using this you can document API prefixes.
185
- The task will create JSON (`fitting/report.json`) and HTML (`fitting/index.html`) reports.
186
-
187
- ## Tests coverage
50
+ ### API Blueprint
51
+ First you need to install [drafter](https://github.com/apiaryio/drafter).
52
+ Works after conversion from API Blueprint to API Elements (in YAML file) with Drafter.
188
53
 
189
- Only `xs` size is available for tests coverage:
54
+ That is, I mean that you first need to do this
190
55
 
191
56
  ```bash
192
- rake fitting:tests_responses[xs]
193
- ```
194
-
195
- ## Config
196
-
197
- You can specify the settings either in a YAML file `.fitting.yml` or in a config.
198
- If your project uses several prefixes, for each one you should create a separate YAML file in the folder `fitting` (`fitting/*.yml`).
199
-
200
- All the available config options are described below.
201
-
202
- ### `apib_path`
203
-
204
- Path to API Blueprint v3 documentation.
205
- There must be an installed [drafter](https://github.com/apiaryio/drafter) to parse it.
206
-
207
- ### `drafter_yaml_path`
208
-
209
- Path to API Blueprint v3 documentation, pre-parsed with `drafter` and saved to a YAML file.
210
-
211
- ### `drafter_4_apib_path`
212
-
213
- Path to API Blueprint v4 documentation.
214
- There must be an installed [drafter](https://github.com/apiaryio/drafter) to parse it.
215
-
216
- ### `drafter_4_yaml_path`
217
-
218
- Path to API Blueprint v4 documentation, pre-parsed with `drafter` and saved to a YAML file.
219
-
220
- ### `crafter_apib_path`
221
-
222
- Path to API Blueprint v4 documentation.
223
-
224
- ### `crafter_yaml_path`
225
-
226
- Path to API Blueprint v4 documentation, pre-parsed with `crafter` and saved to a YAML file.
227
-
228
- ### `tomogram_json_path`
229
-
230
- Path to Tomogram documentation, pre-parsed with [tomograph](https://github.com/funbox/tomograph) and saved to a JSON file.
231
-
232
- ### `strict`
233
-
234
- Default: `false`
235
-
236
- When `true` all properties are considered to have `"required": true` and all objects are considered to have `"additionalProperties": false`.
237
-
238
- ### `prefix`
239
-
240
- Prefix for API requests. E.g. `'/api'`. Validation will not be performed if the request path does not start with a prefix.
241
-
242
- ### `white_list`
243
-
244
- Default: all paths
245
-
246
- This is an array of paths that are mandatory for implementation.
247
- The list does not affect the work of the matcher.
248
- It's used for the CLI report only.
249
-
250
- ```yaml
251
- white_list:
252
- /users:
253
- - DELETE
254
- - POST
255
- /users/{id}:
256
- - GET
257
- - PATCH
258
- /users/{id}/employees:
259
- - GET
260
- /sessions: []
57
+ drafter doc.apib -o doc.yaml
261
58
  ```
262
59
 
263
- Empty array (`[]`) means all methods.
264
-
265
- ### `resource_white_list`
266
-
267
- Default: all resources
268
-
269
- This is an array of resources that are mandatory for implementation.
270
- The list does not affect the work of the matcher.
271
- It's used for the CLI report only.
60
+ and then
272
61
 
273
62
  ```yaml
274
- resource_white_list:
275
- /users:
276
- - DELETE /users/{id}
277
- - POST /users
278
- - GET /users/{id}
279
- - PATCH /users/{id}
280
- /users/{id}/employees:
281
- - GET /users/{id}/employees
282
- /sessions: []
63
+ prefixes:
64
+ - name: /api/v1
65
+ drafter_yaml_path: doc.yaml
283
66
  ```
284
67
 
285
- Empty array (`[]`) means all methods.
286
-
287
- ### `json_schema_cover`
288
-
289
- Default: false
290
-
291
- JSON-schema covering becomes mandatory.
292
- However, if you don't use `Fitting.statistics` you can call `responses.statistics.cover_save`.
293
-
294
- ### `include_resources`
68
+ ### Tomograph
295
69
 
296
- Default: all resources (but only when `include_resources` and `include_actions` are not defined)
297
-
298
- This is an array of resources that are mandatory for implementation.
299
- The list does not affect the work of the matcher.
300
- It's used for the CLI report only.
70
+ To use additional features of the pre-converted [tomograph](https://github.com/funbox/tomograph)
301
71
 
302
72
  ```yaml
303
- include_resources:
304
- - /sessions
73
+ prefixes:
74
+ - name: /api/v1
75
+ tomogram_json_path: doc.json
305
76
  ```
306
77
 
307
- ### `include_actions`
308
-
309
- Default: all paths (but only when `include_resources` and `include_actions` are not defined)
310
-
311
- This is an array of paths that are mandatory for implementation.
312
- The list does not affect the work of the matcher.
313
- It's used for the CLI report only.
314
-
315
- ```yaml
316
- include_actions:
317
- - DELETE /users/{id}
318
- - POST /users
319
- - GET /users/{id}
320
- - PATCH /users/{id}
321
- - GET /users/{id}/employees
78
+ ## Run
79
+ Run tests first to get run artifacts
80
+ ```bash
81
+ bundle e rspec
322
82
  ```
323
83
 
324
- ### `ignore_list`
325
-
326
- You can use ignore list to omit checks with matchers.
327
-
328
- ```yaml
329
- ignore_list:
330
- - %r{/api/v1/users/[1-9].}
331
- - %r{/api/v1/comments}
84
+ and then
85
+ ```bash
86
+ bundle e rake fitting:report
332
87
  ```
333
88
 
334
- It works only for `match_schema` and **not** for `strictly_match_schema`.
335
-
336
- ### `prefixes`
89
+ Console ouptut
337
90
 
338
- Example:
339
-
340
- ```yaml
341
- prefixes:
342
- - name: /api/v1
343
- - name: /api/v2
344
- ```
91
+ ```text
92
+ /api/v1
93
+ POST /api/v1/accounts/{account_id}/inboxes 0% 200 0% 404 0% 403
94
+ PATCH /api/v1/accounts/{account_id}/inboxes/{id} 0% 200 0% 404 0% 403
95
+ POST /api/v1/accounts/{account_id}/inboxes/{id}/set_agent_bot 0% 204 100% 404 0% 403
96
+ GET /api/v1/agent_bots 0% 200 0% 404 0% 403
97
+ GET /api/v1/accounts/{account_id}/conversations 0% 200 0% 400 0% description
98
+ POST /api/v1/accounts/{account_id}/conversations 0% 200 0% 403
99
+ GET /api/v1/accounts/{account_id}/conversations/{id} 59% 200 0% 404 0% 403
100
+ POST /api/v1/accounts/{account_id}/conversations/{id}/toggle_status 80% 200 0% 404 0% 403
101
+ GET /api/v1/accounts/{account_id}/conversations/{id}/messages 47% 200 0% 404 0% 403
102
+ POST /api/v1/accounts/{account_id}/conversations/{id}/messages 0% 200 0% 404 0% 403
103
+ GET /api/v1/accounts/{account_id}/conversations/{id}/labels 100% 200 0% 404 0% 403
104
+ POST /api/v1/accounts/{account_id}/conversations/{id}/labels 100% 200 0% 404 0% 403
105
+ POST /api/v1/accounts/{account_id}/conversations/{id}/assignments 77% 200 0% 404 0% 403
106
+ GET /api/v1/accounts/{account_id}/contacts 0% 200 0% 400
107
+ POST /api/v1/accounts/{account_id}/contacts 14% 200 0% 400
108
+ GET /api/v1/accounts/{account_id}/contacts/{id} 14% 200 0% 404 0% 403
109
+ PUT /api/v1/accounts/{account_id}/contacts/{id} 0% 204 0% 404 0% 403
110
+ GET /api/v1/accounts/{account_id}/contacts/{id}/conversations 0% 200 0% 404 0% 403
111
+ GET /api/v1/accounts/{account_id}/contacts/search 0% 200 0% 401
112
+ POST /api/v1/accounts/{account_id}/contacts/{id}/contact_inboxes 0% 200 0% 401 100% 422
113
+ GET /api/v1/profile 88% 200 100% 401
114
+
115
+ tests_without_prefixes: 42
116
+ tests_without_actions: 144
117
+ tests_without_responses: 43
118
+ ```
119
+
120
+ And task will create HTML (`fitting/index.html`) reports.
121
+
122
+ ![exmaple](example.png)
123
+
124
+ More information on action coverage
125
+
126
+ ![exmaple2](example2.png)
345
127
 
346
128
  ## Contributing
347
129
 
data/example.png ADDED
Binary file
data/example2.png ADDED
Binary file
data/fitting.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ['d.efimov']
9
9
  spec.email = ['d.efimov@fun-box.ru']
10
10
 
11
- spec.summary = 'Validation in the rspec of API Blueprint'
12
- spec.description = 'Validation responses in the rspec with the help of API Blueprint'
11
+ spec.summary = 'Coverage API Blueprint, Swagger and OpenAPI with rspec tests'
12
+ spec.description = 'Coverage API Blueprint, Swagger and OpenAPI with rspec tests for easily make high-quality API and documenatiton.'
13
13
  spec.homepage = 'https://github.com/funbox/fitting'
14
14
  spec.license = 'MIT'
15
15
 
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_runtime_dependency 'json-schema', '~> 2.6', '>= 2.6.2'
22
22
  spec.add_runtime_dependency 'multi_json', '~> 1.11'
23
- spec.add_runtime_dependency 'tomograph', '~> 3.0', '>= 3.0.0'
23
+ spec.add_runtime_dependency 'tomograph', '~> 3.1', '>= 3.1.0'
24
24
  spec.add_development_dependency 'bundler', '~> 2.0'
25
25
  spec.add_development_dependency 'byebug', '~> 8.2', '>= 8.2.1'
26
26
  spec.add_development_dependency 'rake', '>= 12.3.3'
@@ -3,11 +3,7 @@ require 'fitting/report/action'
3
3
  module Fitting
4
4
  module Report
5
5
  class Actions
6
- def initialize(prefix, tomogram_json_path)
7
- actions = Tomograph::Tomogram.new(
8
- prefix: prefix,
9
- tomogram_json_path: tomogram_json_path
10
- )
6
+ def initialize(actions)
11
7
  @actions = []
12
8
  actions.to_a.map do |action|
13
9
  @actions.push(Fitting::Report::Action.new(action))
@@ -15,7 +15,7 @@ module Fitting
15
15
  @tests_without_actions += prefix_details[:actions][:tests_without_actions]
16
16
  res += prefix_details[:actions][:actions_details].inject('') do |res_actions, action|
17
17
  res_actions += "#{action[:method]}\t#{action[:path]}"
18
- tab = "\t" * ((3 - action[:path].size / 8) + 3)
18
+ tab = "\t" * (8 - action[:path].size / 8)
19
19
  @tests_without_responses += action[:responses][:tests_without_responses]
20
20
  res_actions += tab + action[:responses][:responses_details].inject('') do |res_responses, response|
21
21
  @good = false if response[:combinations][:cover_percent] != '100%'
@@ -3,13 +3,48 @@ require 'fitting/report/actions'
3
3
  module Fitting
4
4
  module Report
5
5
  class Prefix
6
- def initialize(name, tomogram_json_path, skip = false)
6
+ def initialize(name: '', openapi2_json_path: nil, openapi3_yaml_path: nil, drafter_yaml_path: nil, tomogram_json_path: nil, crafter_yaml_path: nil, skip: false)
7
7
  @name = name
8
8
  @tomogram_json_path = tomogram_json_path
9
9
  @tests = Fitting::Report::Tests.new([])
10
10
  @skip = skip
11
11
  unless skip
12
- @actions = Fitting::Report::Actions.new(name, tomogram_json_path)
12
+ @actions = if openapi2_json_path
13
+ Fitting::Report::Actions.new(
14
+ Tomograph::Tomogram.new(
15
+ prefix: name,
16
+ openapi2_json_path: openapi2_json_path
17
+ )
18
+ )
19
+ elsif openapi3_yaml_path
20
+ Fitting::Report::Actions.new(
21
+ Tomograph::Tomogram.new(
22
+ prefix: name,
23
+ openapi3_yaml_path: openapi3_yaml_path
24
+ )
25
+ )
26
+ elsif drafter_yaml_path
27
+ Fitting::Report::Actions.new(
28
+ Tomograph::Tomogram.new(
29
+ prefix: name,
30
+ drafter_yaml_path: drafter_yaml_path
31
+ )
32
+ )
33
+ elsif crafter_yaml_path
34
+ Fitting::Report::Actions.new(
35
+ Tomograph::Tomogram.new(
36
+ prefix: name,
37
+ crafter_yaml_path: crafter_yaml_path
38
+ )
39
+ )
40
+ else
41
+ Fitting::Report::Actions.new(
42
+ Tomograph::Tomogram.new(
43
+ prefix: name,
44
+ tomogram_json_path: tomogram_json_path
45
+ )
46
+ )
47
+ end
13
48
  end
14
49
  end
15
50
 
@@ -6,7 +6,17 @@ module Fitting
6
6
  def initialize(config_path)
7
7
  @prefixes = []
8
8
  YAML.safe_load(File.read(config_path))['prefixes'].map do |prefix|
9
- @prefixes.push(Fitting::Report::Prefix.new(prefix['name'], prefix['tomogram_json_path'], prefix['skip']))
9
+ @prefixes.push(
10
+ Fitting::Report::Prefix.new(
11
+ name: prefix['name'],
12
+ openapi2_json_path: prefix['openapi2_json_path'],
13
+ openapi3_yaml_path: prefix['openapi3_yaml_path'],
14
+ drafter_yaml_path: prefix['drafter_yaml_path'],
15
+ tomogram_json_path: prefix['tomogram_json_path'],
16
+ crafter_yaml_path: prefix['crafter_yaml_path'],
17
+ skip: prefix['skip']
18
+ )
19
+ )
10
20
  end
11
21
  end
12
22
 
@@ -14,11 +14,11 @@ module Fitting
14
14
  end
15
15
 
16
16
  def status
17
- @response['status']
17
+ @response['status'] || @response[:status]
18
18
  end
19
19
 
20
20
  def body
21
- @response['body']
21
+ @response['body'] || @response[:body]
22
22
  end
23
23
 
24
24
  def id
@@ -1,3 +1,3 @@
1
1
  module Fitting
2
- VERSION = '2.15.0'.freeze
2
+ VERSION = '2.16.0'.freeze
3
3
  end
@@ -1594,6 +1594,12 @@
1594
1594
  "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1595
1595
  "dev": true
1596
1596
  },
1597
+ "highlight.js": {
1598
+ "version": "9.18.5",
1599
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz",
1600
+ "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==",
1601
+ "dev": true
1602
+ },
1597
1603
  "supports-color": {
1598
1604
  "version": "7.1.0",
1599
1605
  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
@@ -3817,9 +3823,9 @@
3817
3823
  "dev": true
3818
3824
  },
3819
3825
  "highlight.js": {
3820
- "version": "9.18.1",
3821
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz",
3822
- "integrity": "sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==",
3826
+ "version": "10.4.1",
3827
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
3828
+ "integrity": "sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==",
3823
3829
  "dev": true
3824
3830
  },
3825
3831
  "hmac-drbg": {
@@ -16,7 +16,8 @@
16
16
  "@vue/cli-service": "~4.4.0",
17
17
  "vue-template-compiler": "^2.6.11",
18
18
  "serialize-javascript": ">=3.1.0",
19
- "node-forge": ">=0.10.0"
19
+ "node-forge": ">=0.10.0",
20
+ "highlight.js": ">=10.4.1"
20
21
  },
21
22
  "browserslist": [
22
23
  "> 1%",
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.15.0
4
+ version: 2.16.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: 2020-10-12 00:00:00.000000000 Z
11
+ date: 2021-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-schema
@@ -50,20 +50,20 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 3.0.0
53
+ version: 3.1.0
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '3.0'
56
+ version: '3.1'
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 3.0.0
63
+ version: 3.1.0
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '3.0'
66
+ version: '3.1'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: bundler
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -172,7 +172,8 @@ dependencies:
172
172
  - - ">="
173
173
  - !ruby/object:Gem::Version
174
174
  version: 0.11.2
175
- description: Validation responses in the rspec with the help of API Blueprint
175
+ description: Coverage API Blueprint, Swagger and OpenAPI with rspec tests for easily
176
+ make high-quality API and documenatiton.
176
177
  email:
177
178
  - d.efimov@fun-box.ru
178
179
  executables: []
@@ -192,6 +193,8 @@ files:
192
193
  - Rakefile
193
194
  - bin/console
194
195
  - bin/setup
196
+ - example.png
197
+ - example2.png
195
198
  - fitting.gemspec
196
199
  - lib/fitting.rb
197
200
  - lib/fitting/configuration.rb
@@ -304,5 +307,5 @@ requirements: []
304
307
  rubygems_version: 3.0.1
305
308
  signing_key:
306
309
  specification_version: 4
307
- summary: Validation in the rspec of API Blueprint
310
+ summary: Coverage API Blueprint, Swagger and OpenAPI with rspec tests
308
311
  test_files: []