raml_doc 0.0.0 → 0.0.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/Gemfile.lock +1 -1
- data/README.md +10 -32
- data/bin/raml-doc +41 -0
- data/lib/raml_doc/templates/{default.html.erb → html/default/index.html.erb} +41 -23
- data/lib/raml_doc/version.rb +1 -1
- data/lib/raml_doc/view.rb +13 -2
- data/lib/raml_doc.rb +2 -2
- metadata +5 -4
- data/bin/ramldoc +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc012ee4e6a0c7032553609f4354ce5a0a4274ed
|
4
|
+
data.tar.gz: 07ed2ad378f1c4bd4ff3e64790172956011f8251
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ffa2e35a55fc56ae093947a964b2545003ce1101ec8fb3f80257d4b3ef8da3b405b2baca4fc7cf8da9527791ed51596a0c4a75fe9c2f57066332733d01fd6f5
|
7
|
+
data.tar.gz: d9f3282c09f2862bda6b13626946e4205b33fa56da766e306ef006d66caa6c147e8e5a790080e3818e35275a16408032defeebbe35e41c96666c50df0e485aeb
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,41 +1,19 @@
|
|
1
1
|
# RamlDoc
|
2
2
|
|
3
|
-
|
3
|
+
Generate API documentation from RAML files.
|
4
4
|
|
5
|
-
|
5
|
+
## Install
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
Add this line to your application's Gemfile:
|
10
|
-
|
11
|
-
```ruby
|
12
|
-
gem 'raml_doc'
|
7
|
+
```sh
|
8
|
+
gem install raml_doc
|
13
9
|
```
|
14
10
|
|
15
|
-
And then execute:
|
16
|
-
|
17
|
-
$ bundle
|
18
|
-
|
19
|
-
Or install it yourself as:
|
20
|
-
|
21
|
-
$ gem install raml_doc
|
22
|
-
|
23
11
|
## Usage
|
24
12
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
-
|
31
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
-
|
33
|
-
## Contributing
|
34
|
-
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/raml_doc.
|
36
|
-
|
37
|
-
|
38
|
-
## License
|
39
|
-
|
40
|
-
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
13
|
+
```sh
|
14
|
+
raml-doc --help
|
15
|
+
```
|
41
16
|
|
17
|
+
```sh
|
18
|
+
raml-doc -s /path/to/api.raml -t default -f html > /path/to/api.html
|
19
|
+
```
|
data/bin/raml-doc
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "optparse"
|
4
|
+
require "bundler/setup"
|
5
|
+
require "raml_doc"
|
6
|
+
|
7
|
+
options = {
|
8
|
+
:template => "default",
|
9
|
+
:format => "html"
|
10
|
+
}
|
11
|
+
|
12
|
+
option_parser = OptionParser.new do |opts|
|
13
|
+
opts.banner = "Usage: ramldoc [options]"
|
14
|
+
|
15
|
+
opts.on("-v", "--version", "The source RAML file") do |value|
|
16
|
+
if value
|
17
|
+
puts "RamlDoc #{RamlDoc::VERSION}"
|
18
|
+
exit 0
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
opts.on("-s", "--source-file FILE", "The source RAML file") do |value|
|
23
|
+
options[:source_file] = value
|
24
|
+
end
|
25
|
+
|
26
|
+
opts.on("-t", "--template [default]", "The output template to use") do |value|
|
27
|
+
options[:template] = value
|
28
|
+
end
|
29
|
+
|
30
|
+
opts.on("-f", "--format [html]", "The output file format") do |value|
|
31
|
+
options[:template] = value
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
option_parser.parse!
|
36
|
+
|
37
|
+
source_file = options[:source_file]
|
38
|
+
template = options[:template]
|
39
|
+
format = options[:format]
|
40
|
+
|
41
|
+
puts RamlDoc.generate(source_file, template, format)
|
@@ -35,41 +35,47 @@
|
|
35
35
|
<div>
|
36
36
|
<ul class="nav nav-tabs" role="tablist">
|
37
37
|
<li role="presentation" class="active">
|
38
|
-
<a href="
|
38
|
+
<a href="#<%= method_element_id method, "description" %>" aria-controls="home" role="tab" data-toggle="tab">
|
39
39
|
<i class="fa fa-info-circle" aria-hidden="true"></i>
|
40
40
|
Description
|
41
41
|
</a>
|
42
42
|
</li>
|
43
|
-
|
44
|
-
<
|
45
|
-
<
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
43
|
+
<% if present? method.headers %>
|
44
|
+
<li role="presentation">
|
45
|
+
<a href="#<%= method_element_id method, "request-headers" %>" aria-controls="home" role="tab" data-toggle="tab">
|
46
|
+
<i class="fa fa-code" aria-hidden="true"></i>
|
47
|
+
Request Headers
|
48
|
+
</a>
|
49
|
+
</li>
|
50
|
+
<% end %>
|
51
|
+
<% if present? method.query_parameters %>
|
52
|
+
<li role="presentation">
|
53
|
+
<a href="#<%= method_element_id method, "querystring-parameters" %>" aria-controls="profile" role="tab" data-toggle="tab">
|
54
|
+
<i class="fa fa-code" aria-hidden="true"></i>
|
55
|
+
Querystring Parameters
|
56
|
+
</a>
|
57
|
+
</li>
|
58
|
+
<% end %>
|
59
|
+
<% if present? method.responses %>
|
60
|
+
<li role="presentation">
|
61
|
+
<a href="#<%= method_element_id method, "responses" %>" aria-controls="home" role="tab" data-toggle="tab">
|
62
|
+
<i class="fa fa-code" aria-hidden="true"></i>
|
63
|
+
Responses
|
64
|
+
</a>
|
65
|
+
</li>
|
66
|
+
<% end %>
|
61
67
|
</ul>
|
62
68
|
|
63
69
|
<div class="tab-content">
|
64
|
-
<div role="tabpanel" class="tab-pane active" id="description
|
70
|
+
<div role="tabpanel" class="tab-pane active" id="<%= method_element_id method, "description" %>">
|
65
71
|
<p class="lead">
|
66
72
|
<%= markdown method.description %>
|
67
73
|
</p>
|
68
74
|
</div>
|
69
|
-
<div role="tabpanel" class="tab-pane" id="headers
|
75
|
+
<div role="tabpanel" class="tab-pane" id="<%= method_element_id method, "request-headers" %>">
|
70
76
|
<p>...</p>
|
71
77
|
</div>
|
72
|
-
<div role="tabpanel" class="tab-pane" id="querystring-parameters
|
78
|
+
<div role="tabpanel" class="tab-pane" id="<%= method_element_id method, "querystring-parameters" %>">
|
73
79
|
<p>
|
74
80
|
<ul>
|
75
81
|
<% method.query_parameters.each do |_, parameter| %>
|
@@ -84,7 +90,7 @@
|
|
84
90
|
</ul>
|
85
91
|
</p>
|
86
92
|
</div>
|
87
|
-
<div role="tabpanel" class="tab-pane" id="responses
|
93
|
+
<div role="tabpanel" class="tab-pane" id="<%= method_element_id method, "responses" %>">
|
88
94
|
<p>...</p>
|
89
95
|
</div>
|
90
96
|
</div>
|
@@ -95,6 +101,18 @@
|
|
95
101
|
<% end %>
|
96
102
|
</div>
|
97
103
|
|
104
|
+
<footer class="footer">
|
105
|
+
<div class="container">
|
106
|
+
<hr>
|
107
|
+
<p class="pull-right text-muted">
|
108
|
+
Created with
|
109
|
+
<a href="http://raml.org/">RAML™</a>
|
110
|
+
/
|
111
|
+
<a href="https://github.com/hopsoft/raml_doc">RAML Doc</a>
|
112
|
+
</p>
|
113
|
+
</div>
|
114
|
+
</footer>
|
115
|
+
|
98
116
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
99
117
|
<style type="text/css" rel="stylesheet">
|
100
118
|
@import url(https://fonts.googleapis.com/css?family=Raleway:600|Merriweather);
|
data/lib/raml_doc/version.rb
CHANGED
data/lib/raml_doc/view.rb
CHANGED
@@ -9,14 +9,25 @@ module RamlDoc
|
|
9
9
|
@raml = raml
|
10
10
|
end
|
11
11
|
|
12
|
-
def render(template)
|
13
|
-
template_path = File.join(File.expand_path("../templates", __FILE__), "
|
12
|
+
def render(template, format)
|
13
|
+
template_path = File.join(File.expand_path("../templates", __FILE__), format, template, "index.#{format}.erb")
|
14
14
|
template = ERB.new(File.read(template_path))
|
15
15
|
template.result binding
|
16
16
|
end
|
17
17
|
|
18
|
+
def present?(value)
|
19
|
+
return !value.empty? if value.respond_to?(:empty?)
|
20
|
+
!!value
|
21
|
+
end
|
22
|
+
|
18
23
|
def markdown(string)
|
19
24
|
Kramdown::Document.new(string).to_html
|
20
25
|
end
|
26
|
+
|
27
|
+
def method_element_id(method, *args)
|
28
|
+
args << method.name
|
29
|
+
args << method.parent.resource_path_name
|
30
|
+
args.compact.join "-"
|
31
|
+
end
|
21
32
|
end
|
22
33
|
end
|
data/lib/raml_doc.rb
CHANGED
@@ -4,9 +4,9 @@ require "raml_doc/version"
|
|
4
4
|
require "raml_doc/view"
|
5
5
|
|
6
6
|
module RamlDoc
|
7
|
-
def self.generate(file_path, template)
|
7
|
+
def self.generate(file_path, template, format)
|
8
8
|
raml = Raml.parse_file(file_path)
|
9
9
|
view = View.new(raml)
|
10
|
-
view.render template
|
10
|
+
view.render template, format
|
11
11
|
end
|
12
12
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raml_doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Hopkins
|
@@ -83,7 +83,8 @@ dependencies:
|
|
83
83
|
description:
|
84
84
|
email:
|
85
85
|
- natehop@gmail.com
|
86
|
-
executables:
|
86
|
+
executables:
|
87
|
+
- raml-doc
|
87
88
|
extensions: []
|
88
89
|
extra_rdoc_files: []
|
89
90
|
files:
|
@@ -93,11 +94,11 @@ files:
|
|
93
94
|
- README.md
|
94
95
|
- Rakefile
|
95
96
|
- bin/console
|
96
|
-
- bin/
|
97
|
+
- bin/raml-doc
|
97
98
|
- bin/setup
|
98
99
|
- lib/raml_doc.rb
|
99
100
|
- lib/raml_doc/raml_helper.rb
|
100
|
-
- lib/raml_doc/templates/default.html.erb
|
101
|
+
- lib/raml_doc/templates/html/default/index.html.erb
|
101
102
|
- lib/raml_doc/version.rb
|
102
103
|
- lib/raml_doc/view.rb
|
103
104
|
homepage: https://github.com/hopsoft/raml_doc
|
data/bin/ramldoc
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "optparse"
|
4
|
-
require "bundler/setup"
|
5
|
-
require "raml_doc"
|
6
|
-
|
7
|
-
options = {
|
8
|
-
:template => "default"
|
9
|
-
}
|
10
|
-
|
11
|
-
option_parser = OptionParser.new do |opts|
|
12
|
-
opts.banner = "Usage: ramldoc [options]"
|
13
|
-
|
14
|
-
opts.on("-f", "--file FILE", "The RAML file used to generate docs") do |f|
|
15
|
-
options[:file] = f
|
16
|
-
end
|
17
|
-
|
18
|
-
opts.on("-t", "--template [default]", "The template used to generate docs") do |t|
|
19
|
-
options[:template] = t
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
option_parser.parse!
|
24
|
-
|
25
|
-
puts RamlDoc.generate(options[:file], options[:template])
|
26
|
-
|