autodoc 0.4.5 → 0.5.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
  SHA1:
3
- metadata.gz: 007f7f2ba421604a63bc0bd1f9b3c81fcb42f56c
4
- data.tar.gz: 3ccf8ae635730b8d49f9b666570671d5dd6d6404
3
+ metadata.gz: a2a5528a44cbd03fbfae762dbaa8c4f274e1a537
4
+ data.tar.gz: 911b9292db126659555cab615394c675f4442343
5
5
  SHA512:
6
- metadata.gz: e79775dfc64ae0dac2e710ff82a5626d1ca059549d9e0fc804268d2d4797284cdefd7448f6d52b1b5d8f914b6c3dae74fe4c3059fc1444de32de51c885624c0e
7
- data.tar.gz: e9b16bd1f8f98b3cd6a17c46cfbce051fde94757ea541e922988f9a7e03f0d4932af169e2c78d88eb6bb1f604d1f2b9cbcc32c1e774e728567a3db187473d505
6
+ metadata.gz: 4b05f3d3f81415016e9a18d509d4c3b290866e063d4906360236b95f5161323bdff8e6b40794765bb12ae4afec824dfb065025262c4d2ca7ecfb5ef7b3946cab
7
+ data.tar.gz: 9e22c29f5e0e8d90a6b07adba30b3c0f25b9afb4236a2c758d0c5e905176d282f4132c69075caa74e41b1e5f36305039861d0467d784f43f9688af9cc484baef
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.5.0
2
+ - Add `Autodoc.configuration.document_path_from_example` (Thx @samuraiT)
3
+
1
4
  ## 0.4.5
2
5
  - Support other specs directory than spec/requests (Thx @joe-re)
3
6
 
data/README.md CHANGED
@@ -83,12 +83,26 @@ You can configure `Autodoc.configuration` to change its behavior:
83
83
  * toc - [Boolean] whether to generate toc.md (default: false)
