jekyll-ramler 0.0.10 → 0.0.12

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: cfbe8616d3768a3cf43814ef7a4f5f53ab0cfde3
4
- data.tar.gz: 50830df613cabba283c4ada094b31ea9c12082e4
3
+ metadata.gz: 5de4b422758205cd5f099f15a65a1e73f060347f
4
+ data.tar.gz: 69481e98d6f6c4877d94d536f3c496362b62493c
5
5
  SHA512:
6
- metadata.gz: 923d4dc2b9889f6b95ff125fd3f3ef39749b891c635ae342831e088df5ff48a5a7f8be199bee0055f1d64a514d13ee014311d35667609fddc3f4fd944cbe55d1
7
- data.tar.gz: db64fe426afaaa661c2f64efe43b109811a1220155224f2fd8ca1e2b8b02317ff4f3f88ab60e17ae1a20e388a942df5fe645825102fcb534cfe2eb6b3f4b93b0
6
+ metadata.gz: 4ba166fd3dd5724ec148bbe053dbdae1d64d8fdf19db8253af9fef9a7fca7d5afcb0b38dac6b773aa0733d24b8022d92ee7c43b1918472938ed9b3cadd9620f7
7
+ data.tar.gz: d74a6090861d19edda05ab1e5cf7fd78e82b114821f3a01832cb4bbda3c80e01c19b364635410597319204e7cd8c1acb2b9bf39bfeb9720044645e50a99fb8e7
@@ -1,75 +1,46 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jekyll-ramler (0.0.9)
4
+ jekyll-ramler (0.0.11)
5
5
  jekyll
6
6
  ruby_deep_clone
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- blankslate (2.1.2.4)
12
- celluloid (0.16.0)
13
- timers (~> 4.0.0)
14
- classifier-reborn (2.0.3)
15
- fast-stemmer (~> 1.0)
16
11
  coderay (1.1.0)
17
- coffee-script (2.3.0)
18
- coffee-script-source
19
- execjs
20
- coffee-script-source (1.9.0)
21
12
  colorator (0.1)
22
13
  diff-lcs (1.2.5)
23
- execjs (2.3.0)
24
14
  fakefs (0.6.5)
25
- fast-stemmer (1.0.2)
26
- ffi (1.9.6)
27
- hitimes (1.2.2)
28
- jekyll (2.5.3)
29
- classifier-reborn (~> 2.0)
15
+ ffi (1.9.10)
16
+ jekyll (3.0.1)
30
17
  colorator (~> 0.1)
31
- jekyll-coffeescript (~> 1.0)
32
- jekyll-gist (~> 1.0)
33
- jekyll-paginate (~> 1.0)
34
18
  jekyll-sass-converter (~> 1.0)
35
19
  jekyll-watch (~> 1.1)
36
20
  kramdown (~> 1.3)
37
- liquid (~> 2.6.1)
21
+ liquid (~> 3.0)
38
22
  mercenary (~> 0.3.3)
39
- pygments.rb (~> 0.6.0)
40
- redcarpet (~> 3.1)
23
+ rouge (~> 1.7)
41
24
  safe_yaml (~> 1.0)
42
- toml (~> 0.1.0)
43
- jekyll-coffeescript (1.0.1)
44
- coffee-script (~> 2.2)
45
- jekyll-gist (1.1.0)
46
- jekyll-paginate (1.1.0)
47
25
  jekyll-sass-converter (1.3.0)
48
26
  sass (~> 3.2)
49
- jekyll-watch (1.2.1)
50
- listen (~> 2.7)
51
- kramdown (1.5.0)
52
- liquid (2.6.2)
53
- listen (2.8.5)
54
- celluloid (>= 0.15.2)
27
+ jekyll-watch (1.3.0)
28
+ listen (~> 3.0)
29
+ kramdown (1.9.0)
30
+ liquid (3.0.6)
31
+ listen (3.0.5)
55
32
  rb-fsevent (>= 0.9.3)
56
33
  rb-inotify (>= 0.9)
57
34
  mercenary (0.3.5)
58
35
  method_source (0.8.2)
59
- parslet (1.5.0)
60
- blankslate (~> 2.0)
61
- posix-spawn (0.3.9)
62
36
  pry (0.10.1)
63
37
  coderay (~> 1.1.0)
64
38
  method_source (~> 0.8.1)
65
39
  slop (~> 3.4)
66
- pygments.rb (0.6.2)
67
- posix-spawn (~> 0.3.6)
68
- yajl-ruby (~> 1.2.0)
69
- rb-fsevent (0.9.4)
40
+ rb-fsevent (0.9.6)
70
41
  rb-inotify (0.9.5)
