nexmo-oas-renderer 0.2.2 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ef85a4f776e2b1f85ffd89b8894ccff850c4624bd0003ab3375c98f6241c83e
4
- data.tar.gz: 63b832190838494990ac78c554260f5fe560898a6c9dcef8deb1452cd8526d2a
3
+ metadata.gz: 61ed0dc132ea2e036d74356190d452e7930585ab72c15f06e699f8c23edbb0f6
4
+ data.tar.gz: 5a2d2d38e8b9053b1445f85e31e37f21c0777b62f61cf2a33ae725ff3d7ad2c0
5
5
  SHA512:
6
- metadata.gz: 269f8cf5678c091bed1edc752c4cf87558546090c7c65f8a0a2f3045caffd3312ff23d24e66f1a10244693dc369eaae714ebfe44a556af44f2a6d6ff5c5f91db
7
- data.tar.gz: 59d071880e4fb551817a8c64b0a56a758bcb3241c1c81072df82e411aa23067ff8258e478c35b61691fdeb9c0f3eca501d550eda1da4a8ac799f7e07d4092045
6
+ metadata.gz: 734bfb200fa5eff30b5da856b3ac0809a49687b04cb865dc9dc279dc5f12eebc78d44a0413a83488855eb4169bbd280d3ff559e135d3fdf36fba758744347bac
7
+ data.tar.gz: 25551f90bbb9be46b994994497bb7d3d25bc5c9f3c3754695c25670994d1e52ea040bae927401feec9c386cd3896b880138226581337d388b735c7cd72f2e583
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nexmo-oas-renderer (0.2.2)
4
+ nexmo-oas-renderer (0.3.0)
5
5
  activemodel (~> 5.2)
6
6
  activesupport (~> 5.2)
7
7
  banzai (~> 0.1.2)
@@ -67,6 +67,7 @@ GEM
67
67
  concurrent-ruby (1.1.5)
68
68
  crass (1.0.4)
69
69
  deep_merge (1.2.1)
70
+ diff-lcs (1.3)
70
71
  dotenv (2.7.4)
71
72
  erubi (1.8.0)
72
73
  ffi (1.11.1)
@@ -143,6 +144,19 @@ GEM
143
144
  ffi (~> 1.0)
144
145
  redcarpet (3.4.0)
145
146
  rouge (2.0.7)
147
+ rspec (3.8.0)
148
+ rspec-core (~> 3.8.0)
149
+ rspec-expectations (~> 3.8.0)
150
+ rspec-mocks (~> 3.8.0)
151
+ rspec-core (3.8.2)
152
+ rspec-support (~> 3.8.0)
153
+ rspec-expectations (3.8.4)
154
+ diff-lcs (>= 1.2.0, < 2.0)
155
+ rspec-support (~> 3.8.0)
156
+ rspec-mocks (3.8.1)
157
+ diff-lcs (>= 1.2.0, < 2.0)
158
+ rspec-support (~> 3.8.0)
159
+ rspec-support (3.8.2)
146
160
  sass (3.7.4)
147
161
  sass-listen (~> 4.0.0)
148
162
  sass-listen (4.0.0)
@@ -178,6 +192,7 @@ DEPENDENCIES
178
192
  bundler (~> 2.0)
179
193
  nexmo-oas-renderer!
180
194
  rake (~> 10.0)
195
+ rspec (~> 3.8)
181
196
 
182
197
  BUNDLED WITH
183
- 2.0.1
198
+ 2.0.2
@@ -26,7 +26,6 @@ module Nexmo
26
26
  vonage-business-cloud/user
27
27
  vonage-business-cloud/vgis
28
28
  application.v2
29
- conversion
30
29
  ].freeze
31
30
 
32
31
  def self.match?(definition, code_language = nil)
@@ -0,0 +1,19 @@
1
+ require_relative './response_format'
2
+
3
+ module Nexmo
4
+ module OAS
5
+ module Renderer
6
+ module Presenters
7
+ class Endpoint
8
+ def initialize(endpoint)
9
+ @endpoint = endpoint
10
+ end
11
+
12
+ def formats
13
+ @formats ||= ResponseFormat.new(@endpoint.responses).extract
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,4 +1,6 @@
1
1
  require 'forwardable'
2
+ require_relative './endpoint'
3
+ require_relative './response_format'
2
4
  require_relative './groups'
3
5
  require_relative './versions'
4
6
  require_relative '../services/open_api_definition_resolver'
@@ -23,28 +25,8 @@ module Nexmo
23
25
  @groups = Groups.new(definition)
24
26
  end
25
27
 
26
- def display_initialization?
27
- initialization? && initialization_content && initialization_config
28
- end
29
-
30
- def initialization?
31
- File.file? "#{API.oas_path}/../initialization/#{@definition_name}.md"
32
- end
33
-
34
- def initialization_content
35
- @initialization_content ||= MarkdownPipeline.new.call(
36
- File.read("#{API.oas_path}/../initialization/#{@definition_name}.md")
37
- ) if initialization?
38
- end
39
-
40
- def initialization_config
41
- @initialization_config ||= YAML.safe_load(
42
- File.read("#{API.oas_path}/../initialization/#{@definition_name}.md")
43
- ) if initialization?
44
- end
45
-
46
28
  def errors?
