nexmo_markdown_renderer 0.4.1 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/code_languages.yml +9 -0
  4. data/lib/nexmo_markdown_renderer.rb +1 -0
  5. data/lib/nexmo_markdown_renderer/filters/code_snippet/install_dependencies.rb +3 -2
  6. data/lib/nexmo_markdown_renderer/filters/code_snippet/renderable.rb +2 -0
  7. data/lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb +1 -1
  8. data/lib/nexmo_markdown_renderer/filters/code_snippets_filter.rb +2 -1
  9. data/lib/nexmo_markdown_renderer/filters/markdown_filter.rb +3 -1
  10. data/lib/nexmo_markdown_renderer/filters/utils.rb +2 -2
  11. data/lib/nexmo_markdown_renderer/models/code_language.rb +6 -2
  12. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/android.rb +1 -1
  13. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/curl.rb +1 -1
  14. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/dotnet.rb +1 -1
  15. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/go.rb +23 -0
  16. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/java.rb +4 -3
  17. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/javascript.rb +1 -1
  18. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/kotlin.rb +1 -1
  19. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/objective_c.rb +1 -1
  20. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/php.rb +1 -1
  21. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/python.rb +1 -1
  22. data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/ruby.rb +1 -1
  23. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_messages_dispatch.html.erb +4 -4
  24. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_rtc.html.erb +4 -4
  25. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_voice.html.erb +4 -4
  26. data/lib/nexmo_markdown_renderer/views/code_snippets/_configure_client.html.erb +5 -5
  27. data/lib/nexmo_markdown_renderer/views/code_snippets/_dependencies.html.erb +3 -3
  28. data/lib/nexmo_markdown_renderer/views/code_snippets/_import_dependencies.html.erb +4 -4
  29. data/lib/version.rb +1 -1
  30. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f8453119db56f41713832d6a32fe559cd0076cef1f829e161465cb31bd81fb1
4
- data.tar.gz: 5f82937effa52f7587533c3b039ed609c5095829cbec0c1bb8871306f00501c9
3
+ metadata.gz: d59b64ddc58b808888fdb2a690af4dfd4b4411dcc52c529d00b27225889977f4
4
+ data.tar.gz: 5a3108508a6607920f11c60244d126d04a2a060fbc4af246c4e84c50d7a794b1
5
5
  SHA512:
6
- metadata.gz: 8cc17d94d7ef7d83f315747521569ad545601e9165532d94cd8bb08306b7ed4be95b11995ce76038ef51785eea8ef7809c8446fa3b5da8486059dc87a458aaac
7
- data.tar.gz: d22a8f38997cacf2dbdfb00ca34f3beae65ca75f1736ff5db335207da246d7a2513eb6fa89e181964f99589d3f076ffde06f730f95f3ef7694fc22af0d13a336
6
+ metadata.gz: f488c9d8f251a3fad98d2abda3f5b68cdb90b0121781a13dd3c663507c95d6f117d9fe1a0380d3acc261917479064ff99fee30ef43175eb3664db88c57898d11
7
+ data.tar.gz: aed5eba3c7d1424c58e54fe70c2ff7d5d44a8d4b1d2208b2fef0f0fc73393116facf72ee0ec5c289fc07923fe1a9f7e531f2271687cb82b9ef76644117fb4f56
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Nexmo Markdown Renderer
2
2
 
