nexmo_markdown_renderer 0.2.1 → 0.4.1

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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/config/locales/en.yml +1 -0
  3. data/lib/nexmo_markdown_renderer.rb +24 -1
  4. data/lib/nexmo_markdown_renderer/filters/block_escape_filter.rb +3 -3
  5. data/lib/nexmo_markdown_renderer/filters/code_filter.rb +17 -17
  6. data/lib/nexmo_markdown_renderer/filters/code_snippet/binding.rb +41 -0
  7. data/lib/nexmo_markdown_renderer/filters/code_snippet/create_application.rb +61 -0
  8. data/lib/nexmo_markdown_renderer/filters/code_snippet/import_dependencies.rb +38 -0
  9. data/lib/nexmo_markdown_renderer/filters/code_snippet/initialize_dependencies.rb +41 -0
  10. data/lib/nexmo_markdown_renderer/filters/code_snippet/install_dependencies.rb +38 -0
  11. data/lib/nexmo_markdown_renderer/filters/code_snippet/instructions.rb +46 -0
  12. data/lib/nexmo_markdown_renderer/filters/code_snippet/renderable.rb +62 -0
  13. data/lib/nexmo_markdown_renderer/filters/code_snippet/run.rb +29 -0
  14. data/lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb +22 -159
  15. data/lib/nexmo_markdown_renderer/filters/concerns/prism_code_snippet.rb +22 -0
  16. data/lib/nexmo_markdown_renderer/filters/markdown_filter.rb +13 -10
  17. data/lib/nexmo_markdown_renderer/filters/partial_filter.rb +1 -1
  18. data/lib/nexmo_markdown_renderer/filters/screenshot_filter.rb +1 -1
  19. data/lib/nexmo_markdown_renderer/filters/tab_filter.rb +73 -70
  20. data/lib/nexmo_markdown_renderer/filters/utils.rb +50 -0
  21. data/lib/nexmo_markdown_renderer/models/code_language.rb +1 -1
  22. data/lib/nexmo_markdown_renderer/models/tutorial.rb +116 -72
  23. data/lib/nexmo_markdown_renderer/models/tutorial/file_loader.rb +32 -0
  24. data/lib/nexmo_markdown_renderer/models/tutorial/metadata.rb +57 -0
  25. data/lib/nexmo_markdown_renderer/models/tutorial/prerequisite.rb +35 -0
  26. data/lib/nexmo_markdown_renderer/models/tutorial/task.rb +49 -0
  27. data/lib/nexmo_markdown_renderer/models/use_case.rb +3 -16
  28. data/lib/nexmo_markdown_renderer/services/doc_finder.rb +7 -2
  29. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_rtc.html.erb +1 -1
  30. data/lib/nexmo_markdown_renderer/views/code_snippets/_application_voice.html.erb +1 -1
  31. data/lib/nexmo_markdown_renderer/views/code_snippets/_configure_client.html.erb +2 -2
  32. data/lib/nexmo_markdown_renderer/views/code_snippets/_import_dependencies.html.erb +18 -0
  33. data/lib/version.rb +1 -1
  34. metadata +17 -2
@@ -9,7 +9,7 @@ module Nexmo
9
9
  end
10
10
 
11
11
  def relative_path
