apipierails3 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.
Files changed (171) hide show
  1. checksums.yaml +17 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +27 -0
  5. data/APACHE-LICENSE-2.0 +202 -0
  6. data/CHANGELOG.md +469 -0
  7. data/Gemfile +1 -0
  8. data/Gemfile.rails32 +6 -0
  9. data/Gemfile.rails41 +6 -0
  10. data/Gemfile.rails42 +11 -0
  11. data/Gemfile.rails50 +6 -0
  12. data/Gemfile.rails51 +7 -0
  13. data/MIT-LICENSE +20 -0
  14. data/NOTICE +4 -0
  15. data/PROPOSAL_FOR_RESPONSE_DESCRIPTIONS.md +244 -0
  16. data/README.rst +1874 -0
  17. data/Rakefile +13 -0
  18. data/apipierails3.gemspec +27 -0
  19. data/app/controllers/apipie/apipies_controller.rb +199 -0
  20. data/app/helpers/apipie_helper.rb +10 -0
  21. data/app/public/apipie/javascripts/apipie.js +6 -0
  22. data/app/public/apipie/javascripts/bundled/bootstrap-collapse.js +138 -0
  23. data/app/public/apipie/javascripts/bundled/bootstrap.js +1726 -0
  24. data/app/public/apipie/javascripts/bundled/jquery.js +5 -0
  25. data/app/public/apipie/javascripts/bundled/prettify.js +28 -0
  26. data/app/public/apipie/stylesheets/application.css +7 -0
  27. data/app/public/apipie/stylesheets/bundled/bootstrap-responsive.min.css +12 -0
  28. data/app/public/apipie/stylesheets/bundled/bootstrap.min.css +689 -0
  29. data/app/public/apipie/stylesheets/bundled/prettify.css +30 -0
  30. data/app/views/apipie/apipies/_disqus.html.erb +13 -0
  31. data/app/views/apipie/apipies/_errors.html.erb +23 -0
  32. data/app/views/apipie/apipies/_headers.html.erb +26 -0
  33. data/app/views/apipie/apipies/_languages.erb +6 -0
  34. data/app/views/apipie/apipies/_metadata.erb +1 -0
  35. data/app/views/apipie/apipies/_method_detail.erb +61 -0
  36. data/app/views/apipie/apipies/_params.html.erb +42 -0
  37. data/app/views/apipie/apipies/_params_plain.html.erb +20 -0
  38. data/app/views/apipie/apipies/apipie_404.html.erb +17 -0
  39. data/app/views/apipie/apipies/apipie_checksum.json.erb +1 -0
  40. data/app/views/apipie/apipies/getting_started.html.erb +6 -0
  41. data/app/views/apipie/apipies/index.html.erb +56 -0
  42. data/app/views/apipie/apipies/method.html.erb +41 -0
  43. data/app/views/apipie/apipies/plain.html.erb +77 -0
  44. data/app/views/apipie/apipies/resource.html.erb +80 -0
  45. data/app/views/apipie/apipies/static.html.erb +103 -0
  46. data/app/views/layouts/apipie/apipie.html.erb +27 -0
  47. data/config/locales/de.yml +28 -0
  48. data/config/locales/en.yml +32 -0
  49. data/config/locales/es.yml +28 -0
  50. data/config/locales/fr.yml +31 -0
  51. data/config/locales/it.yml +31 -0
  52. data/config/locales/ja.yml +31 -0
  53. data/config/locales/pl.yml +28 -0
  54. data/config/locales/pt-BR.yml +28 -0
  55. data/config/locales/ru.yml +28 -0
  56. data/config/locales/tr.yml +28 -0
  57. data/config/locales/zh-CN.yml +28 -0
  58. data/config/locales/zh-TW.yml +28 -0
  59. data/images/screenshot-1.png +0 -0
  60. data/images/screenshot-2.png +0 -0
  61. data/lib/apipie/apipie_module.rb +83 -0
  62. data/lib/apipie/application.rb +462 -0
  63. data/lib/apipie/configuration.rb +186 -0
  64. data/lib/apipie/dsl_definition.rb +607 -0
  65. data/lib/apipie/error_description.rb +44 -0
  66. data/lib/apipie/errors.rb +86 -0
  67. data/lib/apipie/extractor.rb +177 -0
  68. data/lib/apipie/extractor/collector.rb +117 -0
  69. data/lib/apipie/extractor/recorder.rb +166 -0
  70. data/lib/apipie/extractor/writer.rb +454 -0
  71. data/lib/apipie/helpers.rb +73 -0
  72. data/lib/apipie/markup.rb +48 -0
  73. data/lib/apipie/method_description.rb +273 -0
  74. data/lib/apipie/middleware/checksum_in_headers.rb +35 -0
  75. data/lib/apipie/param_description.rb +280 -0
  76. data/lib/apipie/railtie.rb +9 -0
  77. data/lib/apipie/resource_description.rb +124 -0
  78. data/lib/apipie/response_description.rb +131 -0
  79. data/lib/apipie/response_description_adapter.rb +200 -0
  80. data/lib/apipie/routes_formatter.rb +33 -0
  81. data/lib/apipie/routing.rb +16 -0
  82. data/lib/apipie/rspec/response_validation_helper.rb +192 -0
  83. data/lib/apipie/see_description.rb +39 -0
  84. data/lib/apipie/static_dispatcher.rb +69 -0
  85. data/lib/apipie/swagger_generator.rb +707 -0
  86. data/lib/apipie/tag_list_description.rb +11 -0
  87. data/lib/apipie/validator.rb +526 -0
  88. data/lib/apipie/version.rb +3 -0
  89. data/lib/apipierails3.rb +25 -0
  90. data/lib/generators/apipie/install/README +6 -0
  91. data/lib/generators/apipie/install/install_generator.rb +25 -0
  92. data/lib/generators/apipie/install/templates/initializer.rb.erb +7 -0
  93. data/lib/generators/apipie/views_generator.rb +11 -0
  94. data/lib/tasks/apipie.rake +345 -0
  95. data/rel-eng/packages/.readme +3 -0
  96. data/rel-eng/packages/rubygem-apipie-rails +1 -0
  97. data/rel-eng/tito.props +5 -0
  98. data/spec/controllers/api/v1/architectures_controller_spec.rb +29 -0
  99. data/spec/controllers/api/v2/architectures_controller_spec.rb +12 -0
  100. data/spec/controllers/api/v2/nested/resources_controller_spec.rb +11 -0
  101. data/spec/controllers/apipies_controller_spec.rb +273 -0
  102. data/spec/controllers/concerns_controller_spec.rb +42 -0
  103. data/spec/controllers/extended_controller_spec.rb +11 -0
  104. data/spec/controllers/users_controller_spec.rb +740 -0
  105. data/spec/dummy/Rakefile +7 -0
  106. data/spec/dummy/app/controllers/api/base_controller.rb +4 -0
  107. data/spec/dummy/app/controllers/api/v1/architectures_controller.rb +43 -0
  108. data/spec/dummy/app/controllers/api/v1/base_controller.rb +11 -0
  109. data/spec/dummy/app/controllers/api/v2/architectures_controller.rb +30 -0
  110. data/spec/dummy/app/controllers/api/v2/base_controller.rb +11 -0
  111. data/spec/dummy/app/controllers/api/v2/nested/architectures_controller.rb +32 -0
  112. data/spec/dummy/app/controllers/api/v2/nested/resources_controller.rb +33 -0
  113. data/spec/dummy/app/controllers/application_controller.rb +18 -0
  114. data/spec/dummy/app/controllers/concerns/extending_concern.rb +11 -0
  115. data/spec/dummy/app/controllers/concerns/sample_controller.rb +41 -0
  116. data/spec/dummy/app/controllers/concerns_controller.rb +8 -0
  117. data/spec/dummy/app/controllers/extended_controller.rb +14 -0
  118. data/spec/dummy/app/controllers/files_controller.rb +5 -0
  119. data/spec/dummy/app/controllers/overridden_concerns_controller.rb +31 -0
  120. data/spec/dummy/app/controllers/pets_controller.rb +408 -0
  121. data/spec/dummy/app/controllers/pets_using_auto_views_controller.rb +73 -0
  122. data/spec/dummy/app/controllers/pets_using_self_describing_classes_controller.rb +95 -0
  123. data/spec/dummy/app/controllers/tagged_cats_controller.rb +32 -0
  124. data/spec/dummy/app/controllers/tagged_dogs_controller.rb +15 -0
  125. data/spec/dummy/app/controllers/twitter_example_controller.rb +307 -0
  126. data/spec/dummy/app/controllers/users_controller.rb +297 -0
  127. data/spec/dummy/app/views/layouts/application.html.erb +21 -0
  128. data/spec/dummy/config.ru +4 -0
  129. data/spec/dummy/config/application.rb +49 -0
  130. data/spec/dummy/config/boot.rb +10 -0
  131. data/spec/dummy/config/database.yml +21 -0
  132. data/spec/dummy/config/environment.rb +8 -0
  133. data/spec/dummy/config/environments/development.rb +28 -0
  134. data/spec/dummy/config/environments/production.rb +52 -0
  135. data/spec/dummy/config/environments/test.rb +38 -0
  136. data/spec/dummy/config/initializers/apipie.rb +110 -0
  137. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  138. data/spec/dummy/config/initializers/inflections.rb +10 -0
  139. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  140. data/spec/dummy/config/initializers/secret_token.rb +8 -0
  141. data/spec/dummy/config/initializers/session_store.rb +8 -0
  142. data/spec/dummy/config/locales/en.yml +5 -0
  143. data/spec/dummy/config/routes.rb +51 -0
  144. data/spec/dummy/db/.gitkeep +0 -0
  145. data/spec/dummy/doc/apipie_examples.json +1 -0
  146. data/spec/dummy/doc/users/desc_from_file.md +1 -0
  147. data/spec/dummy/public/404.html +26 -0
  148. data/spec/dummy/public/422.html +26 -0
  149. data/spec/dummy/public/500.html +26 -0
  150. data/spec/dummy/public/favicon.ico +0 -0
  151. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  152. data/spec/dummy/script/rails +6 -0
  153. data/spec/lib/application_spec.rb +49 -0
  154. data/spec/lib/extractor/extractor_spec.rb +9 -0
  155. data/spec/lib/extractor/middleware_spec.rb +44 -0
  156. data/spec/lib/extractor/writer_spec.rb +110 -0
  157. data/spec/lib/file_handler_spec.rb +18 -0
  158. data/spec/lib/method_description_spec.rb +98 -0
  159. data/spec/lib/param_description_spec.rb +345 -0
  160. data/spec/lib/param_group_spec.rb +60 -0
  161. data/spec/lib/rake_spec.rb +71 -0
  162. data/spec/lib/resource_description_spec.rb +48 -0
  163. data/spec/lib/swagger/openapi_2_0_schema.json +1607 -0
  164. data/spec/lib/swagger/rake_swagger_spec.rb +139 -0
  165. data/spec/lib/swagger/response_validation_spec.rb +104 -0
  166. data/spec/lib/swagger/swagger_dsl_spec.rb +658 -0
  167. data/spec/lib/validator_spec.rb +113 -0
  168. data/spec/lib/validators/array_validator_spec.rb +85 -0
  169. data/spec/spec_helper.rb +109 -0
  170. data/spec/support/rake.rb +21 -0
  171. metadata +415 -0