3
- [![Build Status](https://api.travis-ci.org/Nexmo/nexmo-markdown-renderer.svg?branch=master)](https://travis-ci.org/Nexmo/nexmo-markdown-renderer/)
3
+ ![Build Status](https://github.com/Nexmo/nexmo-markdown-renderer/workflows/CI/badge.svg)
4
4
  [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.txt)
5
5
 
6
6
  This gem facilitates the presentation of markdown documents in a Rails app by applying custom filters for tabs, code snippets, icons, indentation and more. It is used in the [Nexmo Developer Platform](https://developer.nexmo.com).
@@ -109,6 +109,15 @@ languages:
109
109
  icon: ios
110
110
  dependencies: []
111
111
 
112
+ go:
113
+ weight: 12
114
+ label: Go
115
+ lexer: go
116
+ icon: curl
117
+ dependencies:
118
+ - 'vonage/vonage-go-sdk'
119
+ run_command: 'go run {filename}'
120
+
112
121
  platforms:
113
122
  ios:
114
123
  languages:
@@ -24,6 +24,7 @@ require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/php'
24
24
  require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/python'
25
25
  require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/ruby'
26
26
  require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/swift'
27
+ require_relative 'nexmo_markdown_renderer/services/code_snippet_renderer/go'
27
28
 
28
29
  require_relative 'nexmo_markdown_renderer/services/doc_finder'
29
30
  require_relative 'nexmo_markdown_renderer/services/doc_finder/doc'
@@ -5,9 +5,10 @@ module Nexmo
5
5
  class InstallDependencies
6
6
  include Renderable
7
7
 
8
- def initialize(config, snippet)
8
+ def initialize(config, version, snippet)
9
9
  @config = config
10
10
  @snippet = snippet
11
+ @version = version
11
12
  end
12
13
 
13
14
  def partial
@@ -28,7 +29,7 @@ module Nexmo
28
29
  def render
29
30
  return '' unless @config
30
31
 
31
- deps = renderer.dependencies(@config)
32
+ deps = renderer.dependencies(@config, @version)
32
33
  ERB.new(partial).result(binding)
33
34
  end
34
35
  end
@@ -43,6 +43,8 @@ module Nexmo
43
43
  Nexmo::Markdown::CodeSnippetRenderer::ObjectiveC
44
44
  when 'swift'
45
45
  Nexmo::Markdown::CodeSnippetRenderer::Swift
46
+ when 'go'
47
+ Nexmo::Markdown::CodeSnippetRenderer::Go
46
48
  else
47
49
  raise "Unknown language: #{normalized_language}"
48
50
  end
@@ -27,7 +27,7 @@ module Nexmo
27
27
  end
28
28
 
29
29
  def install_dependencies
30
- @install_dependencies ||= ::Nexmo::Markdown::Filters::CodeSnippet::InstallDependencies.new(@config['dependencies'], @binding).render
30
+ @install_dependencies ||= ::Nexmo::Markdown::Filters::CodeSnippet::InstallDependencies.new(@config['dependencies'], @config['version'], @binding).render
31
31
  end
32
32
 
33
33
  def import_dependencies
@@ -116,7 +116,8 @@ module Nexmo
116
116
  content['weight'] ||= defaults.weight
117
117
  content['run_command'] ||= defaults.run_command
118
118
  content['unindent'] = defaults.unindent || false
119
-
119
+ content['version'] ||= defaults.version
120
+
120
121
  # If we don't have a file_name in config, use the one in the repo
121
122
  content['file_name'] ||= File.basename(content['code']['source'])
122
123
 
@@ -63,7 +63,9 @@ module Nexmo
63
63
  '<figure>' \
64
64
  '<img src="'\
65
65
  "#{link}"\
66
- '" alt="#{alt_text}">' \
66
+ '" alt="'\
67
+ "#{_alt_text}"\
68
+ '">' \
67
69
  '</figure>'
68
70
  end
69
71
 
@@ -2,8 +2,8 @@ module Nexmo
2
2
  module Markdown
3
3
  class Utils
4
4
  def self.generate_source_url(code)
5
- # Source example: .repos/nexmo/nexmo-java-code-snippets/ExampleClass.java
6
- # Direct link on GitHub is in form https://github.com/nexmo/nexmo-java-code-snippets/blob/master/ExampleClass.java
5
+ # Source example: .repos/vonage/vonage-java-code-snippets/ExampleClass.java
6
+ # Direct link on GitHub is in form https://github.com/vonage/vonage-java-code-snippets/blob/master/ExampleClass.java
7
7
  start_section = 'https://github.com'
8
8
 
9
9
  # Insert "blob/master" and strip ".repos"
@@ -3,8 +3,12 @@ module Nexmo
3
3
  class CodeLanguage
4
4
  include ActiveModel::Model
5
5
  attr_accessor :key, :label, :type, :dependencies, :unindent, :icon, :run_command
6
- attr_writer :weight, :linkable, :languages, :lexer
7
-
6
+ attr_writer :weight, :linkable, :languages, :lexer, :version
7
+
8
+ def version
9
+ @version || nil
10
+ end
11
+
8
12
  def weight
9
13
  @weight || 999
10
14
  end
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Android < Base
5
- def self.dependencies(_deps)
5
+ def self.dependencies(_deps, _version)
6
6
  {
7
7
  'text' => 'See <a href="https://developer.nexmo.com/use-cases/client-sdk-android-add-sdk-to-your-app">How to Add the Nexmo Client SDK to your Android App</a>',
8
8
  }
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Curl < Base
5
- def self.dependencies(deps)
5
+ def self.dependencies(deps, _version)
6
6
  dependencies = deps.map(&:upcase)
7
7
  raise t('.only_permitted_dependency') unless dependencies.include?('JWT')
8
8
  {
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Dotnet < Base
5
- def self.dependencies(deps)
5
+ def self.dependencies(deps, _version)
6
6
  { 'code' => "Install-Package #{deps.join(' ')}" }
7
7
  end
8
8
 
@@ -0,0 +1,23 @@
1
+ module Nexmo
2
+ module Markdown
3
+ module CodeSnippetRenderer
4
+ class Go < Base
5
+ def self.dependencies(deps, _version)
6
+ { 'code' => "go get #{deps.join(' ')}" }
7
+ end
8
+
9
+ def self.run_command(command, _filename, _file_path)
10
+ ::I18n.t('services.code_snippet_renderer.run_command', command: command)
11
+ end
12
+
13
+ def self.create_instructions(filename)
14
+ ::I18n.t('services.code_snippet_renderer.create_instructions', filename: filename)
15
+ end
16
+
17
+ def self.add_instructions(_filename)
18
+ ::I18n.t('services.code_snippet_renderer.add_instructions_to_code')
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -2,16 +2,17 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Java < Base
5
- def self.dependencies(deps)
5
+ def self.dependencies(deps, version)
6
+ raise "'version' not provided for Java snippet" unless version
6
7
  {
7
8
  'text' => ::I18n.t('services.code_snippet_renderer.add_instructions_to_file', file: 'build.gradle'),
8
- 'code' => deps.map { |d| "compile '#{d.gsub('@latest', '5.2.1')}'" }.join('<br />'),
9
+ 'code' => deps.map { |d| "compile '#{d.gsub('@latest', version)}'" }.join('<br />'),
9
10
  'type' => 'groovy',
10
11
  }
11
12
  end
12
13
 
13
14
  def self.run_command(_command, filename, file_path)
14
- package = file_path.gsub('.repos/nexmo/nexmo-java-code-snippets/src/main/java/', '').tr('/', '.').gsub(filename, '')
15
+ package = file_path.gsub('.repos/vonage/vonage-java-code-snippets/src/main/java/', '').tr('/', '.').gsub(filename, '')
15
16
  file = filename.gsub('.java', '')
16
17
  main = "#{package}#{filename.gsub('.java', '')}"
17
18
  chomped_package = package.chomp('.')
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Javascript < Base
5
- def self.dependencies(deps)
5
+ def self.dependencies(deps, _version)
6
6
  { 'code' => "npm install #{deps.join(' ')}" }
7
7
  end
8
8
 
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Kotlin < Base
5
- def self.dependencies(_deps)
5
+ def self.dependencies(deps, _version)
6
6
  {
7
7
  'text' => 'See <a href="https://developer.nexmo.com/use-cases/client-sdk-android-add-sdk-to-your-app">How to Add the Nexmo Client SDK to your Android App</a>',
8
8
  }
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class ObjectiveC < Base
5
- def self.dependencies(_deps)
5
+ def self.dependencies(_deps, _version)
6
6
  {
7
7
  'text' => 'See <a href="/client-sdk/setup/add-sdk-to-your-app/ios">How to Add the Nexmo Client SDK to your iOS App</a>',
8
8
  }
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Php < Base
5
- def self.dependencies(deps)
5
+ def self.dependencies(deps, _version)
6
6
  { 'code' => "composer require #{deps.join(' ')}" }
7
7
  end
8
8
 
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Python < Base
5
- def self.dependencies(deps)
5
+ def self.dependencies(deps, _version)
6
6
  { 'code' => "pip install #{deps.join(' ')}" }
7
7
  end
8
8
 
@@ -2,7 +2,7 @@ module Nexmo
2
2
  module Markdown
3
3
  module CodeSnippetRenderer
4
4
  class Ruby < Base
5
- def self.dependencies(deps)
5
+ def self.dependencies(deps, _version)
6
6
  { 'code' => "gem install #{deps.join(' ')}" }
7
7
  end
8
8
 
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= app['use_existing'] ? ::I18n.t('.code_snippets.use_your_app') : ::I18n.t('.code_snippets.create_an_app') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <%= ::I18n.t('.code_snippets.application_messages_dispatch.no_application_html') %>
8
8
  </div>
9
9
  </div>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= ::I18n.t('.code_snippets.create_an_app') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <p><%= ::I18n.t('.code_snippets.nexmo_application_contains_html') %></p>
8
8
  <h4><%= ::I18n.t('.code_snippets.install_the_cli') %></h4>
9
9
  <pre class="Vlt-prism--dark dependencies command-line Vlt-prism--copy-disabled language-bash" data-prompt='$'><code>npm install -g nexmo-cli</code></pre>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= app['use_existing'] ? ::I18n.t('.code_snippets.use_your_app') : ::I18n.t('.code_snippets.create_an_app') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <% if app['use_existing'] %>
8
8
  <p><%= app['use_existing'] %></p>
9
9
  <% else %>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
- <%= ::I18n.t('.code_snippets.configure_client.initialize_dependencies') %>
4
- </h5>
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
+ <%= ::I18n.t('.code_snippets.configure_client.initialize_dependencies') %>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <%= create_instructions %>
8
8
  <div class="copy-wrapper">
9
9
 
@@ -1,7 +1,7 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0"><%= title %></h5>
1
+ <div class="Vlt-box Vlt-box--lesspadding Vlt-accordion Nxd-accordion-emphasis">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0"><%= title %></button>
3
3
 
4
- <div id="acc<%= id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
4
+ <div id="acc<%= id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
5
5
  <p><%=deps['text']%></p>
6
6
  <% if deps['code'] %>
7
7
  <pre class="Vlt-prism--dark language-<%= deps['type'] || 'bash' %> dependencies command-line Vlt-prism--copy-disabled" data-prompt='$'><code><%=deps['code']%></code></pre>
@@ -1,9 +1,9 @@
1
- <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
2
- <h5 class="Vlt-js-accordion__trigger Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
1
+ <div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis Vlt-accordion">
2
+ <button class="Vlt-accordion__trigger" data-accordion="acc<%= id %>" tabindex="0">
3
3
  <%= ::I18n.t('.code_snippets.configure_client.import_dependencies') %>
4
- </h5>
4
+ </button>
5
5
 
6
- <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
6
+ <div id="acc<%=id %>" class="Vlt-accordion__content Vlt-accordion__content--noborder">
7
7
  <%= create_instructions %>
8
8
  <div class="copy-wrapper">
9
9
 
@@ -1,7 +1,7 @@
1
1
  # :nocov:
2
2
  module Nexmo
3
3
  module Markdown
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.6'
5
5
  end
6
6
  end
7
7
  # :nocov:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexmo_markdown_renderer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nexmo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-20 00:00:00.000000000 Z
11
+ date: 2020-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: banzai
@@ -297,6 +297,7 @@ files:
297
297
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/base.rb
298
298
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/curl.rb
299
299
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/dotnet.rb
300
+ - lib/nexmo_markdown_renderer/services/code_snippet_renderer/go.rb
300
301
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/java.rb
301
302
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/javascript.rb
302
303
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/kotlin.rb
@@ -344,7 +345,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
344
345
  - !ruby/object:Gem::Version
345
346
  version: '0'
346
347
  requirements: []
347
- rubygems_version: 3.0.3
348
+ rubygems_version: 3.1.4
348
349
  signing_key:
349
350
  specification_version: 4
350
351
  summary: Middleware to render Markdown Documents in Nexmo Developer Platform.