12
- document_path.relative_path_from(self.class.origin).sub("#{::I18n.locale}/", '').to_s.gsub('.md', '')
12
+ document_path.relative_path_from(self.class.origin).sub(/\w{2}\//, '').to_s.gsub('.md', '')
13
13
  end
14
14
 
15
15
  def path
@@ -20,23 +20,12 @@ module Nexmo
20
20
 
21
21
  def subtitle
22
22
  normalized_products = products.map do |product|
23
- normalise_product_title(product)
23
+ Product.normalize_title(product)
24
24
  end
25
25
 
26
26
  normalized_products.sort.to_sentence
27
27
  end
28
28
 
29
- def normalise_product_title(product)
30
- return 'SMS' if product == 'messaging/sms'
31
- return 'Voice' if product == 'voice/voice-api'
32
- return 'Number Insight' if product == 'number-insight'
33
- return 'Messages' if product == 'messages'
34
- return 'Dispatch' if product == 'dispatch'
35
- return 'Client SDK' if product == 'client-sdk'
36
- return 'Subaccounts' if product == 'account/subaccounts'
37
- product.camelcase
38
- end
39
-
40
29
  def self.by_product(product, use_cases = [])
41
30
  use_cases = all if use_cases.empty?
42
31
  use_cases.select do |use_case|
@@ -63,7 +52,7 @@ module Nexmo
63
52
  document = File.read(document_path)
64
53
  frontmatter = YAML.safe_load(document)
65
54
 
66
- Nexmo::Markdown::UseCase.new({
55
+ new({
67
56
  title: frontmatter['title'],
68
57
  description: frontmatter['description'],
69
58
  external_link: frontmatter['external_link'],
@@ -75,8 +64,6 @@ module Nexmo
75
64
  end
76
65
  end
77
66
 
78
- private
79
-
80
67
  private_class_method def self.files
81
68
  Dir.glob("#{origin}/**/*.md")
82
69
  end
@@ -91,9 +91,9 @@ module Nexmo
91
91
 
92
92
  def self.load_english
93
93
  paths.each do |path|
94
- if path.starts_with?('app/views')
94
+ if defined?(Rails) && path.starts_with?("#{Rails.root}/app/views")
95
95
  Dir["#{path}/**/*.*"].each do |file|
96
- dictionary[file][::I18n.default_locale.to_s] = ::I18n.default_locale.to_s
96
+ dictionary[file.gsub("#{Rails.root}/", '')][::I18n.default_locale.to_s] = ::I18n.default_locale.to_s
97
97
  end
98
98
  else
99
99
  path_with_locale = "#{path}/#{::I18n.default_locale}"
@@ -120,6 +120,11 @@ module Nexmo
120
120
  def self.strip_root_and_language(root:, language:, document:)
121
121
  document.sub(%r{#{root}\/}, '').sub(%r{#{language}\/}, '')
122
122
  end
123
+
124
+ def self.code_languages_for_tutorial(path:)
125
+ key = strip_root_and_language(root: '/', document: path, language: ::I18n.default_locale)
126
+ dictionary.keys.select { |k| k.include?(key) }
127
+ end
123
128
  end
124
129
  end
125
130
  end
@@ -15,7 +15,7 @@
15
15
  <p><%= ::I18n.t('.code_snippets.nexmo_needs_to_connect_html') %></p>
16
16
  <% end %>
17
17
 
18
- <pre class="Vlt-prism--dark dependencies command-line Vlt-prism--copy-disabled language-bash" data-prompt='$'><code>nexmo app:create "<%=app['name'] %>" <%=app['answer_url'] %> <%=app['event_url'] %> --keyfile=private.key --type=rtc</code></pre>
18
+ <pre class="Vlt-prism--dark dependencies command-line Vlt-prism--copy-disabled language-bash" data-prompt='$'><code>nexmo app:create "<%= name %>" <%= answer_url %> <%= event_url %> --keyfile=private.key --type=rtc</code></pre>
19
19
 
20
20
  <h4><%= ::I18n.t('.code_snippets.application_rtc.use_your_existing_app') %></h4>
21
21
 
@@ -18,7 +18,7 @@
18
18
  <p><%= ::I18n.t('.code_snippets.nexmo_needs_to_connect_html') %></p>
19
19
  <% end %>
20
20
 
21
- <pre class="Vlt-prism--dark dependencies command-line Vlt-prism--copy-disabled language-bash" data-prompt='$'><code>nexmo app:create "<%=app['name'] %>" <%=app['answer_url'] %> <%=app['event_url'] %> --keyfile private.key</code></pre>
21
+ <pre class="Vlt-prism--dark dependencies command-line Vlt-prism--copy-disabled language-bash" data-prompt='$'><code>nexmo app:create "<%= name %>" <%= answer_url %> <%= event_url %> --keyfile private.key</code></pre>
22
22
  <% end %>
23
23
  </div>
24
24
  </div>
@@ -7,13 +7,13 @@
7
7
  <%= create_instructions %>
8
8
  <div class="copy-wrapper">
9
9
 
10
- <div class="copy-button" data-lang="<%= lang %>" data-block="<%= config['source'] %>" data-section="configure">
10
+ <div class="copy-button" data-lang="<%= lang %>" data-block="<%= source %>" data-section="configure">
11
11
  <%= octicon "clippy", :class => 'top left' %> <span>Copy to Clipboard</span>
12
12
  </div>
13
13
  <pre class="Vlt-prism--dark language-<%= lexer.tag %> Vlt-prism--copy-disabled"><code><%= highlighted_client_source %></code></pre>
14
14
  </div>
15
15
 
16
- <p><a data-section="configure" data-lang="<%= lang %>" data-block="<%= config['source'] %>" href="<%= client_url %>">View full source</a></p>
16
+ <p><a data-section="configure" data-lang="<%= lang %>" data-block="<%= source %>" href="<%= client_url %>">View full source</a></p>
17
17
 
18
18
  </div>
19
19
  </div>
@@ -0,0 +1,18 @@
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.import_dependencies') %>
4
+ </h5>
5
+
6
+ <div id="acc<%=id %>" class="Vlt-js-accordion__content Vlt-accordion__content Vlt-accordion__content--noborder">
7
+ <%= create_instructions %>
8
+ <div class="copy-wrapper">
9
+
10
+ <div class="copy-button" data-lang="<%= lang %>" data-block="<%= config['source'] %>" data-section="configure">
11
+ <%= octicon "clippy", :class => 'top left' %> <span>Copy to Clipboard</span>
12
+ </div>
13
+ <pre class="Vlt-prism--dark language-<%= lexer.tag %> Vlt-prism--copy-disabled"><code><%= highlighted_import_source %></code></pre>
14
+ </div>
15
+
16
+ <p><a data-section="configure" data-lang="<%= lang %>" data-block="<%= config['source'] %>" href="<%= client_url %>">View full source</a></p>
17
+ </div>
18
+ </div>
@@ -1,7 +1,7 @@
1
1
  # :nocov:
2
2
  module Nexmo
3
3
  module Markdown
4
- VERSION = '0.2.1'
4
+ VERSION = '0.4.1'
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.2.1
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nexmo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-24 00:00:00.000000000 Z
11
+ date: 2020-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: banzai
@@ -240,12 +240,21 @@ files:
240
240
  - lib/nexmo_markdown_renderer/filters/block_escape_filter.rb
241
241
  - lib/nexmo_markdown_renderer/filters/break_filter.rb
242
242
  - lib/nexmo_markdown_renderer/filters/code_filter.rb
243
+ - lib/nexmo_markdown_renderer/filters/code_snippet/binding.rb
244
+ - lib/nexmo_markdown_renderer/filters/code_snippet/create_application.rb
245
+ - lib/nexmo_markdown_renderer/filters/code_snippet/import_dependencies.rb
246
+ - lib/nexmo_markdown_renderer/filters/code_snippet/initialize_dependencies.rb
247
+ - lib/nexmo_markdown_renderer/filters/code_snippet/install_dependencies.rb
248
+ - lib/nexmo_markdown_renderer/filters/code_snippet/instructions.rb
249
+ - lib/nexmo_markdown_renderer/filters/code_snippet/renderable.rb
250
+ - lib/nexmo_markdown_renderer/filters/code_snippet/run.rb
243
251
  - lib/nexmo_markdown_renderer/filters/code_snippet_filter.rb
244
252
  - lib/nexmo_markdown_renderer/filters/code_snippet_list_filter.rb
245
253
  - lib/nexmo_markdown_renderer/filters/code_snippets_filter.rb
246
254
  - lib/nexmo_markdown_renderer/filters/collapsible_filter.rb
247
255
  - lib/nexmo_markdown_renderer/filters/columns_filter.rb
248
256
  - lib/nexmo_markdown_renderer/filters/concept_list_filter.rb
257
+ - lib/nexmo_markdown_renderer/filters/concerns/prism_code_snippet.rb
249
258
  - lib/nexmo_markdown_renderer/filters/dynamic_content_filter.rb
250
259
  - lib/nexmo_markdown_renderer/filters/external_link_filter.rb
251
260
  - lib/nexmo_markdown_renderer/filters/frontmatter_filter.rb
@@ -270,6 +279,7 @@ files:
270
279
  - lib/nexmo_markdown_renderer/filters/tooltip_filter.rb
271
280
  - lib/nexmo_markdown_renderer/filters/unfreeze_filter.rb
272
281
  - lib/nexmo_markdown_renderer/filters/use_case_list_filter.rb
282
+ - lib/nexmo_markdown_renderer/filters/utils.rb
273
283
  - lib/nexmo_markdown_renderer/initializers/doc_finder.rb
274
284
  - lib/nexmo_markdown_renderer/initializers/i18n.rb
275
285
  - lib/nexmo_markdown_renderer/initializers/redcarpet.rb
@@ -278,6 +288,10 @@ files:
278
288
  - lib/nexmo_markdown_renderer/models/code_snippet.rb
279
289
  - lib/nexmo_markdown_renderer/models/concept.rb
280
290
  - lib/nexmo_markdown_renderer/models/tutorial.rb
291
+ - lib/nexmo_markdown_renderer/models/tutorial/file_loader.rb
292
+ - lib/nexmo_markdown_renderer/models/tutorial/metadata.rb
293
+ - lib/nexmo_markdown_renderer/models/tutorial/prerequisite.rb
294
+ - lib/nexmo_markdown_renderer/models/tutorial/task.rb
281
295
  - lib/nexmo_markdown_renderer/models/use_case.rb
282
296
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/android.rb
283
297
  - lib/nexmo_markdown_renderer/services/code_snippet_renderer/base.rb
@@ -299,6 +313,7 @@ files:
299
313
  - lib/nexmo_markdown_renderer/views/code_snippets/_code_only.html.erb
300
314
  - lib/nexmo_markdown_renderer/views/code_snippets/_configure_client.html.erb
301
315
  - lib/nexmo_markdown_renderer/views/code_snippets/_dependencies.html.erb
316
+ - lib/nexmo_markdown_renderer/views/code_snippets/_import_dependencies.html.erb
302
317
  - lib/nexmo_markdown_renderer/views/code_snippets/_write_code.html.erb
303
318
  - lib/nexmo_markdown_renderer/views/code_snippets/list/plain.html.erb
304
319
  - lib/nexmo_markdown_renderer/views/concepts/list/plain.html.erb