@@ -0,0 +1,30 @@
1
+ .com { color: #93a1a1; }
2
+ .lit { color: #195f91; }
3
+ .pun, .opn, .clo { color: #93a1a1; }
4
+ .fun { color: #dc322f; }
5
+ .str, .atv { color: #D14; }
6
+ .kwd, .linenums .tag { color: #1e347b; }
7
+ .typ, .atn, .dec, .var { color: teal; }
8
+ .pln { color: #48484c; }
9
+
10
+ .prettyprint {
11
+ padding: 8px;
12
+ background-color: #f7f7f9;
13
+ border: 1px solid #e1e1e8;
14
+ }
15
+ .prettyprint.linenums {
16
+ -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
17
+ -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
18
+ box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
19
+ }
20
+
21
+ /* Specify class=linenums on a pre to get line numbering */
22
+ ol.linenums {
23
+ margin: 0 0 0 33px; /* IE indents via margin-left */
24
+ }
25
+ ol.linenums li {
26
+ padding-left: 12px;
27
+ color: #bebec5;
28
+ line-height: 18px;
29
+ text-shadow: 0 1px 0 #fff;
30
+ }
@@ -0,0 +1,13 @@
1
+ <div id="disqus_thread"></div>
2
+ <script type="text/javascript">
3
+ var disqus_shortname = "<%= Apipie.configuration.disqus_shortname %>";
4
+ (function() {
5
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
6
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js?https';
7
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
8
+ })();
9
+ </script>
10
+ <noscript><%= t('apipie.enable_javascript_html', :comments_href => link_to(
11
+ t('apipie.comments_powered_by_disqus', :disqus => 'Disqus'),
12
+ "https://disqus.com/?ref_noscript")) %></noscript>
13
+ <a href="https://disqus.com" class="dsq-brlink"><%= t('apipie.comments_powered_by_disqus', :disqus => "<span class='logo-disqus'>Disqus</span>") %></a>
@@ -0,0 +1,23 @@
1
+ <% show_metadata = errors.reject { |err| err[:metadata].blank? }.size > 0 %>
2
+
3
+ <table class="table table-bordered">
4
+ <thead>
5
+ <tr>
6
+ <th><%= t('apipie.error_code', default: 'Code') %></th>
7
+ <th><%= t('apipie.error_description', default: [:description, 'Description']) %></th>
8
+ <% if show_metadata %><th><%= t('apipie.error_metadata', default: [:metadata, 'Metadata']) %></th><% end %>
9
+ </tr>
10
+ </thead>
11
+
12
+ <tbody>
13
+ <% errors.each do |err| %>
14
+ <tr>
15
+ <td><span class="<%= Apipie.label_class_for_error(err) %>"> <%= err[:code] %> </span></td>
16
+ <td><%= err[:description] %></td>
17
+ <% if show_metadata %>
18
+ <td><%= render(:partial => "metadata", :locals => {:meta => err[:metadata]}) unless err[:metadata].blank? %></td>
19
+ <% end %>
20
+ </tr>
21
+ <% end %>
22
+ </tbody>
23
+ </table>
@@ -0,0 +1,26 @@
1
+ <% unless headers.blank? %>
2
+ <%= heading(t('apipie.headers'), h_level) %>
3
+ <table class='table'>
4
+ <thead>
5
+ <tr>
6
+ <th><%= t('apipie.header_name') %></th>
7
+ <th><%= t('apipie.description') %></th>
8
+ </tr>
9
+ </thead>
10
+ <tbody>
11
+ <% headers.each do |header| %>
12
+ <tr>
13
+ <td>
14
+ <strong><%= header[:name] %> </strong><br>
15
+ <small>
16
+ <%= header[:options][:required] ? t('apipie.required') : t('apipie.optional') %>
17
+ </small>
18
+ </td>
19
+ <td>
20
+ <%= header[:description].html_safe %>
21
+ </td>
22
+ </tr>
23
+ <% end %>
24
+ </tbody>
25
+ </table>
26
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <% if @languages && @languages.size > 1 %>
2
+ <li class='pull-right'>
3
+ &nbsp;[ <%= @languages.collect { |lang| link = link_to(lang, "#{doc_url}.#{lang}.html");
4
+ lang==@language ? content_tag(:b, link) : link }.join(' | ').html_safe %> ]
5
+ </li>
6
+ <% end %>
@@ -0,0 +1 @@
1
+ <pre class="prettyprint lang-yaml"><%= meta.to_yaml.gsub(/---\n/, "") %></pre>
@@ -0,0 +1,61 @@
1
+ <%= raw method[:full_description] %>
2
+
3
+ <% unless method[:formats].blank? %>
4
+ <%= heading(t('apipie.supported_formats'), h_level) %>
5
+ <%= method[:formats].join(', ') %>
6
+ <% end %>
7
+
8
+ <% unless method[:errors].blank? %>
9
+ <%= heading(t('apipie.errors'), h_level) %>
10
+ <%= render(:partial => "errors", :locals => {:errors => method[:errors]}) %>
11
+ <% end %>
12
+
13
+ <% unless method[:metadata].blank? %>
14
+ <%= heading(t('apipie.metadata'), h_level) %>
15
+ <%= render(:partial => "metadata", :locals => {:meta => method[:metadata]}) %>
16
+ <% end %>
17
+
18
+ <% unless method[:examples].blank? %>
19
+ <%= heading(t('apipie.examples'), h_level) %>
20
+ <% method[:examples].each do |example| %>
21
+ <pre class="prettyprint"><%= example %></pre>
22
+ <% end %>
23
+ <% end %>
24
+
25
+ <% unless method[:params].blank? %>
26
+ <%= heading(t('apipie.params'), h_level) %>
27
+ <table class='table'>
28
+ <thead>
29
+ <tr>
30
+ <th><%= t('apipie.param_name') %></th>
31
+ <th><%= t('apipie.description') %></th>
32
+ </tr>
33
+ </thead>
34
+ <tbody>
35
+ <%= render(:partial => "params", :locals => {:params => method[:params]}) %>
36
+ </tbody>
37
+ </table>
38
+ <% end %>
39
+ <% unless method[:returns].blank? %>
40
+ <%= heading(t('apipie.returns'), h_level) %>
41
+ <% method[:returns].each do |item| %>
42
+ <%= heading("#{t('apipie.code')}: #{item[:code]}", h_level + 1) %>
43
+ <% if item[:description] %>
44
+ <%= heading("#{t('apipie.description')}:", h_level + 2) %>
45
+ <p><%= item[:description] %></p>
46
+ <% end %>
47
+ <table class='table'>
48
+ <thead>
49
+ <tr>
50
+ <th><%= t('apipie.param_name') %></th>
51
+ <th><%= t('apipie.description') %></th>
52
+ </tr>
53
+ </thead>
54
+ <tbody>
55
+ <%= render(:partial => "params", :locals => {:params => item[:returns_object]}) %>
56
+ </tbody>
57
+ </table>
58
+ <% end %>
59
+ <% end %>
60
+
61
+ <%= render(:partial => "headers", :locals => {:headers => method[:headers], :h_level => h_level }) %>
@@ -0,0 +1,42 @@
1
+ <% level ||= 0 %>
2
+ <% col = 255 - level * 5 %>
3
+ <% params.each do |param| %>
4
+ <% if !param[:show] %>
5
+ <%= render(:partial => "params", :locals => {:level => level, :params => param[:params]}) unless param[:params].blank? %>
6
+ <% next %>
7
+ <% end %>
8
+ <tr style='background-color:rgb(<%= "#{col},#{col},#{col}" %>);'>
9
+ <td>
10
+ <strong><%= param[:full_name] %> </strong><br>
11
+ <small>
12
+ <%= param[:required] ? t('apipie.required') : t('apipie.optional') %>
13
+ <%= param[:allow_nil] ? ', '+t('apipie.nil_allowed') : '' %>
14
+ </small>
15
+ </td>
16
+ <td>
17
+ <%= param[:description].html_safe %>
18
+ <%- if param[:validations].present? || param[:validator].present? %>
19
+ <p><strong>Validations:</strong></p>
20
+ <ul>
21
+ <%- if param[:validator].present? %>
22
+ <li><%= Apipie.markup_to_html(param[:validator]).html_safe %></li>
23
+ <%- end %>
24
+ <%- if param[:validations].present? %>
25
+ <%- param[:validations].each do |item| %>
26
+ <li><%= item.html_safe %></li>
27
+ <%- end %>
28
+ <%- end %>
29
+ </ul>
30
+ <%- end %>
31
+
32
+ <% unless param[:metadata].blank? %>
33
+ <br>
34
+ Metadata:
35
+ <%= render(:partial => "metadata", :locals => {:meta => param[:metadata]}) %>
36
+ <% end %>
37
+ </td>
38
+
39
+ </tr>
40
+
41
+ <%= render(:partial => "params", :locals => {:level => level + 1, :params => param[:params]}) unless param[:params].blank? %>
42
+ <% end %>
@@ -0,0 +1,20 @@
1
+ <ul>
2
+ <% params.each do |param| %>
3
+ <% if !param[:show] %>
4
+ <%= render(:partial => "params_plain", :locals => {:params => param[:params]}) unless param[:params].blank? %>
5
+ <% next %>
6
+ <% end %>
7
+ <li>
8
+ <strong><%= param[:name] %> </strong>:
9
+ <small>
10
+ <%= param[:required] ? t('apipie.required') : t('apipie.optional') %>
11
+ <%= param[:allow_nil] ? ', '+t('apipie.nil_allowed') : '' %>
12
+ <% if param[:validator] %>
13
+ [ <%= Apipie.markup_to_html(param[:validator]).html_safe %> ]
14
+ <% end %>
15
+ </small>
16
+ <%= param[:description].html_safe %>
17
+ </li>
18
+ <%= render(:partial => "params_plain", :locals => {:params => param[:params]}) unless param[:params].blank? %>
19
+ <% end %>
20
+ </ul>
@@ -0,0 +1,17 @@
1
+ <h1 class='page-header'>
2
+ <%= t('apipie.oops') %>
3
+ <small>
4
+ <% if params[:method].blank? %>
5
+ <%= t('apipie.resource_not_found_html', :resource => "<code>#{h(params[:resource])}</code>".html_safe) %>
6
+ <% else %>
7
+ <%= t('apipie.method_not_found_html', :resource => "<code>#{h(params[:resource])}</code>".html_safe,
8
+ :method => "<code>#{h(params[:method])}</code>".html_safe) %>
9
+ <% end %>
10
+ </small>
11
+ </h1>
12
+
13
+ <% if @doc %>
14
+ <%= t('apipie.goto_homepage_html', :href => link_to(
15
+ t('apipie.goto_homepage_href', :app_name => @doc[:name]),
16
+ File.join(@doc[:doc_url], @doc[:link_extension]))) %>
17
+ <% end %>
@@ -0,0 +1 @@
1
+ { "checksum": "<%= raw Apipie.checksum %>" }
@@ -0,0 +1,6 @@
1
+ <h1 class='page-header'><%= t('apipie.no_doc_found') %></h1>
2
+ <p><%= t('apipie.no_docs_found_descr') %></p>
3
+ <p><%= t('apipie.follow_instructions_html',
4
+ :href => link_to(t('apipie.follow_instructions_href'),
5
+ "https://github.com/Pajk/apipie-rails#getting-started", :target => "_blank")) %></p>
6
+
@@ -0,0 +1,56 @@
1
+ <ul class='breadcrumb'>
2
+ <li class='active'><a href='<%= @doc[:doc_url] %><%= @doc[:link_extension] %>'><%= @doc[:name] %> <%= @doc[:resources].values.first && @doc[:resources].values.first[:version] %></a></li>
3
+ <%= render(:partial => "languages", :locals => {:doc_url => @doc[:doc_url]}) %>
4
+ <% if @versions && @versions.size > 1 %>
5
+ <li class='pull-right'>
6
+ <%= @versions.collect { |v| link_to v, Apipie.full_url(v+@doc[:link_extension]) }.join(' / ').html_safe %>
7
+ </li>
8
+ <% end %>
9
+ </ul>
10
+
11
+ <div><%= raw @doc[:info] %></div>
12
+
13
+ <h1 class='page-header'><%= t('apipie.resources') %></h1>
14
+
15
+ <% @doc[:resources].sort_by(&:first).each do |key, api| %>
16
+ <h2>
17
+ <a href='<%= api[:doc_url] %><%= @doc[:link_extension] %>'>
18
+ <%= api[:name] %>
19
+ </a>
20
+ <% if api[:deprecated] %>
21
+ <code>DEPRECATED</code>
22
+ <% end %>
23
+ <br>
24
+ <small><%= api[:short_description] %></small>
25
+ </h2>
26
+ <table class='table'>
27
+ <thead>
28
+ <tr>
29
+ <th><%= t('apipie.resource') %></th>
30
+ <th><%= t('apipie.description') %></th>
31
+ </tr>
32
+ </thead>
33
+ <tbody>
34
+ <% api[:methods].each do |m| %>
35
+ <% if !m[:show] %>
36
+ <% next %>
37
+ <% end %>
38
+ <% m[:apis].each do |a| %>
39
+ <tr>
40
+ <td>
41
+ <a href='<%= m[:doc_url] %><%= @doc[:link_extension] %>'><%= a[:http_method] %> <%= a[:api_url] %></a>
42
+ <% if a[:deprecated] %>
43
+ <code>DEPRECATED</code>
44
+ <% end %>
45
+ </td>
46
+ <td width='60%'><%= a[:short_description] %></td>
47
+ </tr>
48
+ <% end %>
49
+ <% end %>
50
+ </tbody>
51
+ </table>
52
+ <% end %>
53
+
54
+ <% unless content_for(:apipie_footer) == @doc[:copyright] %>
55
+ <%= content_for :apipie_footer, raw(@doc[:copyright]) %>
56
+ <% end %>
@@ -0,0 +1,41 @@
1
+ <ul class='breadcrumb'>
2
+ <li>
3
+ <a href='<%= @doc[:doc_url] %><%= @doc[:link_extension] %>'><%= @doc[:name] %> <%= @resource[:version] %></a>
4
+ <span class='divider'>/</span>
5
+ </li>
6
+ <li>
7
+ <a href='<%= @resource[:doc_url] %><%= @doc[:link_extension] %>'>
8
+ <%= @resource[:name] %>
9
+ <% if @resource[:version] %><% end %>
10
+ </a>
11
+ <span class='divider'>/</span>
12
+ </li>
13
+ <li class='active'><%= @method[:name] %></li>
14
+ <%= render(:partial => "languages", :locals => {:doc_url => @method[:doc_url]}) %>
15
+
16
+ </ul>
17
+
18
+ <% @method[:apis].each do |api| %>
19
+ <div class='page-header'>
20
+ <h1>
21
+ <%= api[:http_method] %> <%= api[:api_url] %>
22
+ <% if api[:deprecated] %>
23
+ <code>DEPRECATED</code>
24
+ <% end %>
25
+ <br>
26
+ <small><%= raw api[:short_description] %></small>
27
+ </h1>
28
+ </div>
29
+ <% end %>
30
+
31
+ <div>
32
+ <% unless @method[:see].empty? %>
33
+ Also see <%= @method[:see].map { |s| link_to(s[:description], "#{s[:link]}#{@doc[:link_extension]}") }.to_sentence.html_safe %>.
34
+ <% end %>
35
+
36
+ <%= render(:partial => "method_detail", :locals => {:method => @method, :h_level => 2}) %>
37
+ </div>
38
+
39
+ <% unless content_for(:apipie_footer) == @doc[:copyright] %>
40
+ <%= content_for :apipie_footer, raw(@doc[:copyright]) %>
41
+ <% end %>
@@ -0,0 +1,77 @@
1
+ <% @doc[:resources].sort_by(&:first).each do |key, resource| %>
2
+ <h4><a href='#<%= key %>'><%= resource[:name] %></a></h4>
3
+ <ul>
4
+ <% resource[:methods].each do |method| %>
5
+ <% if !method[:show] %>
6
+ <% next %>
7
+ <% end %>
8
+ <li><a href='#<%= key %>-<%= method[:name] %>'><%= method[:name] %></a></li>
9
+ <% end %>
10
+ </ul>
11
+ <% end %>
12
+
13
+
14
+ <% @doc[:resources].sort_by(&:first).each do |key, resource| %>
15
+
16
+ <hr/>
17
+
18
+ <div>
19
+ <h2 id="<%= key %>">
20
+ <a href='#<%= key %>'><%= resource[:name] %></a><br>
21
+ <small><%= raw resource[:short_description] %></small>
22
+ </h2>
23
+ </div>
24
+
25
+ <% unless resource[:full_description].blank? %>
26
+ <div><%= raw resource[:full_description] %></div>
27
+ <% end %>
28
+
29
+ <div>
30
+
31
+ <% resource[:methods].each do |method| %>
32
+ <% if !method[:show] %>
33
+ <% next %>
34
+ <% end %>
35
+ <hr/>
36
+
37
+ <h3 id="<%= "#{key}-#{method[:name]}" %>">
38
+ <a href='#<%= key %>'><%= resource[:name] %></a> / <a href='#<%= "#{key}-#{method[:name]}" %>'><%= method[:name] %></a>
39
+ </h3>
40
+
41
+ <div>
42
+ <% method[:apis].each do |api| %>
43
+ <h4>
44
+ <%= api[:http_method] %> <%= api[:api_url] %>
45
+ <br>
46
+ <small><%= raw api[:short_description] %></small>
47
+ </h4>
48
+ <% end %>
49
+ </div>
50
+
51
+ <div>
52
+ <%= raw method[:full_description] %>
53
+ <% unless method[:examples].blank? %>
54
+ <h4><%= t('apipie.examples') %></h4>
55
+ <% method[:examples].each do |example| %>
56
+ <pre class="wiki"><%= example %></pre>
57
+ <% end %>
58
+ <% end %>
59
+
60
+ <% unless method[:errors].blank? %>
61
+ <h4><%= t('apipie.errors') %></h4>
62
+ <% method[:errors].each do |err| %>
63
+ <%= err[:code] %>
64
+ <%= err[:description] %>
65
+ <%= render(:partial => "metadata", :locals => {:meta => err[:metadata]}) %>
66
+ <br>
67
+ <% end %>
68
+ <% end %>
69
+
70
+ <% unless method[:params].blank? %>
71
+ <h4><%= t('apipie.params') %></h4>
72
+ <%= render(:partial => "params_plain", :locals => {:params => method[:params]}) %>
73
+ <% end %>
74
+ </div>
75
+ <% end %>
76
+ </div>
77
+ <% end %>
@@ -0,0 +1,80 @@
1
+ <ul class='breadcrumb'>
2
+ <li>
3
+ <a href='<%= @doc[:doc_url] %><%= @doc[:link_extension] %>'><%= @doc[:name] %> <%= @resource[:version] %></a>
4
+ <span class='divider'>/</span>
5
+ </li>
6
+ <li class='active'>
7
+ <%= @resource[:name] %>
8
+ <% if @resource[:version] %><% end %>
9
+ </li>
10
+ <%= render(:partial => "languages", :locals => {:doc_url => @resource[:doc_url]}) %>
11
+ </ul>
12
+
13
+ <div class='page-header'>
14
+ <h1>
15
+ <%= @resource[:name] %>
16
+ <% if @resource[:deprecated] %>
17
+ <code>DEPRECATED</code>
18
+ <% end %>
19
+ <br>
20
+ <small><%= raw @resource[:short_description] %></small>
21
+ </h1>
22
+ </div>
23
+
24
+ <% unless @resource[:full_description].blank? %>
25
+ <div><%= raw @resource[:full_description] %></div>
26
+ <% end %>
27
+
28
+ <% unless @resource[:metadata].blank? %>
29
+ <h2>Metadata</h2>
30
+ <%= render(:partial => "metadata", :locals => {:meta => @resource[:metadata]}) %>
31
+ <% end %>
32
+
33
+ <% unless @resource[:formats].blank? %>
34
+ <h2>Supported Formats</h2>
35
+ <%= @resource[:formats].join(', ') %>
36
+ <% end %>
37
+
38
+ <%= render(:partial => 'headers', :locals => { headers: @resource[:headers], h_level: 2 }) %>
39
+
40
+ <div class='accordion' id='accordion'>
41
+
42
+ <% @resource[:methods].each do |m| %>
43
+ <% if !m[:show] %>
44
+ <% next %>
45
+ <% end %>
46
+ <hr>
47
+ <div class='pull-right small'>
48
+ <a href='<%= m[:doc_url] %><%= @doc[:link_extension] %>'> >>> </a>
49
+ </div>
50
+ <div>
51
+ <% m[:apis].each do |api| %>
52
+ <h2>
53
+ <a href='#description-<%= m[:name] %>'
54
+ class='accordion-toggle'
55
+ data-toggle='collapse'
56
+ data-parent='#accordion'>
57
+ <%= api[:http_method] %> <%= api[:api_url] %>
58
+ </a>
59
+ <% if api[:deprecated] %>
60
+ <code>DEPRECATED</code>
61
+ <% end %>
62
+ <br>
63
+ <small><%= raw api[:short_description] %></small>
64
+ </h2>
65
+ <% end %>
66
+ </div>
67
+
68
+ <% unless m[:see].empty? %>
69
+ Also see <%= m[:see].map { |s| link_to(s[:description], "#{s[:link]}#{@doc[:link_extension]}") }.to_sentence.html_safe %>.
70
+ <% end %>
71
+
72
+ <div id='description-<%= m[:name] %>' class='collapse accordion-body'>
73
+ <%= render(:partial => "method_detail", :locals => {:method => m, :h_level => 3}) %>
74
+ </div>
75
+ <% end %>
76
+ </div>
77
+
78
+ <% unless content_for(:apipie_footer) == @doc[:copyright] %>
79
+ <%= content_for :apipie_footer, raw(@doc[:copyright]) %>
80
+ <% end %>