grape-doc 0.4.0 → 0.4.1
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/README.md +48 -8
- data/VERSION +1 -1
- data/lib/grape/doc/generator.rb +4 -3
- data/test/test_generator.rb +1 -1
- metadata +1 -3
- data/test/sample.html +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: caa394eadde9afd947824250ce504efef851025d
|
4
|
+
data.tar.gz: 30a65e747ab167f41d4c4ac5b11aa54092d981fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b95bb7efabc6e93a542d38440af9fda0dee90b5e0020e6ca95753f932ce3ab7ceb37df72d0369c0369d27b75a3756dfa7b5a57ce22c43dfc4c14a071c162091
|
7
|
+
data.tar.gz: c676d58047822cd7148de315b84838b25db853568c01581e197a67581ace8da1c36a41d63074bd2a685c799bb88f46e5bfda14a6cb1f2a3a37541f07b49dbeaf
|
data/README.md
CHANGED
@@ -1,18 +1,58 @@
|
|
1
1
|
Grape-Doc
|
2
2
|
========
|
3
3
|
|
4
|
-
|
4
|
+
### Description
|
5
5
|
|
6
|
-
|
6
|
+
It's a Grape documentation generator for lazy developers.
|
7
|
+
The main goal is to make as clean and useful documentation
|
8
|
+
as possible for 3. party developers to your application without
|
9
|
+
sharing anything from the code.
|
7
10
|
|
8
|
-
|
11
|
+
The Documentation generator it self is a little evil because
|
12
|
+
it not force but really count on it, that you make test for
|
13
|
+
your api endpoints. For now it's all based on rack-test,
|
14
|
+
but support will be given for other testing frameworks too.
|
15
|
+
|
16
|
+
But dont misunderstand this, it can live without it,
|
17
|
+
you just have to do more support for the others,
|
18
|
+
because the documentation will lack curl samples and sample
|
19
|
+
response body and stuffs like that.
|
20
|
+
|
21
|
+
#### Install
|
22
|
+
|
23
|
+
$ gem install grape-doc
|
9
24
|
|
10
|
-
Gemfile
|
25
|
+
#### Gemfile
|
26
|
+
|
27
|
+
gem 'grape-doc'
|
28
|
+
|
29
|
+
#### Simple Use
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
|
33
|
+
GrapeDoc.generate
|
34
|
+
#> this will create an api_doc.html in the project_folder/doc
|
35
|
+
|
36
|
+
```
|
37
|
+
|
38
|
+
I Would suggest run minitests first,
|
39
|
+
with including all the test in the test folder that touch anything with your grape api classes.
|
40
|
+
Because a rack-test-poc , there will be generated yaml files in the test/poc folder
|
41
|
+
|
42
|
+
#### Complex Use
|
43
|
+
|
44
|
+
```ruby
|
11
45
|
|
12
|
-
|
46
|
+
GrapeDoc.generate format: 'redmine', # or textile, or html
|
47
|
+
path: File.join(__dir__,'..........')
|
48
|
+
|
13
49
|
|
14
|
-
|
50
|
+
```
|
51
|
+
|
52
|
+
well that was complex! right?
|
15
53
|
|
16
|
-
|
54
|
+
#### After words
|
17
55
|
|
18
|
-
|
56
|
+
I would strongly suggest using Grape build in desc method for api endpoints,
|
57
|
+
and define every parameters ahead, so they will be included in the documentation,
|
58
|
+
and validated on request!
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/lib/grape/doc/generator.rb
CHANGED
@@ -8,8 +8,9 @@ module GrapeDoc
|
|
8
8
|
raise(ArgumentError,'invalid options given') unless opts.class <= Hash
|
9
9
|
@options = {
|
10
10
|
'format' => 'html',
|
11
|
-
'path' => File.join(Helpers.doc_folder_path,'api_doc
|
11
|
+
'path' => File.join(Helpers.doc_folder_path,'api_doc')
|
12
12
|
}.merge(opts.reduce({}){|m,o| m.merge!(o[0].to_s => o[1]) ;m})
|
13
|
+
self.options['path'] = self.options['path'].to_s.sub(/\..*$/,'')
|
13
14
|
|
14
15
|
process_head
|
15
16
|
process_table_of_content
|
@@ -26,11 +27,11 @@ module GrapeDoc
|
|
26
27
|
case @options['format'].to_s.downcase
|
27
28
|
|
28
29
|
when /redmine/,/textile/
|
29
|
-
File.write self.options['path']
|
30
|
+
File.write self.options['path'] + '.textile',
|
30
31
|
document.to_textile
|
31
32
|
|
32
33
|
else
|
33
|
-
File.write self.options['path']
|
34
|
+
File.write self.options['path'] + '.html',
|
34
35
|
document.to_textile.to_html
|
35
36
|
|
36
37
|
|
data/test/test_generator.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape-doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Luzsi
|
@@ -135,7 +135,6 @@ files:
|
|
135
135
|
- lib/grape/doc/helper.rb
|
136
136
|
- lib/grape/doc/parser.rb
|
137
137
|
- lib/grape/doc/prototype.rb
|
138
|
-
- test/sample.html
|
139
138
|
- test/sample.textile
|
140
139
|
- test/test_all.rb
|
141
140
|
- test/test_collector.rb
|
@@ -166,7 +165,6 @@ signing_key:
|
|
166
165
|
specification_version: 4
|
167
166
|
summary: Documentation generator for Grape module
|
168
167
|
test_files:
|
169
|
-
- test/sample.html
|
170
168
|
- test/sample.textile
|
171
169
|
- test/test_all.rb
|
172
170
|
- test/test_collector.rb
|
data/test/sample.html
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
<h1>Rest Api Documentation (grape-doc)</h1>
|
2
|
-
<h2><span class="caps">GET</span>: /hello(.:format)</h2>
|
3
|
-
<h3>Request</h3>
|
4
|
-
<h4>description</h4>
|
5
|
-
<ul>
|
6
|
-
<li>Hello world!</li>
|
7
|
-
</ul>
|
8
|
-
<h4>params</h4>
|
9
|
-
<ul>
|
10
|
-
<li>test
|
11
|
-
<ul>
|
12
|
-
<li>required: false</li>
|
13
|
-
<li>type: String</li>
|
14
|
-
<li>desc: it’s a test string</li>
|
15
|
-
</ul></li>
|
16
|
-
</ul>
|
17
|
-
<h3>Response</h3>
|
18
|
-
<h4>example</h4>
|
19
|
-
<h5>curl sample with /hello</h5>
|
20
|
-
<pre>$ curl -X GET "http://example.org/hello?test=hy" -H "Accept-Version: v1" -H "X-Token: blabla"</pre>
|
21
|
-
<ul>
|
22
|
-
<li>status code: 200</li>
|
23
|
-
<li>format type: json</li>
|
24
|
-
</ul>
|
25
|
-
<h6>raw response body</h6>
|
26
|
-
<pre>{"hello":"world!"}</pre>
|
27
|
-
<h6>json formatted body with Class types</h6>
|
28
|
-
<pre>{
|
29
|
-
"hello": "String"
|
30
|
-
}</pre>
|
31
|
-
<h5>curl sample with /hello.json</h5>
|
32
|
-
<pre>$ curl -X GET "http://example.org/hello.json?" -H "Accept-Version: v1" -H "X-Token: blabla"</pre>
|
33
|
-
<ul>
|
34
|
-
<li>status code: 200</li>
|
35
|
-
<li>format type: json</li>
|
36
|
-
</ul>
|
37
|
-
<h6>raw response body</h6>
|
38
|
-
<pre>{"hello":"world!"}</pre>
|
39
|
-
<h6>json formatted body with Class types</h6>
|
40
|
-
<pre>{
|
41
|
-
"hello": "String"
|
42
|
-
}</pre>
|