lazy_api_doc 0.1.4 → 0.2.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: cade623543ec18c5e5801b2a48759a15c07bb9db03456a677ce8f56f1d746d2d
4
- data.tar.gz: 82896a7629500e91c5485d6f55b7253fe47d3a6ebe77a77230a61337769b68e1
3
+ metadata.gz: 568bfda81852a9cd4823ac786f1bfe2de01a32dc42da6c192304c954dd2d731c
4
+ data.tar.gz: 5d4ccbd550f9cf6b16f589b155e71f3dd120a3eb2a475aa43a7ef39e1b0f8bcf
5
5
  SHA512:
6
- metadata.gz: 191327130ee28424e080044703c76677db0763c7706344eb1e091ee6a7518cc3e950a2fab7efa48c6b02c6fe9adeefb472c96e186c71471f127ae4b32090ad55
7
- data.tar.gz: d6c2ffb1d18af8b61fed0d4256018cd014dcc9ba7d9a2b6c625e525828471691a729e6f8be3f65125845e13dd1072fcfb49e9e89e4cdda504767949afd3982cf
6
+ metadata.gz: 7a99bee831aba3c9e8781b413ed4d53c051b47624673296dfbbe94176ae5dd8e54b1130abd767d46e2ec88a473dfc0d813297a12c2f66a9a017ada45997e1091
7
+ data.tar.gz: 8a05e6d6ea878f4eeba9c032a1b0533e83eafc497bd86b8a51a322b3b2f169059a3df2fb665ca9ff1c799c4df69a01d1a59d094c1d3c8ffd9985124842595770
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.7.0
1
+ ruby-3.0.3
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lazy_api_doc (0.1.4)
4
+ lazy_api_doc (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  ast (2.4.0)
10
10
  diff-lcs (1.3)
11
- docile (1.3.2)
11
+ docile (1.4.0)
12
12
  jaro_winkler (1.5.4)
13
13
  parallel (1.19.0)
14
14
  parser (2.6.5.0)
@@ -38,10 +38,12 @@ GEM
38
38
  rubocop-rspec (1.38.1)
39
39
  rubocop (>= 0.68.1)
40
40
  ruby-progressbar (1.10.1)
41
- simplecov (0.18.5)
41
+ simplecov (0.21.2)
42
42
  docile (~> 1.1)
43
43
  simplecov-html (~> 0.11)
44
- simplecov-html (0.12.2)
44
+ simplecov_json_formatter (~> 0.1)
45
+ simplecov-html (0.12.3)
46
+ simplecov_json_formatter (0.1.3)
45
47
  unicode-display_width (1.6.0)
46
48
 
47
49
  PLATFORMS
@@ -56,4 +58,4 @@ DEPENDENCIES
56
58
  simplecov
57
59
 
58
60
  BUNDLED WITH
59
- 2.1.2
61
+ 2.2.32
data/README.md CHANGED
@@ -1,10 +1,13 @@
1
1
  # LazyApiDoc
2
2
 
3
- A library to generate OpenAPI V3 documentation from tests.
3
+ A library to generate OpenAPI V3 documentation from tests. Try out the results
4
+ [here](https://bguban.github.io/lazy_api_doc/example).
4
5
 
5
6
  LazyApiDoc collects requests and responses from your controller and request specs, retrieves data types, optional
6
7
  attributes, endpoint description and then generates OpenAPI documentation.
7
8
 
9
+ ![screenshot](./screenshot.png)
10
+
8
11
  ## Installation
9
12
 
10
13
  Add this line to your application's Gemfile:
@@ -25,6 +28,22 @@ Then run install task
25
28
 
26
29
  $ rails g lazy_api_doc:install
27
30
 
31
+ ## Configuration
32
+
33
+ You can customize LazyApiDoc behavior using config file or environment variables.
34
+
35
+ ```yaml
36
+ # config/lazy_api_doc.yml
37
+
38
+ # base directory for storing layout files and generated documentation
39
+ path: 'doc/lazy_api_doc' # ENV['LAZY_API_DOC_PATH'] default: 'public/lazy_api_doc'
40
+
41
+ # TTL for files generated by running tests in different processes (ParallelTest). Each process generates a file.
42
+ # After all the processes are done one of them collects all example files and generates the documentation. In case
43
+ # when the example files were not deleted before running the tests, old files will be ignored.
44
+ example_file_ttl: 1800 # ENV['LAZY_API_DOC_EXAMPLE_FILE_TTL'] default: 1800 (30 minutes)
45
+ ```
46
+
28
47
  ## Usage
29
48
 
30
49
  Update files `public/lazy_api_doc/index.html` and `public/lazy_api_doc/layout.yml`. These files will be
@@ -33,11 +52,11 @@ so on.
33
52
 
34
53
  And just run your tests with `DOC=true` environment variable:
35
54
 
36
- $ DOC=true rspec
55
+ $ LAZY_API_DOC=true rspec
37
56
 
38
57
  or
39
58
 
40
- # DOC=true rake test
59
+ # LAZY_API_DOC=true rake test
41
60
 
42
61
  The documentation will be placed `public/lazy_api_doc/api.yml`. To see it just run server
43
62
 
@@ -45,6 +64,18 @@ The documentation will be placed `public/lazy_api_doc/api.yml`. To see it just r
45
64
 
46
65
  and navigate to http://localhost:3000/lazy_api_doc/
47
66
 
67
+ ## How does it work under the hood?
68
+
69
+ LazyApiDoc gathers your test requests and responses, group them by controllers and actions that were affected, and tries to guess the type of every field.
70
+ ```json
71
+ user: {
72
+ id: 1, // Integer
73
+ name: "John Doe", // String,
74
+ created_at: "2020-05-17 20:15:47Z -0400" // DateTime
75
+ }
76
+ ```
77
+ After that, it just builds an OpenAPI specification based on it.
78
+
48
79
  ## Contributing
49
80
 
50
81
  Bug reports and pull requests are welcome on GitHub at https://github.com/bguban/lazy_api_doc. This project is intended