rspec-api-docs 0.3.0 → 0.4.0
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 +5 -4
- data/lib/rspec_api_docs/formatter/renderer/README.md +30 -0
- data/lib/rspec_api_docs/formatter/renderer/json_renderer.rb +21 -9
- data/lib/rspec_api_docs/formatter/renderer/raddocs_renderer/link.rb +1 -1
- data/lib/rspec_api_docs/formatter/resource.rb +0 -1
- data/lib/rspec_api_docs/version.rb +1 -1
- data/rspec-api-docs.gemspec +0 -2
- metadata +2 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e9892448884eff6e7ab9f869c5358595e25af95
|
4
|
+
data.tar.gz: 11968fb9bb7a942b6859c8f13029ab37765c936c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0dd30dcf52b5df54ba6ac7179e315619bec8f6652679291fcc12ff0a974d98b184ca97b61da3e6eda8dabed7abd420c4814f32edc86d0fcec00d7441803497dc
|
7
|
+
data.tar.gz: f313600b62164dfae76b321187860fb894eed9c8b6732249c060418c7daa6c8072fbc22b590dbaf9f4ed13b2a8ea44fcde1ffcf7bbd8dcdeb01d29bc428cac97
|
data/README.md
CHANGED
@@ -42,11 +42,12 @@ end
|
|
42
42
|
The `doc` method stores data in a hash on the RSpec example metadata.
|
43
43
|
|
44
44
|
The second stage is the formatter (`RspecApiDocs::Formatter`). The formatter
|
45
|
-
parses the hash stored on each RSpec example and uses a
|
46
|
-
(lib/rspec_api_docs/formatter/renderer/) to write out your
|
45
|
+
parses the hash stored on each RSpec example and uses a
|
46
|
+
[renderer](lib/rspec_api_docs/formatter/renderer/README.md) to write out your
|
47
|
+
documentation.
|
47
48
|
|
48
49
|
```
|
49
|
-
|
50
|
+
$ rspec spec/requests/characters_spec.rb --formatter=RspecApiDocs::Formatter
|
50
51
|
```
|
51
52
|
|
52
53
|
### DSL
|
@@ -246,7 +247,7 @@ git commits and tags, and push the `.gem` file to [rubygems.org].
|
|
246
247
|
Regenerate this project's integration spec docs locally:
|
247
248
|
|
248
249
|
```
|
249
|
-
./bin/generate_integration_docs
|
250
|
+
$ ./bin/generate_integration_docs
|
250
251
|
```
|
251
252
|
|
252
253
|
## TODO
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Renderers
|
2
|
+
|
3
|
+
Included renders:
|
4
|
+
|
5
|
+
- JSON renderer for https://github.com/twe4ked/api-docs
|
6
|
+
- Raddocs renderer for https://github.com/smartlogic/raddocs
|
7
|
+
- Slate renderer for https://github.com/lord/slate
|
8
|
+
|
9
|
+
## Protocol
|
10
|
+
|
11
|
+
A renderer gets initialized with an array of `Resource`s and then the `render`
|
12
|
+
instance method is called.
|
13
|
+
|
14
|
+
## Example
|
15
|
+
|
16
|
+
``` ruby
|
17
|
+
class ExampleRenderer
|
18
|
+
def initialize(resources)
|
19
|
+
@resources = resources
|
20
|
+
end
|
21
|
+
|
22
|
+
def render
|
23
|
+
puts @resources.map(&:name).join("\n")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
RspecApiDocs.configure do |config|
|
28
|
+
config.renderer = ExampleRenderer
|
29
|
+
end
|
30
|
+
```
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'json'
|
2
|
-
require 'active_support/core_ext/hash/keys'
|
3
2
|
require 'rspec_api_docs/formatter/renderer/json_renderer/name'
|
4
3
|
require 'rspec_api_docs/formatter/renderer/json_renderer/resource_serializer'
|
5
4
|
|
@@ -24,20 +23,33 @@ module RspecApiDocs
|
|
24
23
|
|
25
24
|
def output
|
26
25
|
resources.map do |resource|
|
27
|
-
|
26
|
+
recursive_format_hash ResourceSerializer.new(resource).to_h
|
28
27
|
end
|
29
28
|
end
|
30
29
|
|
31
|
-
def
|
32
|
-
hash
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
30
|
+
def recursive_format_hash(hash)
|
31
|
+
case hash
|
32
|
+
when Hash
|
33
|
+
Hash[
|
34
|
+
hash.map do |key, v|
|
35
|
+
[
|
36
|
+
key.is_a?(Symbol) && key =~ /\A[a-z]/ ? lower_camel_case(key.to_s).to_sym : key,
|
37
|
+
recursive_format_hash(v),
|
38
|
+
]
|
39
|
+
end
|
40
|
+
]
|
41
|
+
when Enumerable
|
42
|
+
hash.map { |value| recursive_format_hash(value) }
|
43
|
+
else
|
44
|
+
hash
|
38
45
|
end
|
39
46
|
end
|
40
47
|
|
48
|
+
def lower_camel_case(string)
|
49
|
+
string = string.split('_').collect(&:capitalize).join
|
50
|
+
string[0].downcase + string[1..-1]
|
51
|
+
end
|
52
|
+
|
41
53
|
def output_file
|
42
54
|
Pathname.new(RspecApiDocs.configuration.output_dir) + 'index.json'
|
43
55
|
end
|
@@ -3,7 +3,7 @@ module RspecApiDocs
|
|
3
3
|
class RaddocsRenderer
|
4
4
|
class Link
|
5
5
|
def self.call(resource_name, example_name)
|
6
|
-
"#{resource_name.
|
6
|
+
"#{resource_name.downcase.gsub(/[^a-z]/, '_')}/#{example_name.downcase.gsub(/[^a-z]/, '_')}.json"
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
data/rspec-api-docs.gemspec
CHANGED
@@ -18,8 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'activesupport'
|
22
|
-
|
23
21
|
spec.add_development_dependency 'bundler', '~> 1.13'
|
24
22
|
spec.add_development_dependency 'rake', '~> 10.0'
|
25
23
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-api-docs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Odin Dutton
|
@@ -10,20 +10,6 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2017-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: activesupport
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: bundler
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,6 +136,7 @@ files:
|
|
150
136
|
- lib/rspec_api_docs/dsl/doc_proxy.rb
|
151
137
|
- lib/rspec_api_docs/dsl/request_store.rb
|
152
138
|
- lib/rspec_api_docs/formatter.rb
|
139
|
+
- lib/rspec_api_docs/formatter/renderer/README.md
|
153
140
|
- lib/rspec_api_docs/formatter/renderer/json_renderer.rb
|
154
141
|
- lib/rspec_api_docs/formatter/renderer/json_renderer/example_serializer.rb
|
155
142
|
- lib/rspec_api_docs/formatter/renderer/json_renderer/name.rb
|