71
42
  ffi (>= 0.5.0)
72
- redcarpet (3.2.2)
43
+ rouge (1.10.1)
73
44
  rspec (3.2.0)
74
45
  rspec-core (~> 3.2.0)
75
46
  rspec-expectations (~> 3.2.0)
@@ -85,13 +56,8 @@ GEM
85
56
  rspec-support (3.2.1)
86
57
  ruby_deep_clone (0.6.0)
87
58
  safe_yaml (1.0.4)
88
- sass (3.4.11)
59
+ sass (3.4.19)
89
60
  slop (3.6.0)
90
- timers (4.0.1)
91
- hitimes
92
- toml (0.1.2)
93
- parslet (~> 1.5.0)
94
- yajl-ruby (1.2.1)
95
61
 
96
62
  PLATFORMS
97
63
  ruby
@@ -102,3 +68,6 @@ DEPENDENCIES
102
68
  pry
103
69
  rspec
104
70
  rspec-mocks
71
+
72
+ BUNDLED WITH
73
+ 1.10.6
data/README.md CHANGED
@@ -18,6 +18,15 @@ specificed in a RAML file.
18
18
  - Supports Raw and Table based displays of JSON Schema included in your RAMLs
19
19
  - Automatic insertion of inherited JSON Schema (via `$ref` and `allOf`)
20
20
 