47
- File.exist?("#{API.oas_path}/../errors/#{@definition_name}.md")
29
+ File.exist?("#{API.oas_path}/../errors/#{@definition_name}.md")
48
30
  end
49
31
 
50
32
  def definition_errors
@@ -60,8 +42,17 @@ module Nexmo
60
42
  def auto_expand_responses
61
43
  @expand_responses
62
44
  end
63
- end
64
45
 
46
+ def formats
47
+ @formats ||= ResponseFormat.to_dropdown(endpoints.flat_map(&:formats).uniq)
48
+ end
49
+
50
+ private
51
+
52
+ def endpoints
53
+ @endpoints ||= definition.endpoints.map { |e| Endpoint.new(e) }
54
+ end
55
+ end
65
56
  end
66
57
  end
67
58
  end
@@ -0,0 +1,27 @@
1
+ module Nexmo
2
+ module OAS
3
+ module Renderer
4
+ module Presenters
5
+ class ResponseFormat
6
+ MAPPINGS = {
7
+ 'application/json' => 'JSON',
8
+ 'application/xml' => 'XML',
9
+ 'text/xml' => 'XML',
10
+ }
11
+
12
+ def self.to_dropdown(formats)
13
+ MAPPINGS.slice(*formats)
14
+ end
15
+
16
+ def initialize(responses)
17
+ @responses = responses
18
+ end
19
+
20
+ def extract
21
+ @formats ||= @responses.flat_map(&:formats).uniq
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,7 +1,7 @@
1
1
  module Nexmo
2
2
  module OAS
3
3
  module Renderer
4
- VERSION = "0.2.2"
4
+ VERSION = "0.3.0"
5
5
  end
6
6
  end
7
7
  end
@@ -28,8 +28,8 @@
28
28
  <span class="flag flag--strong">Required</span>
29
29
  <% end %>
30
30
 
31
- <% if @specification.initialization_config && @specification.initialization_config['formats'] %>
32
- <% if @specification.initialization_config['formats'].include? 'text/xml' %>
31
+ <% if @specification.formats.any? %>
32
+ <% if @specification.formats.include?('text/xml') %>
33
33
  <span class="js-format" data-format="text/xml">
34
34
  <% if parameter.is_xml_attribute? %>
35
35
  | <span class="flag">Attribute</span>
@@ -39,19 +39,16 @@
39
39
  </div>
40
40
  <div class="Vlt-col Vlt-col--1of3 Nxd-api__code Nxd-api__code--install">
41
41
 
42
- <% if @specification.display_initialization? %>
42
+ <% if @specification.formats.any? %>
43
43
  <div class="Nxd-api__code__header">
44
- <% if @specification.initialization_config && @specification.initialization_config['formats'] %>
45
- <div class="Vlt-native-dropdown">
46
- <select class="js-format-selector">
47
- <% @specification.initialization_config['formats'].each do |value, name| %>
48
- <option value="<%= value %>"><%= name %></option>
49
- <% end %>
50
- </select>
51
- </div>
52
- <% end %>
44
+ <div class="Vlt-native-dropdown">
45
+ <select class="js-format-selector">
46
+ <% @specification.formats.each do |value, name| %>
47
+ <option value="<%= value %>"><%= name %></option>
48
+ <% end %>
49
+ </select>
50
+ </div>
53
51
  </div>
54
- <%= @specification.initialization_content %>
55
52
  <% end %>
56
53
 
57
54
  <% if @specification.available_versions && @specification.available_versions.count > 1 %>
@@ -46,4 +46,5 @@ Gem::Specification.new do |spec|
46
46
 
47
47
  spec.add_development_dependency "bundler", "~> 2.0"
48
48
  spec.add_development_dependency "rake", "~> 10.0"
49
+ spec.add_development_dependency "rspec", "~> 3.8"
49
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexmo-oas-renderer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabian Rodriguez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-09 00:00:00.000000000 Z
11
+ date: 2019-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: '10.0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rspec
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '3.8'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '3.8'
209
223
  description:
210
224
  email:
211
225
  - fabian.rodriguez@vonage.com
@@ -216,6 +230,7 @@ extra_rdoc_files: []
216
230
  files:
217
231
  - ".env.example"
218
232
  - ".gitignore"
233
+ - ".rspec"
219
234
  - CHANGELOG.md
220
235
  - CONTRIBUTING.md
221
236
  - Gemfile
@@ -279,9 +294,11 @@ files:
279
294
  - lib/nexmo/oas/renderer/models/tutorial.rb
280
295
  - lib/nexmo/oas/renderer/pipelines/markdown_pipeline.rb
281
296
  - lib/nexmo/oas/renderer/presenters/api_specification.rb
297
+ - lib/nexmo/oas/renderer/presenters/endpoint.rb
282
298
  - lib/nexmo/oas/renderer/presenters/groups.rb
283
299
  - lib/nexmo/oas/renderer/presenters/navigation.rb
284
300
  - lib/nexmo/oas/renderer/presenters/open_api_specification.rb
301
+ - lib/nexmo/oas/renderer/presenters/response_format.rb
285
302
  - lib/nexmo/oas/renderer/presenters/versions.rb
286
303
  - lib/nexmo/oas/renderer/public/assets/fonts/Lato-Black.woff
287
304
  - lib/nexmo/oas/renderer/public/assets/fonts/Lato-Black.woff2