graphql-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 +1 -0
- data/graphql-docs.gemspec +1 -1
- data/lib/graphql-docs/helpers.rb +57 -0
- data/lib/graphql-docs/layouts/includes/arguments.html +3 -9
- data/lib/graphql-docs/layouts/includes/fields.html +3 -20
- data/lib/graphql-docs/layouts/includes/input_fields.html +3 -20
- data/lib/graphql-docs/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4935d2987679ab16e3a82d24f4839b484dbc289e
|
4
|
+
data.tar.gz: f4ddc20c6c2702e28b17c7c64648811d59a017ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5bdeee0342d29830457a27c24924c14db9b4850fa75bc751abf449ae0c95c0dce091c5a7f4bea41423e864935c7ca82cda939bf81b7071154d3291db67844ca
|
7
|
+
data.tar.gz: '018e1e9d4f837d7a326a430cbb75fe76cba0d5ff3731ef25b3dff54074ca6ab3bfb9ce596fd9ad9e95b030d9f0ab7bec9d550adbda28776ec1ffb13c970df09c'
|
data/README.md
CHANGED
@@ -112,6 +112,7 @@ In your ERB layouts, there are several helper methods you can use. The helper me
|
|
112
112
|
* `slugify(str)` - This slugifies the given string.
|
113
113
|
* `include(filename, opts)` - This embeds a template from your `includes` folder, passing along the local options provided.
|
114
114
|
* `markdown(string)` - This converts a string from Markdown to HTML.
|
115
|
+
* `format_type(field)` - This formats a type into an IDL-like representation. For example: `!Blah` or `[!Foo]`.
|
115
116
|
* `graphql_mutation_types`, `graphql_object_types`, `graphql_interface_types`, `graphql_enum_types`, `graphql_union_types`, `graphql_input_object_types`, `graphql_scalar_types` - Collections of the various GraphQL types.
|
116
117
|
|
117
118
|
To call these methods within templates, you must use the dot notation, such as `<%= slugify.(text) %>`.
|
data/graphql-docs.gemspec
CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
37
37
|
spec.add_development_dependency 'minitest-focus', '~> 1.1'
|
38
38
|
spec.add_development_dependency 'pry', '~> 0.10.0'
|
39
|
-
spec.add_development_dependency 'rake'
|
39
|
+
spec.add_development_dependency 'rake'
|
40
40
|
spec.add_development_dependency 'rubocop-github'
|
41
41
|
spec.add_development_dependency 'webmock', '~> 2.3'
|
42
42
|
end
|
data/lib/graphql-docs/helpers.rb
CHANGED
@@ -20,6 +20,63 @@ module GraphQLDocs
|
|
20
20
|
GitHub::Markdown.render(string || 'n/a')
|
21
21
|
end
|
22
22
|
|
23
|
+
# Do you think I am proud of this? I am not.
|
24
|
+
def format_type(field)
|
25
|
+
type_path = name_slug = nil
|
26
|
+
type_name = ''
|
27
|
+
|
28
|
+
if field['type']['kind'] == 'NON_NULL'
|
29
|
+
type_name << '!'
|
30
|
+
|
31
|
+
if !field['type']['ofType']['ofType'].nil?
|
32
|
+
# we're going to be a list...but what kind?!
|
33
|
+
type_name << '['
|
34
|
+
if !field['type']['ofType']['ofType']['ofType'].nil?
|
35
|
+
# A required list of required items: ![!Blah]
|
36
|
+
if field['type']['ofType']['ofType']['kind'] == 'NON_NULL'
|
37
|
+
type_name << '!'
|
38
|
+
end
|
39
|
+
type_path = field['type']['ofType']['ofType']['ofType']['kind']
|
40
|
+
type_name << field['type']['ofType']['ofType']['ofType']['name']
|
41
|
+
name_slug = field['type']['ofType']['ofType']['ofType']['name']
|
42
|
+
else
|
43
|
+
# A required list of non-required items: ![Blah]
|
44
|
+
type_path = field['type']['ofType']['ofType']['kind']
|
45
|
+
type_name << field['type']['ofType']['ofType']['name']
|
46
|
+
name_slug = field['type']['ofType']['ofType']['name']
|
47
|
+
end
|
48
|
+
type_name << ']'
|
49
|
+
else
|
50
|
+
# Simple non-null item: !Blah
|
51
|
+
type_path = field['type']['ofType']['kind']
|
52
|
+
type_name << field['type']['ofType']['name']
|
53
|
+
name_slug = field['type']['ofType']['name']
|
54
|
+
end
|
55
|
+
elsif field['type']['kind'] == 'LIST'
|
56
|
+
type_name << '['
|
57
|
+
if field['type']['ofType']['kind'] == 'NON_NULL'
|
58
|
+
# Nullable list of non-null items: [!Blah]
|
59
|
+
type_name << '!'
|
60
|
+
type_path = field['type']['ofType']['ofType']['kind']
|
61
|
+
type_name << field['type']['ofType']['ofType']['name']
|
62
|
+
name_slug = field['type']['ofType']['ofType']['name']
|
63
|
+
else
|
64
|
+
# Nullable list of nullable items: [Blah]
|
65
|
+
type_path = field['type']['ofType']['kind']
|
66
|
+
type_name << field['type']['ofType']['name']
|
67
|
+
name_slug = field['type']['ofType']['name']
|
68
|
+
end
|
69
|
+
type_name << ']'
|
70
|
+
else
|
71
|
+
# Simple nullable item: Blah
|
72
|
+
type_path = field['type']['kind']
|
73
|
+
type_name << field['type']['name']
|
74
|
+
name_slug = field['type']['name']
|
75
|
+
end
|
76
|
+
|
77
|
+
[type_path.downcase, type_name, name_slug.downcase]
|
78
|
+
end
|
79
|
+
|
23
80
|
def graphql_mutation_types
|
24
81
|
@parsed_schema['mutation_types']
|
25
82
|
end
|
@@ -9,18 +9,12 @@
|
|
9
9
|
<tbody>
|
10
10
|
<% args.each do |argument| %>
|
11
11
|
<tr>
|
12
|
-
<td><code><%= argument['name']
|
12
|
+
<td><code><%= argument['name'] %></code></td>
|
13
13
|
<td>
|
14
14
|
|
15
|
-
<%
|
16
|
-
<% @arg_path = argument['type']['ofType']['kind'] %>
|
17
|
-
<% @arg_name = argument['type']['ofType']['name'] %>
|
18
|
-
<% else %>
|
19
|
-
<% @arg_path = argument['type']['kind'] %>
|
20
|
-
<% @arg_name = argument['type']['name'] %>
|
21
|
-
<% end %>
|
15
|
+
<% @type_path, @type_name, @name_slug = format_type.(argument) %>
|
22
16
|
|
23
|
-
<code><%= @
|
17
|
+
<code><a href="<%= base_url %>/<%= @type_path %>/<%= @name_slug %>"><%= @type_name %></a></code>
|
24
18
|
</td>
|
25
19
|
<td>
|
26
20
|
<p><%= markdown.(argument['description']) %></p>
|
@@ -5,26 +5,9 @@
|
|
5
5
|
<div class="field-entry <%= classes[:field_entry] %>">
|
6
6
|
<% next if field['name'] == "id" || field['name'].blank? %>
|
7
7
|
|
8
|
-
<%
|
9
|
-
|
10
|
-
|
11
|
-
<% @type_name = field['type']['ofType']['ofType']['ofType']['name'] %>
|
12
|
-
<% else %>
|
13
|
-
<% @type_path = field['type']['ofType']['ofType']['kind'] %>
|
14
|
-
<% @type_name = field['type']['ofType']['ofType']['name'] %>
|
15
|
-
<% end %>
|
16
|
-
<% elsif field['type']['ofType'].blank? %>
|
17
|
-
<% @type_path = field['type']['kind'] %>
|
18
|
-
<% @type_name = field['type']['name'] %>
|
19
|
-
<% elsif field['type']['name'] == "Non-Null" || field['type']['ofType']['name'] == "Non-Null" %>
|
20
|
-
<% @type_path = field['type']['ofType']['kind'] %>
|
21
|
-
<% @type_name = field['type']['ofType']['name'] %>
|
22
|
-
<% else %>
|
23
|
-
<% @type_path = field['type']['ofType']['kind'] %>
|
24
|
-
<% @type_name = field['type']['ofType']['name'] %>
|
25
|
-
<% end %>
|
26
|
-
|
27
|
-
<span class="field-name"><%= field['name'] %> (<code><a href="<%= base_url %>/<%= @type_path.downcase %>/<%= slugify.(@type_name) %>"><%= @type_name %></a></code>)</span>
|
8
|
+
<% @type_path, @type_name, @name_slug = format_type.(field) %>
|
9
|
+
|
10
|
+
<span class="field-name"><%= field['name'] %> (<code><a href="<%= base_url %>/<%= @type_path %>/<%= @name_slug %>"><%= @type_name %></a></code>)</span>
|
28
11
|
|
29
12
|
<div class="description-wrapper">
|
30
13
|
<% if field['isDeprecated'] %>
|
@@ -7,26 +7,9 @@
|
|
7
7
|
<div class="field-entry <%= classes[:field_entry] %>">
|
8
8
|
<% next if field['name'] == "id" || field['name'].blank? %>
|
9
9
|
|
10
|
-
<%
|
11
|
-
|
12
|
-
|
13
|
-
<% @type_name = field['type']['ofType']['ofType']['ofType']['name'] %>
|
14
|
-
<% else %>
|
15
|
-
<% @type_path = field['type']['ofType']['ofType']['kind'] %>
|
16
|
-
<% @type_name = field['type']['ofType']['ofType']['name'] %>
|
17
|
-
<% end %>
|
18
|
-
<% elsif field['type']['ofType'].blank? %>
|
19
|
-
<% @type_path = field['type']['kind'] %>
|
20
|
-
<% @type_name = field['type']['name'] %>
|
21
|
-
<% elsif field['type']['name'] == "Non-Null" || field['type']['ofType']['name'] == "Non-Null" %>
|
22
|
-
<% @type_path = field['type']['ofType']['kind'] %>
|
23
|
-
<% @type_name = field['type']['ofType']['name'] %>
|
24
|
-
<% else %>
|
25
|
-
<% @type_path = field['type']['ofType']['kind'] %>
|
26
|
-
<% @type_name = field['type']['ofType']['name'] %>
|
27
|
-
<% end %>
|
28
|
-
|
29
|
-
<span class="field-name"><%= field['name'] %> (<a href="<%= base_url %>/<%= @type_path.downcase %>/<%= slugify.(@type_name) %>"><code><%= @type_name %></code></a>)</span>
|
10
|
+
<% @type_path, @type_name, @name_slug = format_type.(field) %>
|
11
|
+
|
12
|
+
<span class="field-name"><%= field['name'] %> (<a href="<%= base_url %>/<%= @type_path %>/<%= @name_slug %>"><code><%= @type_name %></code></a>)</span>
|
30
13
|
|
31
14
|
<div class="description-wrapper">
|
32
15
|
<%= field['description'] %>
|
data/lib/graphql-docs/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-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
|
- Garen Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -196,16 +196,16 @@ dependencies:
|
|
196
196
|
name: rake
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- - "
|
199
|
+
- - ">="
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
201
|
+
version: '0'
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- - "
|
206
|
+
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
208
|
+
version: '0'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: rubocop-github
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -328,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
328
328
|
version: '0'
|
329
329
|
requirements: []
|
330
330
|
rubyforge_project:
|
331
|
-
rubygems_version: 2.
|
331
|
+
rubygems_version: 2.6.12
|
332
332
|
signing_key:
|
333
333
|
specification_version: 4
|
334
334
|
summary: Easily generate beautiful documentation from your GraphQL schema.
|