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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/config/code_languages.yml +9 -0
- data/lib/nexmo_markdown_renderer.rb +1 -0
- data/lib/nexmo_markdown_renderer/filters/code_snippet/install_dependencies.rb +3 -2
- data/lib/nexmo_markdown_renderer/filters/code_snippet/renderable.rb +2 -0
- data/lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb +1 -1
- data/lib/nexmo_markdown_renderer/filters/code_snippets_filter.rb +2 -1
- data/lib/nexmo_markdown_renderer/filters/markdown_filter.rb +3 -1
- data/lib/nexmo_markdown_renderer/filters/utils.rb +2 -2
- data/lib/nexmo_markdown_renderer/models/code_language.rb +6 -2
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/android.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/curl.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/dotnet.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/go.rb +23 -0
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/java.rb +4 -3
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/javascript.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/kotlin.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/objective_c.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/php.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/python.rb +1 -1
- data/lib/nexmo_markdown_renderer/services/code_snippet_renderer/ruby.rb +1 -1
- data/lib/nexmo_markdown_renderer/views/code_snippets/_application_messages_dispatch.html.erb +4 -4
- data/lib/nexmo_markdown_renderer/views/code_snippets/_application_rtc.html.erb +4 -4
- data/lib/nexmo_markdown_renderer/views/code_snippets/_application_voice.html.erb +4 -4
- data/lib/nexmo_markdown_renderer/views/code_snippets/_configure_client.html.erb +5 -5
- data/lib/nexmo_markdown_renderer/views/code_snippets/_dependencies.html.erb +3 -3
- data/lib/nexmo_markdown_renderer/views/code_snippets/_import_dependencies.html.erb +4 -4
- data/lib/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d59b64ddc58b808888fdb2a690af4dfd4b4411dcc52c529d00b27225889977f4
|
4
|
+
data.tar.gz: 5a3108508a6607920f11c60244d126d04a2a060fbc4af246c4e84c50d7a794b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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).
|
data/config/code_languages.yml
CHANGED
@@ -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
|
@@ -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
|
|
@@ -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/
|
6
|
-
# Direct link on GitHub is in form https://github.com/
|
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
|
}
|
@@ -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',
|
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/
|
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 Kotlin < Base
|
5
|
-
def self.dependencies(
|
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
|
}
|
data/lib/nexmo_markdown_renderer/views/code_snippets/_application_messages_dispatch.html.erb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
<div class="Vlt-box Vlt-box--lesspadding Nxd-accordion-emphasis">
|
2
|
-
<
|
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
|
-
</
|
4
|
+
</button>
|
5
5
|
|
6
|
-
<div id="acc<%=id %>"
|
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
|
-
<
|
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
|
-
</
|
4
|
+
</button>
|
5
5
|
|
6
|
-
<div id="acc<%=id %>" class="Vlt-
|
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
|
-
<
|
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
|
-
</
|
4
|
+
</button>
|
5
5
|
|
6
|
-
<div id="acc<%=id %>"
|
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
|
-
|
3
|
-
|
4
|
-
|
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
|
-
|
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
|
-
<
|
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-
|
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
|
-
<
|
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
|
-
</
|
4
|
+
</button>
|
5
5
|
|
6
|
-
<div id="acc<%=id %>"
|
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
|
|
data/lib/version.rb
CHANGED
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.
|
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-
|
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.
|
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.
|