21
+ ## Example
22
+
23
+ GovDelivery's developer documentation site, <http://developer.govdelivery.com>,
24
+ is built on jekyll-ramler, [jekyll-code-example-tag](https://github.com/govdelivery/jekyll-code-example-tag),
25
+ and [jekyll-nested-menu-generator](https://github.com/govdelivery/jekyll-nested-menu-generator).
26
+
27
+ For an example of the output generated by jekyll-ramler, please visit
28
+ GovDelivery's TMS API documentation at <http://developer.govdelivery.com/api/tms/>.
29
+
21
30
  ## Installation
22
31
 
23
32
  ### Dependencies
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'jekyll-ramler'
3
- s.version = '0.0.10'
4
- s.date = '2015-02-09'
3
+ s.version = '0.0.12'
4
+ s.date = '2015-11-23'
5
5
  s.authors = ['GovDelivery']
6
6
  s.email = 'support@govdelivery.com'
7
7
  s.homepage = 'https://github.com/govdelivery/jekyll-ramler'
@@ -40,8 +40,8 @@ module Jekyll
40
40
  def transform_md(output)
41
41
  # Use the existing Jekyll Markdown converters
42
42
  md_converters = site.converters.select{|c| c.matches('.md')}
43
- md_converters.reduce(output) do |output, converter|
44
- converter.convert output
43
+ md_converters.reduce(output) do |output_to_convert, converter|
44
+ converter.convert output_to_convert
45
45
  end
46
46
  end
47
47
 
@@ -52,14 +52,14 @@ module Jekyll
52
52
 
53
53
  default = {"values" => {}} if default.nil?
54
54
 
55
- layout = default['values'].fetch('layout', 'default')
55
+ default['values'].fetch('layout', 'default')
56
56
  end
57
57
 
58
58
  end
59
59
 
60
60
  class SecuritySchemePage<GeneratedPage
61
61
  def initialize(site, base, web_root, dir, securityScheme)
62
- super(site, base, web_root, dir, securityScheme, layout=get_layout("#{web_root}resource", site))
62
+ super(site, base, web_root, dir, securityScheme, get_layout("#{web_root}resource", site))
63
63
  end
64
64
  end
65
65
 
@@ -163,10 +163,10 @@ module Jekyll
163
163
  when 'application/json'
164
164
  obj['schema_hash'] = JSON.parse(obj['schema'])
165
165
 
166
- refactor_object = lambda do |obj|
167
- obj['properties'].each do |name, param|
166
+ refactor_object = lambda do |lam_obj|
167
+ lam_obj['properties'].each do |name, param|
168
168
  param['displayName'] = name
169
- param['required'] = true if obj.fetch('required', []).include?(name)
169
+ param['required'] = true if lam_obj.fetch('required', []).include?(name)
170
170
 
171
171
  if param.include?('example') and ['object', 'array'].include?(param['type'])
172
172
  param['example'] = JSON.pretty_generate(JSON.parse(param['example']))
@@ -176,9 +176,9 @@ module Jekyll
176
176
  param['items'] = JSON.pretty_generate(param['items'])
177
177
  end
178
178
 
179
- obj['properties'][name] = param
179
+ lam_obj['properties'][name] = param
180
180
  end
181
- obj
181
+ lam_obj
182
182
  end
183
183
 
184
184
  if obj['schema_hash'].include?('properties')
@@ -248,7 +248,37 @@ module Jekyll
248
248
  @site.pages << DocumentationPage.new(@site, @site.source, @web_root, documentation_dir, documentation)
249
249
  end
250
250
 
251
+ generate_downloadable_descriptors(raml_hash, raml_path)
252
+ end
253
+
254
+ private
255
+ def generate_resource_pages(resources, parent_dir=nil)
256
+
257
+ if parent_dir
258
+ dir = parent_dir
259
+ else
260
+ dir = Jekyll::get_dir('resource', @site.config)
261
+ end
262
+
263
+ resources.each do |resource|
264
+ resource_name = resource["relativeUri"]
265
+ resource_dir = File.join(dir, resource_name)
266
+ @site.pages << ResourcePage.new(@site, @site.source, @web_root, resource_dir, resource, @traits, @securitySchemes)
267
+ generate_resource_pages(resource['resources'], resource_dir) if resource.has_key?('resources')
268
+ end
269
+ end
270
+
271
+ def generate_downloadable_descriptors(raml_hash, raml_path)
251
272
  # Allow users to download descriptor as RAML and JSON, which may be modified since it was read
273
+ raml_hash = DeepClone.clone raml_hash
274
+
275
+ # Get rid of 'title' attribute added to security schemes
276
+ # securitySchemes will be an array of hashes containing one key (Name) value (a hash of properties) pairing
277
+ raml_hash.fetch('securitySchemes', []).each {|el| el.each_value { |scheme| scheme.delete('title') }}
278
+
279
+ # replace "resources" with the associated "relativeUri" of each resource
280
+ fix_resources(raml_hash)
281
+
252
282
  download_basename = @site.config.fetch('ramler_downloadable_descriptor_basenames', {}).fetch(raml_path, 'api')
253
283
  raml_download_filename = download_basename + '.raml'
254
284
  json_download_filename = download_basename + '.json'
@@ -261,24 +291,27 @@ module Jekyll
261
291
  @site.static_files << RawFile.new(@site, @site.source, @web_root, json_download_filename, raml_json)
262
292
  end
263
293
 
264
- private
265
- def generate_resource_pages(resources, parent_dir=nil)
266
-
267
- if parent_dir
268
- dir = parent_dir
269
- else
270
- dir = Jekyll::get_dir('resource', @site.config)
271
- end
272
-
273
- resources.each do |resource|
274
- resource_name = resource["relativeUri"]
275
- resource_dir = File.join(dir, resource_name)
276
- @site.pages << ResourcePage.new(@site, @site.source, @web_root, resource_dir, resource, @traits, @securitySchemes)
277
- if resource.has_key?('resources')
278
- generate_resource_pages(resource['resources'], resource_dir)
279
- end
294
+ def fix_resources(raml_hash)
295
+ # DFS FTW
296
+ raml_hash.fetch('resources', []).each do |resource_hash|
297
+ raml_hash[resource_hash.delete('relativeUri')] = resource_hash
298
+ fix_resources(resource_hash)
299
+ end
280
300
 
301
+ raml_hash.fetch('methods', []).each do |method_hash|
302
+ raml_hash[method_hash.delete('method')] = method_hash
303
+ fix_body(method_hash)
281
304
  end
305
+ raml_hash.delete('methods')
306
+ raml_hash.delete('schema_hash')
307
+ raml_hash.delete('relativeUriPathSegments')
308
+ raml_hash.delete('resources')
309
+ raml_hash
310
+ end
311
+
312
+ def fix_body(method_hash)
313
+ method_hash.fetch('body', {}).each {|content_type, definition| definition.delete('schema_hash')}
314
+ method_hash.fetch('responses', {}).each {|response_code, response_hash| fix_body(response_hash) if response_hash}
282
315
  end
283
316
  end
284
317
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-ramler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - GovDelivery
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-09 00:00:00.000000000 Z
11
+ date: 2015-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ruby_deep_clone
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: "Generates Jekyll pages for overview, security, and \n resource
@@ -45,7 +45,7 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - .travis.yml
48
+ - ".travis.yml"
49
49
  - CHANGELOG
50
50
  - Gemfile
51
51
  - Gemfile.lock
@@ -75,17 +75,17 @@ require_paths:
75
75
  - lib
76
76
  required_ruby_version: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - '>='
78
+ - - ">="
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - '>='
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  requirements: []
87
87
  rubyforge_project:
88
- rubygems_version: 2.0.14
88
+ rubygems_version: 2.4.5
89
89
  signing_key:
90
90
  specification_version: 4
91
91
  summary: Jekyll plugin that generates API documentation pages based on RAML