acos_jekyll_openapi_helper 1.2.0 → 1.4.5
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/bin/start.rb +3 -3
- data/lib/acos_jekyll_openapi.rb +86 -33
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e14565e520d910b4fb71d19d57b32315fdf2ea1592a932fe98c12c8c0e0362fe
|
4
|
+
data.tar.gz: 87e9f0168e68274c41387e1148fa9e60371ff10e15300ca05fde77f2534b5a16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2b31b4d1e8c4fb37cccaa3924fb1a15341b39bed0d71c9996cb4396f6f151071e188f0d56635d6ddb708669ff2f59aa00e36d8176c3ffcd8686aa06122fc0e8
|
7
|
+
data.tar.gz: e094bbbcef3b62db93109913245944d0940dc8e8689f5ea3a3a20d52fa5d14d8a269a2169ac5086ab1b98e13fe59c668b04b9ee363d1b3ea9191f1783f5d82f7
|
data/bin/start.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'acos_jekyll_openapi'
|
4
4
|
AcosOpenApiHelper.generate_pages_from_data(
|
5
|
-
"/mnt/c/
|
6
|
-
"/mnt/c/
|
7
|
-
"/mnt/c/
|
5
|
+
"/mnt/c/Kode/github/Acos.Integration.Documentation/_data/swagger",
|
6
|
+
"/mnt/c/Kode/github/Acos.Integration.Documentation",
|
7
|
+
"/mnt/c/Kode/github/Acos.Integration.Documentation/pages/swagger"
|
8
8
|
)
|
data/lib/acos_jekyll_openapi.rb
CHANGED
@@ -46,47 +46,51 @@ class AcosOpenApiHelper::PageEngine
|
|
46
46
|
def initialize(data, basePath, output_path, swaggerfile)
|
47
47
|
@data = data
|
48
48
|
@output_path = output_path
|
49
|
-
#@sidebar = sidebar
|
50
49
|
@swaggerfile = swaggerfile
|
51
50
|
@basePath = basePath
|
52
51
|
end
|
53
52
|
|
54
53
|
def generate
|
55
|
-
puts "
|
54
|
+
puts "Generating pages..."
|
56
55
|
cnt = 0
|
57
|
-
puts "Open API version %s" % @data['openapi']
|
58
|
-
docTitle = @data["info"]["title"]
|
59
|
-
|
56
|
+
puts "Open API version %s in .json file" % (@data.key?("openapi") ? @data['openapi'] : @data['swagger'])
|
57
|
+
docTitle = (@data["info"]["title"])
|
58
|
+
_components = @data.key?("components") ? "components" :"definitions"
|
59
|
+
docFile = docTitle.gsub(/\+|\s+|{|}|\//, "_").downcase
|
60
|
+
puts "Document title : %s" % docTitle
|
61
|
+
sidebar = "%s_sidebar" % docFile
|
60
62
|
menu = AcosOpenApiHelper::SidebarMenu.new()
|
63
|
+
|
64
|
+
if File.exists?("%s/%s_index.md" % [@output_path, docFile] )
|
65
|
+
_indexMenu = AcosOpenApiHelper::MenuItem.new("Overview %s " % docTitle, "%s_index" % docFile)
|
66
|
+
menu.add(_indexMenu)
|
67
|
+
cnt = cnt + 1
|
68
|
+
else
|
69
|
+
puts "No index file found for %s" % docFile
|
70
|
+
end
|
71
|
+
|
61
72
|
@data['paths'].each do |path|
|
62
|
-
#puts "Prop: %s at counter %s" % [path, cnt]
|
63
73
|
_path = path[0] #path of swagger method
|
64
74
|
_methods = @data['paths'][_path]
|
65
|
-
#
|
66
|
-
|
67
|
-
puts "Path: %s" % [_path]
|
68
|
-
#Should not need this. yet...
|
69
|
-
# _methods.each do | _method |
|
70
|
-
# puts "Method: %s " % _method
|
71
|
-
# _md = _methods[_method]
|
72
|
-
# puts "Method description: %s" % [_md]
|
73
|
-
# end
|
74
|
-
#@prop = @data['paths'][cnt]
|
75
|
-
#puts "Found property %s" [@prop]
|
76
|
-
#puts "Constants: %s, %s, %s, %s" % [_path, @output_path, @swaggerfile, @sidebar]
|
77
|
-
writer = AcosOpenApiHelper::PageCreator.new(_path, @basePath, @output_path, @swaggerfile, sidebar)
|
75
|
+
#(path, basePath, output_path, swaggerfile, sidebar, docFile, component)
|
76
|
+
writer = AcosOpenApiHelper::PageCreator.new(_path, @basePath, @output_path, @swaggerfile, sidebar, docFile, _components)
|
78
77
|
writer.write
|
79
|
-
_permalink =AcosOpenApiHelper::PermalinkGenerator.create(_path, @swaggerfile)
|
78
|
+
_permalink = AcosOpenApiHelper::PermalinkGenerator.create(_path, @swaggerfile)
|
80
79
|
_menuItem = AcosOpenApiHelper::MenuItem.new(_path, _permalink)
|
81
80
|
menu.add(_menuItem)
|
82
81
|
cnt = cnt + 1
|
83
|
-
|
84
82
|
end
|
83
|
+
# Adding component page for models
|
84
|
+
#createComponents(basePath, title, sidebar, swaggerfile, docFile)
|
85
|
+
AcosOpenApiHelper::PageCreator.createComponents(@basePath, docTitle, sidebar, @swaggerfile, docFile, _components)
|
86
|
+
_componentMenu = AcosOpenApiHelper::MenuItem.new("%s Models" % docTitle, "%s_components" % docFile)
|
87
|
+
menu.add(_componentMenu)
|
88
|
+
cnt = cnt + 1
|
89
|
+
|
85
90
|
puts "Done generating %s pages..." % cnt
|
86
91
|
puts "Writing menu"
|
87
92
|
menu.write("%s/_data/sidebars" % @basePath, sidebar, docTitle)
|
88
93
|
end
|
89
|
-
|
90
94
|
end
|
91
95
|
|
92
96
|
class AcosOpenApiHelper::SidebarMenu
|
@@ -109,7 +113,11 @@ class AcosOpenApiHelper::SidebarMenu
|
|
109
113
|
end
|
110
114
|
|
111
115
|
def write (output_path, name, menuTitle)
|
116
|
+
#no spaces in filename ofr sidebar.yml
|
117
|
+
name = name.gsub(/\s+|{|}|\/|\+/, "_").downcase
|
118
|
+
puts "Name of file %s" % [name]
|
112
119
|
_standardLines = [
|
120
|
+
"# THIS PAGE IS GENERATED. ANY CHANGES TO PAGE WILL POTENTIALLY BE OVERWRITTEN.",
|
113
121
|
"# This is your sidebar TOC. The sidebar code loops through sections here and provides the appropriate formatting.",
|
114
122
|
"entries:",
|
115
123
|
"- title: sidebar",
|
@@ -123,15 +131,15 @@ class AcosOpenApiHelper::SidebarMenu
|
|
123
131
|
]
|
124
132
|
puts "Writing menu with length: %s" % @@entries.length
|
125
133
|
@@entries.each do | item |
|
126
|
-
puts "Entry: %s, url: %s" % [item.title, item.url]
|
134
|
+
#puts "Entry: %s, url: %s" % [item.title, item.url]
|
127
135
|
_standardLines << " - title: %s" % item.title
|
128
136
|
_standardLines << " url: /%s.html" % item.url
|
129
137
|
_standardLines << " output: web, pdf"
|
130
138
|
end
|
131
139
|
|
132
|
-
_standardLines << " - title: %s" % "Models"
|
133
|
-
_standardLines << " url: /%s.html" % "userapi_components"
|
134
|
-
_standardLines << " output: web, pdf"
|
140
|
+
# _standardLines << " - title: %s" % "Models"
|
141
|
+
# _standardLines << " url: /%s.html" % "userapi_components"
|
142
|
+
# _standardLines << " output: web, pdf"
|
135
143
|
# File.open("%s/%s/%s/%s.%s" % [@basePath, "pages", "swagger", @permalink, "md"], "w+") do |f|
|
136
144
|
# f.puts(@lines)
|
137
145
|
# end
|
@@ -139,6 +147,8 @@ class AcosOpenApiHelper::SidebarMenu
|
|
139
147
|
File.open("%s/%s.%s" % [output_path, name, "yml"], "w+") do | f |
|
140
148
|
f.puts(_standardLines)
|
141
149
|
end
|
150
|
+
|
151
|
+
@@entries.clear
|
142
152
|
end
|
143
153
|
|
144
154
|
end
|
@@ -161,7 +171,7 @@ class AcosOpenApiHelper::PermalinkGenerator
|
|
161
171
|
def self.create(path, swaggerfile)
|
162
172
|
@swaggerfileBase = File.basename(swaggerfile, ".*")
|
163
173
|
@permalinkBase = "%s_%s" % [@swaggerfileBase, path]
|
164
|
-
@permalink = @permalinkBase.gsub(
|
174
|
+
@permalink = @permalinkBase.gsub(/\+|\s+|{|}|\//, "_").downcase
|
165
175
|
return @permalink
|
166
176
|
end
|
167
177
|
|
@@ -171,38 +181,81 @@ class AcosOpenApiHelper::PermalinkGenerator
|
|
171
181
|
|
172
182
|
end
|
173
183
|
|
184
|
+
class AcosOpenApiHelper::FileNameGenerator
|
185
|
+
def self.create(path, docFile)
|
186
|
+
@docFileBase = "%s_%s" % [docFile, path]
|
187
|
+
@docFileName = @docFileBase.gsub(/\+|\s+|{|}|\//, "_").downcase
|
188
|
+
return @docFileName
|
189
|
+
end
|
190
|
+
|
191
|
+
def fileName
|
192
|
+
@docFileName
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
174
196
|
class AcosOpenApiHelper::PageCreator
|
175
|
-
def initialize(path, basePath, output_path, swaggerfile, sidebar)
|
197
|
+
def initialize(path, basePath, output_path, swaggerfile, sidebar, docFile, component)
|
176
198
|
# puts "Initialize intput %s, %s, %s, %s" % [path, output_path, swaggerfile, sidebar]
|
177
199
|
@path = path
|
178
200
|
@output_path = output_path
|
179
201
|
@swaggerfile = swaggerfile
|
180
202
|
@sidebar = sidebar
|
203
|
+
@docFile = AcosOpenApiHelper::FileNameGenerator.create(@path, docFile)
|
181
204
|
@basePath = basePath
|
182
205
|
@swaggerfileBase = File.basename(@swaggerfile, ".*")
|
183
206
|
@permalink = AcosOpenApiHelper::PermalinkGenerator.create(path, @swaggerfile)
|
184
207
|
@lines = [
|
185
208
|
"---",
|
186
|
-
"
|
209
|
+
"# THIS PAGE IS GENERATED. ANY CHANGES TO PAGE WILL POTENTIALLY BE OVERWRITTEN.",
|
210
|
+
"title: %s" % path,
|
187
211
|
"keywords: json, openapi",
|
188
212
|
"# summary: test med json fil",
|
189
|
-
"sidebars: ",
|
190
|
-
" - name: %s" % @sidebar,
|
213
|
+
" #sidebars: ",
|
214
|
+
" # - name: %s" % @sidebar,
|
191
215
|
"permalink: %s.html" % @permalink,
|
192
216
|
"folder: swagger",
|
193
217
|
"toc: false",
|
194
218
|
"swaggerfile: %s" % @swaggerfileBase,
|
195
219
|
"swaggerpath: paths",
|
196
220
|
"swaggerkey: %s" % @path,
|
221
|
+
"swagger_components: %s" % component,
|
222
|
+
"components_file: %s" % docFile,
|
197
223
|
"---",
|
198
224
|
"{\% include swagger_json/get_path.md \%}"
|
199
225
|
]
|
200
226
|
end
|
201
227
|
|
202
228
|
def write
|
203
|
-
File.open("%s/%s/%s/%s.%s" % [@basePath, "pages", "swagger", @
|
229
|
+
File.open("%s/%s/%s/%s.%s" % [@basePath, "pages", "swagger", @docFile, "md"], "w+") do |f|
|
204
230
|
f.puts(@lines)
|
205
231
|
end
|
206
232
|
end
|
207
|
-
end
|
208
233
|
|
234
|
+
def self.createComponents(basePath, title, sidebar, swaggerfile, docFile, componentsKey)
|
235
|
+
swaggerfileName = File.basename(swaggerfile, ".*")
|
236
|
+
contentLines = [
|
237
|
+
"---",
|
238
|
+
"title: %s Models" % title,
|
239
|
+
"keyword: json, openapi, models, components",
|
240
|
+
"sidebars:",
|
241
|
+
" - name: %s" % sidebar,
|
242
|
+
"folder: swagger",
|
243
|
+
"toc: false",
|
244
|
+
"swaggerfile: %s" % swaggerfileName,
|
245
|
+
"swaggerkey: %s" % componentsKey,
|
246
|
+
"permalink: %s_components.html" % docFile,
|
247
|
+
"link: %s_components.html" % docFile,
|
248
|
+
"---",
|
249
|
+
"{% include swagger_json/get_components.md attribute='page.swaggerkey' %}",
|
250
|
+
"",
|
251
|
+
"{% include links.html %}",
|
252
|
+
]
|
253
|
+
AcosOpenApiHelper::PageCreator.writeFile("%s/pages/swagger/%s_components.md" % [basePath, docFile], contentLines)
|
254
|
+
end
|
255
|
+
|
256
|
+
def self.writeFile(fullPath, contentLines )
|
257
|
+
File.open("%s" % fullPath, "w+") do | f |
|
258
|
+
f.puts(contentLines)
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acos_jekyll_openapi_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Acos AS
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0'
|
53
53
|
requirements: []
|
54
|
-
rubygems_version: 3.
|
54
|
+
rubygems_version: 3.1.2
|
55
55
|
signing_key:
|
56
56
|
specification_version: 4
|
57
57
|
summary: Open API json file helper
|