nexmo_markdown_renderer 0.2.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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