84
84
  * toc_html_template - [String] ERB template for html ToC (default: [toc.html.erb](https://github.com/r7kamura/autodoc/blob/master/lib/autodoc/templates/toc.html.erb))
85
85
  * toc_html - [Boolean] whether to generate toc.html - a single page documentation with a toc (default: false)
86
+ * document_path_from_example - [Proc] specify a Proc to change the naming rule of document file paths
86
87
 
87
88
  ```ruby
88
- # example
89
89
  Autodoc.configuration.path = "doc/api"
90
90
  Autodoc.configuration.toc = true
91
91
  Autodoc.configuration.toc_html = true
92
92
  Autodoc.configuration.template = File.read(File.expand_path("../autodoc/templates/document.md.erb", __FILE__))
93
+ Audocot.configuration.document_path_from_example = -> (example) do
94
+ example.file_path.gsub(%r<\./spec/requests/api/(.+)_spec\.rb>, '\1.md')
95
+ end
96
+ ```
93
97
 
98
+ ## WeakParameters integration
99
+ If your app uses [WeakParameters](https://github.com/r7kamura/weak_parameters) to define parameters schema
100
+ in your controller, autodoc scans them and provides `### Parameters` section to generated docs.
101
+
102
+ ```rb
103
+ class RecipesController < ApplicationController
104
+ validates :create do
105
+ string :name, required: true, except: ["charlie", "dave"]
106
+ integer :type, only: 1..3
107
+ end
94
108
  ```
data/autodoc.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency "actionpack"
22
22
  spec.add_dependency "rspec"
23
23
  spec.add_development_dependency "bundler", "~> 1.3"
24
- spec.add_development_dependency "rails", ">= 3.2.11"
24
+ spec.add_development_dependency "rails", "4.2.0"
25
25
  spec.add_development_dependency "rake"
26
26
  spec.add_development_dependency "sqlite3"
27
27
  end
@@ -14,6 +14,9 @@ module Autodoc
14
14
  end
15
15
  end
16
16
 
17
+ property :document_path_from_example do
18
+ end
19
+
17
20
  property :path do
18
21
  "doc"
19
22
  end
@@ -7,6 +7,10 @@ require "pathname"
7
7
 
8
8
  module Autodoc
9
9
  class Document
10
+ DEFAULT_DOCUMENT_PATH_FROM_EXAMPLE = -> (example) do
11
+ example.file_path.gsub(%r<\./spec/[^/]+/(.+)_spec\.rb>, '\1.md')
12
+ end
13
+
10
14
  def self.render(*args)
11
15
  new(*args).render
12
16
  end
@@ -17,9 +21,8 @@ module Autodoc
17
21
  end
18
22
 
19
23
  def pathname
20
- @path ||= begin
21
- payload = example.file_path.gsub(%r<\./spec/[^/]+/(.+)_spec\.rb>, '\1.md')
22
- Autodoc.configuration.pathname + payload
24
+ @pathname ||= begin
25
+ Autodoc.configuration.pathname + document_path_from_example.call(example)
23
26
  end
24
27
  end
25
28
 
@@ -37,6 +40,10 @@ module Autodoc
37
40
 
38
41
  private
39
42
 
43
+ def document_path_from_example
44
+ Autodoc.configuration.document_path_from_example || DEFAULT_DOCUMENT_PATH_FROM_EXAMPLE
45
+ end
46
+
40
47
  def example
41
48
  if ::RSpec::Core::Version::STRING.match /\A(?:3\.|2.99\.)/
42
49
  @example
@@ -1,3 +1,3 @@
1
1
  module Autodoc
2
- VERSION = "0.4.5"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -82,6 +82,21 @@ describe Autodoc::Documents do
82
82
  expect(toc).to include("[admin/recipes.md](admin/recipes.md)")
83
83
  expect(toc).to include("[GET /admin/recipes](admin/recipes.md#get-adminrecipes)")
84
84
  end
85
+
86
+ context "with document_path_from_example configuration" do
87
+ around do |example|
88
+ origin = Autodoc.configuration.document_path_from_example
89
+ Autodoc.configuration.document_path_from_example = -> (example) { "test.md" }
90
+ example.run
91
+ Autodoc.configuration.document_path_from_example = origin
92
+ end
93
+
94
+ it "change the naming rule of document file paths" do
95
+ toc = documents.send(:render_toc)
96
+ expect(toc).to include("[test.md](test.md)")
97
+ expect(toc).to include("[GET /admin/recipes](test.md#get-adminrecipes)")
98
+ end
99
+ end
85
100
  end
86
101
  end
87
102
  end
@@ -44,14 +44,7 @@ module Dummy
44
44
  # like if you have constraints or database-specific column types
45
45
  # config.active_record.schema_format = :sql
46
46
 
47
- # Enforce whitelist mode for mass assignment.
48
- # This will create an empty whitelist of attributes available for mass-assignment for all models
49
- # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
50
- # parameters by using an attr_accessible or attr_protected declaration.
51
- config.active_record.whitelist_attributes = true
52
-
53
47
  # Version of your assets, change this if you want to expire all your assets
54
48
  config.assets.version = '1.0'
55
49
  end
56
50
  end
57
-
@@ -1,6 +1,8 @@
1
1
  Dummy::Application.configure do
2
2
  # Settings specified here will take precedence over those in config/application.rb
3
3
 
4
+ config.eager_load = false
5
+
4
6
  # In the development environment your application's code is reloaded on
5
7
  # every request. This slows down response time but is perfect for development
6
8
  # since you don't have to restart the web server when you make code changes.
@@ -10,9 +12,6 @@ Dummy::Application.configure do
10
12
  config.consider_all_requests_local = true
11
13
  config.action_controller.perform_caching = false
12
14
 
13
- # Don't care if the mailer can't send
14
- config.action_mailer.raise_delivery_errors = false
15
-
16
15
  # Print deprecation notices to the Rails logger
17
16
  config.active_support.deprecation = :log
18
17
 
@@ -1,6 +1,8 @@
1
1
  Dummy::Application.configure do
2
2
  # Settings specified here will take precedence over those in config/application.rb
3
3
 
4
+ config.eager_load = true
5
+
4
6
  # Code is not reloaded between requests
5
7
  config.cache_classes = true
6
8
 
@@ -1,6 +1,8 @@
1
1
  Dummy::Application.configure do
2
2
  # Settings specified here will take precedence over those in config/application.rb
3
3
 
4
+ config.eager_load = false
5
+
4
6
  # The test environment is used exclusively to run your application's
5
7
  # test suite. You never need to work with it otherwise. Remember that
6
8
  # your test database is "scratch space" for the test suite and is wiped
@@ -2,6 +2,8 @@
2
2
  Returns entries.
3
3
 
4
4
  ### Example
5
+
6
+ #### Request
5
7
  ```
6
8
  GET /admin/entries HTTP/1.1
7
9
  Accept: application/json
@@ -9,6 +11,7 @@ Content-Length: 0
9
11
  Host: example.org
10
12
  ```
11
13
 
14
+ #### Response
12
15
  ```
13
16
  HTTP/1.1 200
14
17
  Content-Length: 45
@@ -2,6 +2,8 @@
2
2
  Returns entries.
3
3
 
4
4
  ### Example
5
+
6
+ #### Request
5
7
  ```
6
8
  GET /entries HTTP/1.1
7
9
  Accept: application/json
@@ -9,6 +11,7 @@ Content-Length: 0
9
11
  Host: example.org
10
12
  ```
11
13
 
14
+ #### Response
12
15
  ```
13
16
  HTTP/1.1 200
14
17
  Content-Length: 45
@@ -2,6 +2,8 @@
2
2
  Returns the recipe.
3
3
 
4
4
  ### Example
5
+
6
+ #### Request
5
7
  ```
6
8
  GET /recipes/1 HTTP/1.1
7
9
  Content-Length: 0
@@ -9,25 +11,25 @@ Content-Type: application/json
9
11
  Host: example.org
10
12
  ```
11
13
 
14
+ #### Response
12
15
  ```
13
16
  HTTP/1.1 200
14
17
  Cache-Control: max-age=0, private, must-revalidate
15
18
  Content-Length: 111
16
19
  Content-Type: application/json; charset=utf-8
17
- ETag: "d2bb4f3624c215dcc71b683ec7d58ebd"
20
+ ETag: W/"569e12b49f55be4160858ca7de2935c3"
18
21
  X-Content-Type-Options: nosniff
19
22
  X-Frame-Options: SAMEORIGIN
20
- X-Request-Id: 5f84d51d-9709-4a8f-a02c-77732902252b
21
- X-Runtime: 0.013851
22
- X-UA-Compatible: chrome=1
23
+ X-Request-Id: cbf1563c-2e0f-421f-b734-5234a7388f70
24
+ X-Runtime: 0.001643
23
25
  X-XSS-Protection: 1; mode=block
24
26
 
25
27
  {
26
28
  "id": 1,
27
29
  "name": "test",
28
30
  "type": 2,
29
- "created_at": "2013-12-29T14:22:59.625Z",
30
- "updated_at": "2013-12-29T14:22:59.625Z"
31
+ "created_at": "2015-04-21T14:55:09.351Z",
32
+ "updated_at": "2015-04-21T14:55:09.351Z"
31
33
  }
32
34
  ```
33
35
 
@@ -43,6 +45,8 @@ recipe!
43
45
  * `type` integer (only: `1..3`)
44
46
 
45
47
  ### Example
48
+
49
+ #### Request
46
50
  ```
47
51
  POST /recipes HTTP/1.1
48
52
  Accept: application/json
@@ -56,25 +60,25 @@ Host: www.example.com
56
60
  }
57
61
  ```
58
62
 
63
+ #### Response
59
64
  ```
60
65
  HTTP/1.1 201
61
66
  Cache-Control: max-age=0, private, must-revalidate
62
67
  Content-Length: 111
63
68
  Content-Type: application/json; charset=utf-8
64
- ETag: "0d698f869368039f2145c92927b36720"
69
+ ETag: W/"499417290ebf67a5283002fb2b214c12"
65
70
  Location: http://www.example.com/recipes/1
66
71
  X-Content-Type-Options: nosniff
67
72
  X-Frame-Options: SAMEORIGIN
68
- X-Request-Id: 84349101-dc40-4416-83a0-a767242881f9
69
- X-Runtime: 0.003861
70
- X-UA-Compatible: chrome=1
73
+ X-Request-Id: fac5ae8a-1eec-41c5-a533-c1cd0991ea92
74
+ X-Runtime: 0.003226
71
75
  X-XSS-Protection: 1; mode=block
72
76
 
73
77
  {
74
78
  "id": 1,
75
79
  "name": "name",
76
80
  "type": 1,
77
- "created_at": "2013-12-29T14:22:59.676Z",
78
- "updated_at": "2013-12-29T14:22:59.676Z"
81
+ "created_at": "2015-04-21T14:55:09.377Z",
82
+ "updated_at": "2015-04-21T14:55:09.377Z"
79
83
  }
80
84
  ```
@@ -0,0 +1,26 @@
1
+ ## GET /admin/entries
2
+ Returns entries.
3
+
4
+ ### Example
5
+
6
+ #### Request
7
+ ```
8
+ GET /admin/entries HTTP/1.1
9
+ Accept: application/json
10
+ Content-Length: 0
11
+ Host: example.org
12
+ ```
13
+
14
+ #### Response
15
+ ```
16
+ HTTP/1.1 200
17
+ Content-Length: 45
18
+ Content-Type: application/json
19
+
20
+ [
21
+ {
22
+ "title": "Test Title",
23
+ "body": "Lorem Ipsum"
24
+ }
25
+ ]
26
+ ```
@@ -0,0 +1,26 @@
1
+ ## GET /entries
2
+ Returns entries.
3
+
4
+ ### Example
5
+
6
+ #### Request
7
+ ```
8
+ GET /entries HTTP/1.1
9
+ Accept: application/json
10
+ Content-Length: 0
11
+ Host: example.org
12
+ ```
13
+
14
+ #### Response
15
+ ```
16
+ HTTP/1.1 200
17
+ Content-Length: 45
18
+ Content-Type: application/json
19
+
20
+ [
21
+ {
22
+ "title": "Test Title",
23
+ "body": "Lorem Ipsum"
24
+ }
25
+ ]
26
+ ```
@@ -0,0 +1,84 @@
1
+ ## GET /recipes/:id
2
+ Returns the recipe.
3
+
4
+ ### Example
5
+
6
+ #### Request
7
+ ```
8
+ GET /recipes/1 HTTP/1.1
9
+ Content-Length: 0
10
+ Content-Type: application/json
11
+ Host: example.org
12
+ ```
13
+
14
+ #### Response
15
+ ```
16
+ HTTP/1.1 200
17
+ Cache-Control: max-age=0, private, must-revalidate
18
+ Content-Length: 111
19
+ Content-Type: application/json; charset=utf-8
20
+ ETag: W/"c95e174a05580bffa98c6cb95a2e9ae2"
21
+ X-Content-Type-Options: nosniff
22
+ X-Frame-Options: SAMEORIGIN
23
+ X-Request-Id: 0bb04a6a-b8f3-4640-a487-6f97023efef0
24
+ X-Runtime: 0.013095
25
+ X-XSS-Protection: 1; mode=block
26
+
27
+ {
28
+ "id": 1,
29
+ "name": "test",
30
+ "type": 2,
31
+ "created_at": "2015-04-21T14:55:09.299Z",
32
+ "updated_at": "2015-04-21T14:55:09.299Z"
33
+ }
34
+ ```
35
+
36
+ ## POST /recipes
37
+ Creates
38
+ a
39
+ new
40
+ recipe!
41
+
42
+
43
+ ### Parameters
44
+ * `name` string (required, except: `["alice", "bob"]`)
45
+ * `type` integer (only: `1..3`)
46
+
47
+ ### Example
48
+
49
+ #### Request
50
+ ```
51
+ POST /recipes HTTP/1.1
52
+ Accept: application/json
53
+ Content-Length: 24
54
+ Content-Type: application/json
55
+ Host: www.example.com
56
+
57
+ {
58
+ "name": "name",
59
+ "type": 1
60
+ }
61
+ ```
62
+
63
+ #### Response
64
+ ```
65
+ HTTP/1.1 201
66
+ Cache-Control: max-age=0, private, must-revalidate
67
+ Content-Length: 111
68
+ Content-Type: application/json; charset=utf-8
69
+ ETag: W/"145ecc23e52083cbc00658e547234672"
70
+ Location: http://www.example.com/recipes/1
71
+ X-Content-Type-Options: nosniff
72
+ X-Frame-Options: SAMEORIGIN
73
+ X-Request-Id: 50bd40e2-d110-40e8-b6cb-7589262fd00a
74
+ X-Runtime: 0.003226
75
+ X-XSS-Protection: 1; mode=block
76
+
77
+ {
78
+ "id": 1,
79
+ "name": "name",
80
+ "type": 1,
81
+ "created_at": "2015-04-21T14:55:09.346Z",
82
+ "updated_at": "2015-04-21T14:55:09.346Z"
83
+ }
84
+ ```
@@ -0,0 +1,369 @@
1
+ <head>
2
+ <style>
3
+ .api-docs {
4
+ left: 210px;
5
+ }
6
+
7
+ .api-docs, .api-docs-toc {
8
+ width: 66%;
9
+ }
10
+
11
+ .api-action {
12
+ padding: 10px;
13
+ }
14
+
15
+ .tocify-wrapper {
16
+ overflow-y: auto;
17
+ overflow-x: hidden;
18
+ position: fixed;
19
+ width: 210px;
20
+ float: left;
21
+ font-size: 16px;
22
+ background-color: #AAAADD;
23
+ top: 1px;
24
+ bottom: -1px;
25
+ padding: 10px;
26
+ }
27
+
28
+ .generated-at {
29
+ position: fixed;
30
+ bottom: 10px;
31
+ }
32
+
33
+ .api-resource {
34
+ border-bottom: black 1px solid;
35
+ }
36
+
37
+ pre {
38
+ padding: 10px;
39
+ background-color: #CCCCEE;
40
+ }
41
+
42
+ .page-wrapper {
43
+ margin-left: 240px;
44
+ min-width: 700px;
45
+ position: relative;
46
+ z-index: 10;
47
+ }
48
+ </style>
49
+ </head>
50
+
51
+
52
+ <html>
53
+ <div class='tocify-wrapper'>
54
+ <h1> Table of Contents </h1>
55
+ <li>
56
+ <a href="#spec/dummy/doc/admin/entries.md">admin/entries.md</a>
57
+ </li>
58
+
59
+ <li>
60
+ <a href="#spec/dummy/doc/entries.md">entries.md</a>
61
+ </li>
62
+
63
+ <li>
64
+ <a href="#spec/dummy/doc/recipes.md">recipes.md</a>
65
+ </li>
66
+
67
+ <li>
68
+ <a href="#spec/dummy/doc/spec/requests/admin/entries.md">spec/requests/admin/entries.md</a>
69
+ </li>
70
+
71
+ <li>
72
+ <a href="#spec/dummy/doc/spec/requests/entries.md">spec/requests/entries.md</a>
73
+ </li>
74
+
75
+ <li>
76
+ <a href="#spec/dummy/doc/spec/requests/recipes.md">spec/requests/recipes.md</a>
77
+ </li>
78
+
79
+ <div class='generated-at'>
80
+ Generated at:
81
+ <br>
82
+ 2015-04-21 23:55:09 +0900</div>
83
+ </div>
84
+
85
+ <div class='page-wrapper'>
86
+ <div id="spec/dummy/doc/admin/entries.md" class="api-resource"><div class="api-action"><h2>GET /admin/entries</h2>
87
+
88
+ <p>Returns entries.</p>
89
+
90
+ <h3>Example</h3>
91
+
92
+ <h4>Request</h4>
93
+
94
+ <pre><code>GET /admin/entries HTTP/1.1
95
+ Accept: application/json
96
+ Content-Length: 0
97
+ Host: example.org
98
+ </code></pre>
99
+
100
+ <h4>Response</h4>
101
+
102
+ <pre><code>HTTP/1.1 200
103
+ Content-Length: 45
104
+ Content-Type: application/json
105
+
106
+ [
107
+ {
108
+ &quot;title&quot;: &quot;Test Title&quot;,
109
+ &quot;body&quot;: &quot;Lorem Ipsum&quot;
110
+ }
111
+ ]
112
+ </code></pre>
113
+ </div></div><div id="spec/dummy/doc/entries.md" class="api-resource"><div class="api-action"><h2>GET /entries</h2>
114
+
115
+ <p>Returns entries.</p>
116
+
117
+ <h3>Example</h3>
118
+
119
+ <h4>Request</h4>
120
+
121
+ <pre><code>GET /entries HTTP/1.1
122
+ Accept: application/json
123
+ Content-Length: 0
124
+ Host: example.org
125
+ </code></pre>
126
+
127
+ <h4>Response</h4>
128
+
129
+ <pre><code>HTTP/1.1 200
130
+ Content-Length: 45
131
+ Content-Type: application/json
132
+
133
+ [
134
+ {
135
+ &quot;title&quot;: &quot;Test Title&quot;,
136
+ &quot;body&quot;: &quot;Lorem Ipsum&quot;
137
+ }
138
+ ]
139
+ </code></pre>
140
+ </div></div><div id="spec/dummy/doc/recipes.md" class="api-resource"><div class="api-action"><h2>GET /recipes/:id</h2>
141
+
142
+ <p>Returns the recipe.</p>
143
+
144
+ <h3>Example</h3>
145
+
146
+ <h4>Request</h4>
147
+
148
+ <pre><code>GET /recipes/1 HTTP/1.1
149
+ Content-Length: 0
150
+ Content-Type: application/json
151
+ Host: example.org
152
+ </code></pre>
153
+
154
+ <h4>Response</h4>
155
+
156
+ <pre><code>HTTP/1.1 200
157
+ Cache-Control: max-age=0, private, must-revalidate
158
+ Content-Length: 111
159
+ Content-Type: application/json; charset=utf-8
160
+ ETag: W/&quot;569e12b49f55be4160858ca7de2935c3&quot;
161
+ X-Content-Type-Options: nosniff
162
+ X-Frame-Options: SAMEORIGIN
163
+ X-Request-Id: cbf1563c-2e0f-421f-b734-5234a7388f70
164
+ X-Runtime: 0.001643
165
+ X-XSS-Protection: 1; mode=block
166
+
167
+ {
168
+ &quot;id&quot;: 1,
169
+ &quot;name&quot;: &quot;test&quot;,
170
+ &quot;type&quot;: 2,
171
+ &quot;created_at&quot;: &quot;2015-04-21T14:55:09.351Z&quot;,
172
+ &quot;updated_at&quot;: &quot;2015-04-21T14:55:09.351Z&quot;
173
+ }
174
+ </code></pre>
175
+ </div><div class="api-action"><h2>POST /recipes</h2>
176
+
177
+ <p>Creates
178
+ a
179
+ new
180
+ recipe!</p>
181
+
182
+ <h3>Parameters</h3>
183
+
184
+ <ul>
185
+ <li><code>name</code> string (required, except: <code>[&quot;alice&quot;, &quot;bob&quot;]</code>)</li>
186
+ <li><code>type</code> integer (only: <code>1..3</code>)</li>
187
+ </ul>
188
+
189
+ <h3>Example</h3>
190
+
191
+ <h4>Request</h4>
192
+
193
+ <pre><code>POST /recipes HTTP/1.1
194
+ Accept: application/json
195
+ Content-Length: 24
196
+ Content-Type: application/json
197
+ Host: www.example.com
198
+
199
+ {
200
+ &quot;name&quot;: &quot;name&quot;,
201
+ &quot;type&quot;: 1
202
+ }
203
+ </code></pre>
204
+
205
+ <h4>Response</h4>
206
+
207
+ <pre><code>HTTP/1.1 201
208
+ Cache-Control: max-age=0, private, must-revalidate
209
+ Content-Length: 111
210
+ Content-Type: application/json; charset=utf-8
211
+ ETag: W/&quot;499417290ebf67a5283002fb2b214c12&quot;
212
+ Location: http://www.example.com/recipes/1
213
+ X-Content-Type-Options: nosniff
214
+ X-Frame-Options: SAMEORIGIN
215
+ X-Request-Id: fac5ae8a-1eec-41c5-a533-c1cd0991ea92
216
+ X-Runtime: 0.003226
217
+ X-XSS-Protection: 1; mode=block
218
+
219
+ {
220
+ &quot;id&quot;: 1,
221
+ &quot;name&quot;: &quot;name&quot;,
222
+ &quot;type&quot;: 1,
223
+ &quot;created_at&quot;: &quot;2015-04-21T14:55:09.377Z&quot;,
224
+ &quot;updated_at&quot;: &quot;2015-04-21T14:55:09.377Z&quot;
225
+ }
226
+ </code></pre>
227
+ </div></div><div id="spec/dummy/doc/spec/requests/admin/entries.md" class="api-resource"><div class="api-action"><h2>GET /admin/entries</h2>
228
+
229
+ <p>Returns entries.</p>
230
+
231
+ <h3>Example</h3>
232
+
233
+ <h4>Request</h4>
234
+
235
+ <pre><code>GET /admin/entries HTTP/1.1
236
+ Accept: application/json
237
+ Content-Length: 0
238
+ Host: example.org
239
+ </code></pre>
240
+
241
+ <h4>Response</h4>
242
+
243
+ <pre><code>HTTP/1.1 200
244
+ Content-Length: 45
245
+ Content-Type: application/json
246
+
247
+ [
248
+ {
249
+ &quot;title&quot;: &quot;Test Title&quot;,
250
+ &quot;body&quot;: &quot;Lorem Ipsum&quot;
251
+ }
252
+ ]
253
+ </code></pre>
254
+ </div></div><div id="spec/dummy/doc/spec/requests/entries.md" class="api-resource"><div class="api-action"><h2>GET /entries</h2>
255
+
256
+ <p>Returns entries.</p>
257
+
258
+ <h3>Example</h3>
259
+
260
+ <h4>Request</h4>
261
+
262
+ <pre><code>GET /entries HTTP/1.1
263
+ Accept: application/json
264
+ Content-Length: 0
265
+ Host: example.org
266
+ </code></pre>
267
+
268
+ <h4>Response</h4>
269
+
270
+ <pre><code>HTTP/1.1 200
271
+ Content-Length: 45
272
+ Content-Type: application/json
273
+
274
+ [
275
+ {
276
+ &quot;title&quot;: &quot;Test Title&quot;,
277
+ &quot;body&quot;: &quot;Lorem Ipsum&quot;
278
+ }
279
+ ]
280
+ </code></pre>
281
+ </div></div><div id="spec/dummy/doc/spec/requests/recipes.md" class="api-resource"><div class="api-action"><h2>GET /recipes/:id</h2>
282
+
283
+ <p>Returns the recipe.</p>
284
+
285
+ <h3>Example</h3>
286
+
287
+ <h4>Request</h4>
288
+
289
+ <pre><code>GET /recipes/1 HTTP/1.1
290
+ Content-Length: 0
291
+ Content-Type: application/json
292
+ Host: example.org
293
+ </code></pre>
294
+
295
+ <h4>Response</h4>
296
+
297
+ <pre><code>HTTP/1.1 200
298
+ Cache-Control: max-age=0, private, must-revalidate
299
+ Content-Length: 111
300
+ Content-Type: application/json; charset=utf-8
301
+ ETag: W/&quot;c95e174a05580bffa98c6cb95a2e9ae2&quot;
302
+ X-Content-Type-Options: nosniff
303
+ X-Frame-Options: SAMEORIGIN
304
+ X-Request-Id: 0bb04a6a-b8f3-4640-a487-6f97023efef0
305
+ X-Runtime: 0.013095
306
+ X-XSS-Protection: 1; mode=block
307
+
308
+ {
309
+ &quot;id&quot;: 1,
310
+ &quot;name&quot;: &quot;test&quot;,
311
+ &quot;type&quot;: 2,
312
+ &quot;created_at&quot;: &quot;2015-04-21T14:55:09.299Z&quot;,
313
+ &quot;updated_at&quot;: &quot;2015-04-21T14:55:09.299Z&quot;
314
+ }
315
+ </code></pre>
316
+ </div><div class="api-action"><h2>POST /recipes</h2>
317
+
318
+ <p>Creates
319
+ a
320
+ new
321
+ recipe!</p>
322
+
323
+ <h3>Parameters</h3>
324
+
325
+ <ul>
326
+ <li><code>name</code> string (required, except: <code>[&quot;alice&quot;, &quot;bob&quot;]</code>)</li>
327
+ <li><code>type</code> integer (only: <code>1..3</code>)</li>
328
+ </ul>
329
+
330
+ <h3>Example</h3>
331
+
332
+ <h4>Request</h4>
333
+
334
+ <pre><code>POST /recipes HTTP/1.1
335
+ Accept: application/json
336
+ Content-Length: 24
337
+ Content-Type: application/json
338
+ Host: www.example.com
339
+
340
+ {
341
+ &quot;name&quot;: &quot;name&quot;,
342
+ &quot;type&quot;: 1
343
+ }
344
+ </code></pre>
345
+
346
+ <h4>Response</h4>
347
+
348
+ <pre><code>HTTP/1.1 201
349
+ Cache-Control: max-age=0, private, must-revalidate
350
+ Content-Length: 111
351
+ Content-Type: application/json; charset=utf-8
352
+ ETag: W/&quot;145ecc23e52083cbc00658e547234672&quot;
353
+ Location: http://www.example.com/recipes/1
354
+ X-Content-Type-Options: nosniff
355
+ X-Frame-Options: SAMEORIGIN
356
+ X-Request-Id: 50bd40e2-d110-40e8-b6cb-7589262fd00a
357
+ X-Runtime: 0.003226
358
+ X-XSS-Protection: 1; mode=block
359
+
360
+ {
361
+ &quot;id&quot;: 1,
362
+ &quot;name&quot;: &quot;name&quot;,
363
+ &quot;type&quot;: 1,
364
+ &quot;created_at&quot;: &quot;2015-04-21T14:55:09.346Z&quot;,
365
+ &quot;updated_at&quot;: &quot;2015-04-21T14:55:09.346Z&quot;
366
+ }
367
+ </code></pre>
368
+ </div></div></div>
369
+ </html>
@@ -6,3 +6,10 @@
6
6
  * [recipes.md](recipes.md)
7
7
  * [GET /recipes/:id](recipes.md#get-recipesid)
8
8
  * [POST /recipes](recipes.md#post-recipes)
9
+ * [spec/requests/admin/entries.md](spec/requests/admin/entries.md)
10
+ * [GET /admin/entries](spec/requests/admin/entries.md#get-adminentries)
11
+ * [spec/requests/entries.md](spec/requests/entries.md)
12
+ * [GET /entries](spec/requests/entries.md#get-entries)
13
+ * [spec/requests/recipes.md](spec/requests/recipes.md)
14
+ * [GET /recipes/:id](spec/requests/recipes.md#get-recipesid)
15
+ * [POST /recipes](spec/requests/recipes.md#post-recipes)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-10 00:00:00.000000000 Z
11
+ date: 2015-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 3.2.11
75
+ version: 4.2.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 3.2.11
82
+ version: 4.2.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -163,6 +163,10 @@ files:
163
163
  - spec/dummy/doc/admin/entries.md
164
164
  - spec/dummy/doc/entries.md
165
165
  - spec/dummy/doc/recipes.md
166
+ - spec/dummy/doc/spec/requests/admin/entries.md
167
+ - spec/dummy/doc/spec/requests/entries.md
168
+ - spec/dummy/doc/spec/requests/recipes.md
169
+ - spec/dummy/doc/toc.html
166
170
  - spec/dummy/doc/toc.md
167
171
  - spec/dummy/lib/assets/.gitkeep
168
172
  - spec/dummy/log/.gitkeep
@@ -232,6 +236,10 @@ test_files:
232
236
  - spec/dummy/doc/admin/entries.md
233
237
  - spec/dummy/doc/entries.md
234
238
  - spec/dummy/doc/recipes.md
239
+ - spec/dummy/doc/spec/requests/admin/entries.md
240
+ - spec/dummy/doc/spec/requests/entries.md
241
+ - spec/dummy/doc/spec/requests/recipes.md
242
+ - spec/dummy/doc/toc.html
235
243
  - spec/dummy/doc/toc.md
236
244
  - spec/dummy/lib/assets/.gitkeep
237
245
  - spec/dummy/log/.gitkeep