yard-rest 1.0.1 → 1.0.2

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.
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ begin
11
11
  gem.homepage = "https://github.com/spape/yard-rest-plugin"
12
12
  gem.authors = ['R. Kevin Nelson', 'Aisha Fenton', 'Sebastian Pape']
13
13
  gem.add_dependency("yard", '~>0.7.4')
14
- gem.files = Dir.glob("{lib,example,templates/rest}/**/*.*").concat(["Rakefile"])
14
+ gem.files = Dir.glob("{lib,example,templates/rest}/**/*").concat(["Rakefile"])
15
15
  gem.extra_rdoc_files = ['VERSION', 'README.markdown']
16
16
  end
17
17
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.0.2
@@ -0,0 +1,12 @@
1
+ ## Introduction
2
+ Welcome to the API documentation.
3
+
4
+ ## Quick Example
5
+ /examples.json
6
+ This returns a list of examples.
7
+
8
+ ## JSON as Standard Format
9
+ Our standard format for the API is JSON. To communicate to the API you have to set the format explicitly on each request.
10
+ ### How to send JSON-Requests
11
+ /examples.json
12
+ /examples (with Header: "Accept: application/json")
@@ -0,0 +1,18 @@
1
+ <div class="service">
2
+ <h1 class="noborder title"><%= options[:title] %></h1>
3
+ <a class="back" href="<%= url_for('index.html') %>" title="back to the overview">&laquo; back to overview</a>
4
+ <h2><%= object.name.to_s.gsub(/Controller/,"") %></h2>
5
+ <%= yieldall %>
6
+ </div>
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
@@ -0,0 +1,80 @@
1
+ <% unless @meths.empty? %>
2
+ <div id="Services" class="method_details_list">
3
+ <% @meths.each_with_index do |meth, i| %>
4
+ <div class="method">
5
+ <p class="method_desc"><%= meth.docstring %></p>
6
+ <h3 class="resource_url"><strong><%= meth.tag(:resource).text %></strong> [<%= meth.tag(:action).text %>]</h3>
7
+
8
+ <div class="parameters">
9
+ <% if meth.tags(:required).size %>
10
+ <div class="required">
11
+ <h4>Required Parameters</h4>
12
+ <% meth.tags(:required).each do |required| %>
13
+ <ul>
14
+ <li>
15
+ <span class="name"><%= required.name%></span>
16
+ <span class="type"><%= required.types.join%></span>
17
+ <span class="text"><%= required.text%></span>
18
+ </li>
19
+ </ul>
20
+ <% end %>
21
+ </div>
22
+ <% end %>
23
+
24
+ <% if meth.tags(:optional).size %>
25
+ <div class="optional">
26
+ <h4>Optional Parameters</h4>
27
+ <% meth.tags(:optional).each do |optional| %>
28
+ <ul>
29
+ <li>
30
+ <span class="name"><%= optional.name%></span>
31
+ <span class="type"><%= optional.types.join%></span>
32
+ <span class="text"><%= optional.text%></span>
33
+ </li>
34
+ </ul>
35
+ <% end %>
36
+ </div>
37
+ <% end %>
38
+ </div><!-- parameters -->
39
+
40
+ <% if meth.tags(:response_field).size %>
41
+ <div class="response_fields">
42
+ <h4>Response Fields</h4>
43
+ <% meth.tags(:response_field).each do |response_field| %>
44
+ <ul>
45
+ <li>
46
+ <span class="name"><%= response_field.name%></span>
47
+ <span class="type"><%= response_field.types.join%></span>
48
+ <span class="text"><%= response_field.text%></span>
49
+ </li>
50
+ </ul>
51
+ <% end %>
52
+ </div>
53
+ <% end %>
54
+
55
+ <% if meth.tags(:example_request).size %>
56
+ <div class="examples">
57
+ <h4>Examples</h4>
58
+ <% meth.tags(:example_request).each_with_index do |example_request, i| %>
59
+ <div class="example">
60
+ <% example_request_description = meth.tags(:example_request_description)[i] %>
61
+ <% example_response = meth.tags(:example_response)[i] %>
62
+ <% example_response_description = meth.tags(:example_response_description)[i] %>
63
+ <span class="description"><%= (example_request_description.nil?) ? "" : example_request_description.text %></span>
64
+ <span class="hash request">
65
+ <strong class="type">Request</strong>
66
+ <%= (example_request.nil?) ? "" : example_request.text %>
67
+ </span>
68
+ <span class="hash response">
69
+ <strong class="type">Response</strong>
70
+ <%= (example_response.nil?) ? "" : example_response.text %>
71
+ </span>
72
+ <span class="description"><%= (example_response_description.nil?) ? "" : example_response_description.text %></span>
73
+ </div>
74
+ <% end %>
75
+ </div>
76
+ <% end %>
77
+ </div>
78
+ <% end %>
79
+ </div>
80
+ <% end %>
@@ -0,0 +1,16 @@
1
+ def init
2
+ @page_title = "#{object.name.to_s.gsub(/Controller/,"")} - #{options[:title]}"
3
+ sections :header, [T('docstring'), :method_details_list, [T('method_details')]]
4
+ end
5
+
6
+ def method_details_list
7
+ objects = Array(object)
8
+ objects_with_resources_tags = index_objects(objects)
9
+ @meths = []
10
+ unless objects_with_resources_tags.empty?
11
+ objects_with_resources_tags.each do |obj|
12
+ @meths += obj.meths.select{|x| x.has_tag? :resource}
13
+ end
14
+ end
15
+ erb(:method_details_list)
16
+ end
@@ -0,0 +1,4 @@
1
+ def init
2
+ return if object.docstring.blank?
3
+ sections :text, T('tags')
4
+ end
@@ -0,0 +1 @@
1
+ <%= htmlify(object.docstring.strip) %>
@@ -0,0 +1,5 @@
1
+ <% n = 1 %>
2
+ <% @items.sort_by { |s| s.name.to_s }.each do |resource| %>
3
+ <li class="r<%= n %>"><%= linkify(resource, resource.name.to_s.gsub(/Controller/, "")) %></li>
4
+ <% n = n == 2 ? 1 : 2 %>
5
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <li><a href="<%= url_for('_index.html') %>">Index</a></li>
2
+ <% n = 1 %>
3
+ <% @topics.sort_by {|s,o| s }.each do |topic,objects| %>
4
+ <li class="r<%= n %>"><%= topic%></li>
5
+ <% unless objects.empty? %>
6
+ <% objects.each do |object| %>
7
+ <% object.tags("url").each do |url_tag| %>
8
+ <li class="r<%= n %>"><%= linkify(object, url_tag.text) %></li>
9
+ <% end %>
10
+ <% end%>
11
+ <% end %>
12
+ <% n = n == 2 ? 1 : 2 %>
13
+ <% end %>
14
+
@@ -0,0 +1,22 @@
1
+ function resourceSearchFrameLinks() {
2
+ $('#resource_list_link').click(function() {
3
+ toggleSearchFrame(this, relpath + 'resource_list.html');
4
+ });
5
+ }
6
+
7
+ $(resourceSearchFrameLinks);
8
+
9
+ /*
10
+ function resourceKeyboardShortcuts() {
11
+ if (window.top.frames.main) return;
12
+ $(document).keypress(function(evt) {
13
+ if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
14
+ if (typeof evt.orignalTarget !== "undefined" &&
15
+ (evt.originalTarget.nodeName == "INPUT" ||
16
+ evt.originalTarget.nodeName == "TEXTAREA")) return;
17
+ switch (evt.charCode) {
18
+ case 82: case 114: $('#resource_list_link').click(); break; // 'r' or 'R'
19
+ }
20
+ });
21
+ }
22
+ */
@@ -0,0 +1,23 @@
1
+ include Helpers::ModuleHelper
2
+ include Helpers::FilterHelper
3
+
4
+ def generate_topic_list
5
+ topic_objects = index_objects(@objects).reject { |o| o.root? }
6
+ @topics = {}
7
+
8
+ topic_objects.each do |object|
9
+ object.tags('topic').each { |topic| (@topics[topic.text] ||= []) << object }
10
+ end
11
+
12
+ @list_title = 'Topic List'
13
+ @list_type = 'topic'
14
+
15
+ asset('topic_list.html', erb(:full_list))
16
+ end
17
+
18
+ def generate_resource_list
19
+ @items = index_objects(@objects)
20
+ @list_title = "List of Resources"
21
+ @list_type = "resource"
22
+ asset('resource_list.html', erb(:full_list))
23
+ end
@@ -0,0 +1,3 @@
1
+ <div id="footer">
2
+ Generated on <%= Time.now.strftime("%c") %> with ruby-<%= RUBY_VERSION %>
3
+ </div>
@@ -0,0 +1,19 @@
1
+ <div id="start">
2
+ <h1 class="noborder title"><%= options[:title] %></h1>
3
+
4
+ <% if @readme %>
5
+ <%= htmlify(@readme.contents, :markdown) %>
6
+ <% end %>
7
+
8
+ <h2>All Resources</h2>
9
+ <ul id="resources">
10
+ <% unless @resources.nil? %>
11
+ <% @resources.sort_by { |s| s.name.to_s }.each do |resource| %>
12
+ <li><%= linkify(resource, resource.name.to_s.gsub(/Controller/, "")) %></li>
13
+ <% end %>
14
+ <% end %>
15
+ </ul>
16
+
17
+ <div class="clear"></div>
18
+
19
+ </div>
@@ -0,0 +1,210 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <%= erb(:headers) %>
6
+ <style type="text/css">
7
+ #toc {top: 24px;}
8
+ #toc .title {display: none;}
9
+ #toc a:link, #content a:visited { text-decoration: none; color: #05a; }
10
+ #toc a:hover { background: #ffffa5; }
11
+ pre code {
12
+ display: block;
13
+ background: #EAF0FF;
14
+ padding: 12px;
15
+ line-height: 1.9em;
16
+ }
17
+ a.back {
18
+ font-size: 1.2em;
19
+ padding: 4px;
20
+ }
21
+ p.method_desc {
22
+ padding: 16px 0 0 14px;
23
+ font-size: 1.2em;
24
+ }
25
+ h2 {
26
+ margin: 2.4em 0 0.5em;
27
+ }
28
+ h2 + p {
29
+ font-size: 1.2em;
30
+ margin-bottom: 62px;
31
+ }
32
+ .method {
33
+ display: block;
34
+ margin-top: 40px;
35
+ padding-top: 0;
36
+ position: relative;
37
+ box-shadow: 0 -6px 12px rgba(0,0,0,0.1);
38
+ }
39
+ h3 {
40
+ font-size: 1.2em;
41
+ font-weight: normal;
42
+ padding-top: 6px;
43
+ margin-bottom: -6px;
44
+ }
45
+ h4 {
46
+ margin: 0;
47
+ }
48
+ #resources {
49
+ padding: 14px 20px 52px;
50
+ }
51
+ #resources li {
52
+ border-right: 1px solid #0055AA;
53
+ display: block;
54
+ font-size: 1.4em;
55
+ float: left;
56
+ padding-right: 14px;
57
+ padding-left: 12px;
58
+ }
59
+ .resource_url {
60
+ border: 1px solid white;
61
+ display: block;
62
+ background: #EAF0FF;
63
+ margin-top: 11px;
64
+ padding: 12px 12px 18px;
65
+ }
66
+ #search_frame #search {
67
+ display: none;
68
+ }
69
+ .parameters, .response_fields {
70
+ background: none repeat scroll 0 0 #EAF0FF;
71
+ }
72
+ .parameters .required {
73
+ background: #d5e1ff;
74
+ padding: 12px;
75
+ border: 1px solid white;
76
+ }
77
+ .parameters .optional, .response_fields {
78
+ padding: 18px 12px 12px 12px;
79
+ border: 1px solid white;
80
+ }
81
+ .parameters .optional ul li, .parameters .required li, .response_fields li {
82
+ display: block;
83
+ padding: 4px 0 0 6px;
84
+ }
85
+ .parameters .optional ul li .name, .parameters .required li .name, .response_fields li .name {
86
+ font-weight: bold;
87
+ }
88
+ .parameters .optional ul li .text, .parameters .required li .text, .response_fields li .text {
89
+ display: block;
90
+ }
91
+ .examples {
92
+ padding: 32px 12px 12px 12px;
93
+ }
94
+ .example {
95
+ border-bottom: 1px solid #BBB;
96
+ display: block;
97
+ padding: 18px 0 26px;
98
+ margin-bottom: 14px;
99
+ margin-top: 8px;
100
+ }
101
+ .example .description {
102
+ display: block;
103
+ font-size: 1.2em;
104
+ margin: 8px 0;
105
+ }
106
+
107
+ .example .hash {
108
+ display: block;
109
+ background: #EEF;
110
+ font-size: 1.1em;
111
+ border-radius: 4px;
112
+ box-shadow: inset 0 2px 5px rgba(0,0,0,0.1);
113
+ padding: 12px;
114
+ }
115
+
116
+ .example .hash .type {
117
+ display: block;
118
+ font-size: 0.8em;
119
+ color: #99A;
120
+ padding-bottom: 6px;
121
+ }
122
+
123
+ .example .hash.request {
124
+ border-bottom-left-radius: 0;
125
+ border-bottom-right-radius: 0;
126
+ }
127
+
128
+ .example .hash.response {
129
+ border-top: 1px solid white;
130
+ border-top-left-radius: 0;
131
+ border-top-right-radius: 0;
132
+ }
133
+ </style>
134
+ <script type="text/javascript">
135
+ //<![CDATA[
136
+
137
+ function setup_toc() {
138
+ if ($('#content').length === 0) return;
139
+ var _toc = $('<ol class="top"></ol>');
140
+ var show = false;
141
+ var toc = _toc;
142
+ var counter = 0;
143
+ var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
144
+ var i;
145
+ if ($('#content h1').length > 1) tags.unshift('h1');
146
+ for (i = 0; i < tags.length; i++) { tags[i] = '#content ' + tags[i]; }
147
+ var lastTag = parseInt(tags[0][1], 10);
148
+ $(tags.join(', ')).each(function() {
149
+ if (this.id == "content") return;
150
+ show = true;
151
+ var thisTag = parseInt(this.tagName[1], 10);
152
+ if (this.id.length === 0) {
153
+ var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
154
+ if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
155
+ this.id = proposedId;
156
+ }
157
+ if (thisTag > lastTag) {
158
+ for (i = 0; i < thisTag - lastTag; i++) {
159
+ var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
160
+ }
161
+ }
162
+ if (thisTag < lastTag) {
163
+ for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
164
+ }
165
+ toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
166
+ lastTag = thisTag;
167
+ });
168
+ if (!show) return;
169
+ html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
170
+ $('#content').prepend(html);
171
+ $('#toc').append(_toc);
172
+ $('#toc .hide_toc').toggle(function() {
173
+ $('#toc .top').slideUp('fast');
174
+ $('#toc').toggleClass('hidden');
175
+ $('#toc .title small').toggle();
176
+ }, function() {
177
+ $('#toc .top').slideDown('fast');
178
+ $('#toc').toggleClass('hidden');
179
+ $('#toc .title small').toggle();
180
+ });
181
+ $('#toc .float_toc').toggle(function() {
182
+ $(this).text('float');
183
+ $('#toc').toggleClass('nofloat');
184
+ }, function() {
185
+ $(this).text('left');
186
+ $('#toc').toggleClass('nofloat');
187
+ });
188
+ }
189
+ $(document).ready(setup_toc);
190
+ //]]>
191
+ </script>
192
+ </head>
193
+ <body>
194
+ <script type="text/javascript" charset="utf-8">
195
+ if (window.top.frames.main) document.body.className = 'frames';
196
+ </script>
197
+
198
+ <div id="header">
199
+ <%= erb(:search) %>
200
+ </div>
201
+
202
+ <iframe id="search_frame"></iframe>
203
+
204
+ <div id="content" style="padding-top: 12px;">
205
+ <%= yieldall %>
206
+ </div>
207
+
208
+ <%= erb(:footer) %>
209
+ </body>
210
+ </html>
@@ -0,0 +1,4 @@
1
+ <div id="search">
2
+ <!-- <a id="topic_list_link" href="#">Topic List</a> -->
3
+ <a id="resource_list_link" href="#">Resources</a>
4
+ </div>
@@ -0,0 +1,29 @@
1
+ include Helpers::FilterHelper
2
+
3
+ def init
4
+ @page_title = options[:title]
5
+ if object == "_index.html"
6
+
7
+ elsif object.name == :root
8
+ sections :layout, [:index]
9
+ else
10
+ super
11
+ end
12
+ end
13
+
14
+ def javascripts
15
+ super + %w(js/rest_plugin.js)
16
+ end
17
+
18
+ def menu_lists
19
+ [ { :type => 'resource', :title => "Resources", :search_title => "List of Resources" },
20
+ { :type => 'topic', :title => "Topics", :search_title => "Topic List" },
21
+ { :type => 'file', :title => "Files", :search_title => "File List" } ]
22
+ end
23
+
24
+ def index
25
+ path_to_readme = (options[:readme]) ? options[:readme] : "./doc/README_FOR_API"
26
+ @readme = YARD::CodeObjects::ExtraFileObject.new(path_to_readme) if File.exists?(path_to_readme)
27
+ @resources = index_objects(@objects)
28
+ erb(:index)
29
+ end
@@ -0,0 +1,3 @@
1
+ <div class="method_details <%= @index == 0 ? 'first' : '' %>">
2
+ <%= yieldall %>
3
+ </div>
@@ -0,0 +1,8 @@
1
+ <% if object.tags(:url).size > 0 %>
2
+ <h3>Url:</h3>
3
+ <ul id="<%= anchor_for(object) %>">
4
+ <% object.tags(:url).each do |url| %>
5
+ <li><%= url.text %></li>
6
+ <% end %>
7
+ </ul>
8
+ <% end %>
@@ -0,0 +1,7 @@
1
+ def init
2
+ sections :header, [:method_signature, :method_url, T('docstring')]
3
+ end
4
+
5
+ def header
6
+ erb(:header)
7
+ end
@@ -0,0 +1,9 @@
1
+ <% if object.has_tag?(:example_request) %>
2
+ <div class="examples">
3
+ <h3>Example Request:</h3>
4
+ <% object.tags(:example_request).each do |tag| %>
5
+ <h4><%= htmlify_line(tag.name) %></h4>
6
+ <pre class="example code"><%= html_syntax_highlight(tag.text, :plain) %></pre>
7
+ <% end %>
8
+ </div>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% if object.has_tag?(:example_response) %>
2
+ <div class="examples">
3
+ <h3>Example Response:</h3>
4
+ <% object.tags(:example_response).each do |tag| %>
5
+ <h4><%= htmlify_line(tag.name) %></h4>
6
+ <pre class="example code"><%= html_syntax_highlight(tag.text, :plain) %></pre>
7
+ <% end %>
8
+ </div>
9
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <h3><%= @label ? @label : YARD::Tags::Library.labels[@name] %>:</h3>
2
+ <ul class="<%= @name %>">
3
+ <% object.tags(@name).each do |tag| %>
4
+ <li>
5
+ <% unless @no_types %>
6
+ <span class='type'><%= format_types(tag.types) %></span>
7
+ <% end %>
8
+ <% unless @no_names %>
9
+ <span class='name'><%= h tag.name %></span>
10
+ <% end %>
11
+ <% if tag.text && !tag.text.empty? %>
12
+ <% unless (@no_types || tag.types.nil? || tag.types.empty?) && @no_names %>&mdash;<% end %>
13
+ <%= htmlify_line(tag.text) %>
14
+ <% end %>
15
+ </li>
16
+ <% end %>
17
+ </ul>
@@ -0,0 +1,3 @@
1
+ <div class="tags">
2
+ <%= yieldall %>
3
+ </div>
@@ -0,0 +1,20 @@
1
+ <% if object.has_tag?(:key_for) %>
2
+ <% object.tags(:key_for).group_by{|tag| tag.name }.each_pair do |hash_name, tags| %>
3
+ <h3>Keys for Hash (<tt><%= hash_name %></tt>):</h3>
4
+ <ul>
5
+ <% tags.each do |tag| %>
6
+ <li>
7
+ <span class="name"><%= tag.pair.name %></span>
8
+ <span class="type"><%= format_types(tag.pair.types) || ['Object'] %></span>
9
+ <span class="default">
10
+ <% if tag.pair.defaults %>
11
+ &mdash; default:
12
+ <%= tag.pair.defaults.map {|t| "<tt>#{h t}</tt>" }.join(", ") %>
13
+ <% end %>
14
+ </span>
15
+ <%= htmlify_line(tag.pair.text) if tag.pair.text %>
16
+ </li>
17
+ <% end %>
18
+ </ul>
19
+ <% end %>
20
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <% if object.has_tag?(:value_for) %>
2
+ <% object.tags(:value_for).group_by{|tag| tag.name }.each_pair do |argument_name, tags| %>
3
+ <h3>Valid values for (<tt><%= argument_name %></tt>):</h3>
4
+ <ul>
5
+ <% tags.each do |tag| %>
6
+ <li>
7
+ <span class="name"><%= tag.pair.name %></span>
8
+ <%= htmlify_line(tag.pair.text) if tag.pair.text %>
9
+ </li>
10
+ <% end %>
11
+ </ul>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,47 @@
1
+ def init
2
+ super
3
+ sections.push(:index,[:argument,
4
+ :optional_argument,
5
+ :key_for,
6
+ :value_for,
7
+ :example_request,
8
+ :request_field,
9
+ :example_response,
10
+ :response_field,
11
+ :header,
12
+ :response_code])
13
+ end
14
+
15
+ def request_field
16
+ generic_tag :request_field
17
+ end
18
+
19
+ def response_field
20
+ generic_tag :response_field
21
+ end
22
+
23
+ def argument
24
+ generic_tag :argument, :no_types => false
25
+ end
26
+
27
+ def optional_argument
28
+ generic_tag :optional_argument, :no_types => false
29
+ end
30
+
31
+ def header
32
+ generic_tag :header
33
+ end
34
+
35
+ def response_code
36
+ generic_tag :response_code
37
+ end
38
+
39
+ def generic_tag(name, opts = {})
40
+ return unless object.has_tag?(name)
41
+ @no_names = true if opts[:no_names]
42
+ @no_types = true if opts[:no_types]
43
+ @name = name
44
+ out = erb('generic_tag')
45
+ @no_names, @no_types = nil, nil
46
+ out
47
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -40,9 +40,34 @@ extra_rdoc_files:
40
40
  files:
41
41
  - Rakefile
42
42
  - example/app/controllers/examples_controller.rb
43
+ - example/doc/README_FOR_API
43
44
  - lib/yard-rest.rb
44
45
  - lib/yard-rest/rest_filters.rb
45
46
  - lib/yard-rest/tags.rb
47
+ - templates/rest/class/html/header.erb
48
+ - templates/rest/class/html/method_details_list.erb
49
+ - templates/rest/class/html/setup.rb
50
+ - templates/rest/docstring/html/setup.rb
51
+ - templates/rest/docstring/html/text.erb
52
+ - templates/rest/fulldoc/html/full_list_resource.erb
53
+ - templates/rest/fulldoc/html/full_list_topic.erb
54
+ - templates/rest/fulldoc/html/js/rest_plugin.js
55
+ - templates/rest/fulldoc/html/setup.rb
56
+ - templates/rest/layout/html/footer.erb
57
+ - templates/rest/layout/html/index.erb
58
+ - templates/rest/layout/html/layout.erb
59
+ - templates/rest/layout/html/search.erb
60
+ - templates/rest/layout/html/setup.rb
61
+ - templates/rest/method_details/html/header.erb
62
+ - templates/rest/method_details/html/method_url.erb
63
+ - templates/rest/method_details/html/setup.rb
64
+ - templates/rest/tags/html/example_request.erb
65
+ - templates/rest/tags/html/example_response.erb
66
+ - templates/rest/tags/html/generic_tag.erb
67
+ - templates/rest/tags/html/index.erb
68
+ - templates/rest/tags/html/key_for.erb
69
+ - templates/rest/tags/html/value_for.erb
70
+ - templates/rest/tags/setup.rb
46
71
  - README.markdown
47
72
  - VERSION
48
73
  homepage: https://github.com/spape/yard-rest-plugin