station 0.1.6 → 0.2.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: 18b2059806500f4e64f3197f6edc5aaf801de09622370feab3bcd94100276d52
4
- data.tar.gz: 7cb339acec125d1acd865b0c29a9d95c591338ec9bb87bde7a23b0d213ab46fa
3
+ metadata.gz: 8b1de1eb12c8a2d0c7bbe1b958ada3d21d7241c0485e2bca6bb3ae7084341553
4
+ data.tar.gz: a49fd7cf17a9bd6fdf3d3b1824e6566c1d245f69944da8414b35261c985d36d3
5
5
  SHA512:
6
- metadata.gz: b641acb88bc5d274173a397add4a702ed962464106dd125852380dd60be81cd3166f9c218c1f8cc6663ef37330a025e4850773764c0ad006dd858e51d6bb29a2
7
- data.tar.gz: ad693520e91bdd06e4e6aa9a01f5fbd2637ef6dc513abfa1b9a97ce9e6d99c8b073dbf8ce9c10975d12b530106505b3082a85c1f93164b05db2d2b5650b12d91
6
+ metadata.gz: e28267ce08cf0c42ec34386441524b123e1d19c0c9bf545758f45faf0e2c3d101ae74a3a38d85b3265af292bbed7275cf76a67e960ab4bc0e816154710a38da0
7
+ data.tar.gz: eaa5c8c814c1d7be88e548d53512e4cfeee18c7a158f68509f0242899efb519b69cd1351bda5d86cf9f380df403cc32abf1144803f925ffc595b42ab121bc045
@@ -0,0 +1,33 @@
1
+ class ChangelogsController < ApplicationController
2
+ def index
3
+ return if ENV['CHANGELOGS_PATH'].blank?
4
+
5
+ @titles = Dir.glob("#{ENV['CHANGELOGS_PATH']}/**")
6
+ .select { |e| File.directory? e }
7
+ .map do |folder_path|
8
+ {
9
+ title: File.basename(folder_path),
10
+ files: Dir.glob("#{folder_path}/*.md").map do |md_file|
11
+ {
12
+ file_title: File.basename(md_file, '.md'),
13
+ frontmatter: File.read(md_file).match(/\A(---.+?---)/mo) ? YAML.safe_load(File.read(md_file)) : {},
14
+ }
15
+ end,
16
+ }
17
+ end
18
+ end
19
+
20
+ def show
21
+ page_title = params[:name]
22
+ folder_name = params[:folder]
23
+
24
+ if File.exist?("#{ENV['CHANGELOGS_PATH']}/#{folder_name}/#{page_title}.md")
25
+ page = Dir.glob("#{ENV['CHANGELOGS_PATH']}/#{folder_name}/#{page_title}.md").first
26
+ document = File.read(page).gsub(/\A(---.+?---)/mo, '')
27
+ else
28
+ document = "<h3>Sorry, this file doesn't exist!</h3><code><strong>/_changelogs/#{folder_name}/#{page_title}.md</strong></code>"
29
+ end
30
+
31
+ @content = Nexmo::Markdown::Renderer.new({}).call(document)
32
+ end
33
+ end
@@ -0,0 +1,13 @@
1
+ module ChangelogsHelper
2
+ def build_volta_icon(element)
3
+ return '' unless element
4
+
5
+ if element.scan(/vonage-(\w+)-sdk/).present?
6
+ element.scan(/vonage-(\w+)-sdk/).flatten.first.downcase
7
+ elsif element.scan(/(\w+) SDK/).present?
8
+ element.scan(/(\w+) SDK/).flatten.first.downcase
9
+ elsif element.scan(/(\w+)-cli/).present?
10
+ element.scan(/(\w+)-cli/).flatten.first.downcase
11
+ end
12
+ end
13
+ end
@@ -36,10 +36,17 @@ class Blog::Blogpost
36
36
 
37
37
  default_not_found_page(path) unless File.exist?(path)
38
38
 
39
- document = File.read(path).gsub('/content/blog/') do |match| # gsub Netlify img urls
39
+ # gsub Netlify - img urls to S3 Bucket
40
+ document = File.read(path).gsub('/content/blog/') do |match|
40
41
  "#{Blog::Blogpost::CLOUDFRONT_BLOG_URL}blogposts/#{match.gsub('/content/blog/', '')}"
41
42
  end
42
43
 
44
+ # gsub Netlify - embedded YOUTUBE Video
45
+ document = document.gsub(%r{<youtube id="(\w+)"></youtube>}) do |match|
46
+ youtube_id = match[/(?<=").*(?=")/]
47
+ "<center class='video'><br><iframe width='448' height='252' src='https://www.youtube-nocookie.com/embed/#{youtube_id}' frameborder='0' allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture' allowfullscreen></iframe><br><br></center>"
48
+ end
49
+
43
50
  blogpost = new(BlogpostParser.build_show_with_locale(path, locale))
44
51
  blogpost.content = Nexmo::Markdown::Renderer.new({}).call(document)
45
52
 
@@ -57,7 +64,6 @@ class Blog::Blogpost
57
64
  end
58
65
 
59
66
  url = Addressable::URI.parse(@thumbnail)
60
-
61
67
  Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
62
68
  if http.head(url.request_uri)['Content-Type'].start_with? 'image'
63
69
  @thumbnail
@@ -24,7 +24,9 @@
24
24
  <% @categories_with_blogposts.each do |category| %>
25
25
 
26
26
  <div class="header-separator hr--tall Vlt-text-separator Vlt-text-separator--big">
27
- <span>< <%= category.plural.upcase %> /></span>
27
+ <a href="<%= blog_category_path(category.slug)%>">
28
+ <span>< <%= category.plural.upcase %> /></span>
29
+ </a>
28
30
  </div>
29
31
 
30
32
  <div class="my-3col-grid">
@@ -0,0 +1,33 @@
1
+ <h1>Changelogs</h1>
2
+
3
+ <% @titles.each do |title| %>
4
+ <div class="header-separator hr--tall Vlt-text-separator Vlt-text-separator--big">
5
+ <span>< <%= title[:title].upcase %> /></span>
6
+ </div>
7
+
8
+ <div class="my-3col-grid">
9
+ <% title[:files].each do |file| %>
10
+ <%= link_to changelog_path(folder: title[:title], name: file[:file_title]), class: 'Vlt-card Vlt-card--clickable' do%>
11
+
12
+ <div class="Vlt-card__header">
13
+
14
+ <svg class="Vlt-icon Vlt-grey">
15
+ <use xlink:href="/symbol/volta-brand-icons.svg#Brand-icon-<%= build_volta_icon(file[:file_title]) %>-color" />
16
+ </svg>
17
+
18
+ <h3><%= file[:file_title] %></h3>
19
+
20
+ <% if ["version", "release"].all? {|k| file[:frontmatter].key?(k)} %>
21
+ <p style="position: relative; top: 20px;">
22
+ <code><%= "v#{file[:frontmatter]["version"]}" %></code> released on <%= "#{file[:frontmatter]["release"]}" %>
23
+ </p>
24
+ <% end %>
25
+
26
+ </div>
27
+
28
+ <% end %>
29
+ <% end %>
30
+ </div>
31
+
32
+
33
+ <% end %>
@@ -0,0 +1 @@
1
+ <div class="raw_blopost_content"><%= raw @content %></div>
@@ -32,11 +32,8 @@
32
32
  <b><%= t(".#{header.sign_in_text}") %></b>
33
33
  </a>
34
34
 
35
- <a href=<%= header.sign_up_path %> target="_blank" rel="noopener" class="Vlt-btn--white Vlt-btn--app Vlt-btn--outline Vlt-btn--small" id="signup" data-ab="try_button_v2"><b>
36
- <% ab_test(:try_button_v2, header.sign_up_text.map { |s| ["{ #{t(".#{s}")} }", "< #{t(".#{s}")} />"] }.flatten) do |s| %>
37
- <%= s %>
38
- <% end %>
39
- </b>
35
+ <a href=<%= header.sign_up_path %> target="_blank" rel="noopener" class="Vlt-btn--white Vlt-btn--app Vlt-btn--outline Vlt-btn--small" id="signup" data-ab="try_button_v2">
36
+ <b>< Sign-up for free /></b>
40
37
  </a>
41
38
  </nav>
42
39
  </header>
@@ -70,6 +67,9 @@
70
67
  <div class="Vlt-topmenu__item">
71
68
  <a href="/extend"><p><b class="Vlt-white">Integrations</b></p></a>
72
69
  </div>
70
+ <div class="Vlt-topmenu__item">
71
+ <a href="/changelogs"><p><b class="Vlt-white">Changelogs</b></p></a>
72
+ </div>
73
73
  </div>
74
74
  </div>
75
75
  </li>
@@ -99,6 +99,10 @@
99
99
  </div>
100
100
  </div>
101
101
  </li>
102
+
103
+ <li class="Vlt-tabs__link">
104
+ <a href="/blog"><p><b class="Vlt-white">Blog</b></p></a>
105
+ </li>
102
106
  </ul>
103
107
 
104
108
  <svg class="Vlt-icon Vlt-icon--large Vlt-grey Vlt-S-only Adp-header__hamburger">
@@ -9,7 +9,7 @@
9
9
 
10
10
  <br><br>
11
11
 
12
- Your data will be treated in accordance with our <a href="https://www.nexmo.com/privacy-policy">Privacy Policy</a>, which sets out
12
+ Your data will be treated in accordance with our <a href="https://www.vonage.com/privacy-policy">Privacy Policy</a>, which sets out
13
13
  the rights you have in respect of your data.
14
14
  </p>
15
15
  </div>
@@ -108,6 +108,9 @@ Rails.application.routes.draw do
108
108
  get '/tags/:slug', to: 'tags#show', as: 'tag'
109
109
  end
110
110
 
111
+ get '/changelogs', to: 'changelogs#index'
112
+ get '/changelogs/:folder/:name', to: 'changelogs#show', as: 'changelog'
113
+
111
114
  get '*unmatched_route', to: 'application#not_found'
112
115
 
113
116
  root 'static#landing'
@@ -1 +1 @@
1
- {"files":{"manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js":{"logical_path":"manifest.js","mtime":"2022-03-17T17:02:44+00:00","size":2,"digest":"75a11da44c802486bc6f65640aa48a730f0f684c5c07a42ba3cd1735eb3fb070","integrity":"sha256-daEdpEyAJIa8b2VkCqSKcw8PaExcB6Qro80XNes/sHA="},"application-aa88b3c7bd34ec529f43849541752fda7c9c202aa9fff905be578ef88d103b46.js":{"logical_path":"application.js","mtime":"2022-03-17T17:02:44+00:00","size":3172,"digest":"67f1fd16f949c2794341a44cf839e5436bbef74436e043ead39890d1c3b2e583","integrity":"sha256-Z/H9FvlJwnlDQaRM+DnlQ2u+90Q24EPq05iQ0cOy5YM="},"application-e3c324ace3db5c0bf10139460f7f1efb017f04bbeb729bd8d34b308de0852c20.css":{"logical_path":"application.css","mtime":"2022-03-17T17:02:44+00:00","size":16653,"digest":"7bba29977bdaa394d9d33788c5c59026cebf41f7290009d61391a0a645e2272b","integrity":"sha256-e7opl3vao5TZ0zeIxcWQJs6/QfcpAAnWE5GgpkXiJys="}},"assets":{"manifest.js":"manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js","application.js":"application-aa88b3c7bd34ec529f43849541752fda7c9c202aa9fff905be578ef88d103b46.js","application.css":"application-e3c324ace3db5c0bf10139460f7f1efb017f04bbeb729bd8d34b308de0852c20.css"}}
1
+ {"files":{"manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js":{"logical_path":"manifest.js","mtime":"2022-04-06T14:31:50+00:00","size":2,"digest":"75a11da44c802486bc6f65640aa48a730f0f684c5c07a42ba3cd1735eb3fb070","integrity":"sha256-daEdpEyAJIa8b2VkCqSKcw8PaExcB6Qro80XNes/sHA="},"application-aa88b3c7bd34ec529f43849541752fda7c9c202aa9fff905be578ef88d103b46.js":{"logical_path":"application.js","mtime":"2022-04-06T14:31:50+00:00","size":3172,"digest":"67f1fd16f949c2794341a44cf839e5436bbef74436e043ead39890d1c3b2e583","integrity":"sha256-Z/H9FvlJwnlDQaRM+DnlQ2u+90Q24EPq05iQ0cOy5YM="},"application-e3c324ace3db5c0bf10139460f7f1efb017f04bbeb729bd8d34b308de0852c20.css":{"logical_path":"application.css","mtime":"2022-04-06T14:31:50+00:00","size":16653,"digest":"7bba29977bdaa394d9d33788c5c59026cebf41f7290009d61391a0a645e2272b","integrity":"sha256-e7opl3vao5TZ0zeIxcWQJs6/QfcpAAnWE5GgpkXiJys="}},"assets":{"manifest.js":"manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js","application.js":"application-aa88b3c7bd34ec529f43849541752fda7c9c202aa9fff905be578ef88d103b46.js","application.css":"application-e3c324ace3db5c0bf10139460f7f1efb017f04bbeb729bd8d34b308de0852c20.css"}}
@@ -1,3 +1,3 @@
1
1
  module NexmoDeveloper
2
- VERSION = '0.1.6'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: station
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vonage DevRel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-17 00:00:00.000000000 Z
11
+ date: 2022-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeadmin
@@ -731,7 +731,7 @@ files:
731
731
  - "./lib/nexmo_developer/public/android-chrome-512x512.png"
732
732
  - "./lib/nexmo_developer/public/apple-touch-icon-precomposed.png"
733
733
  - "./lib/nexmo_developer/public/apple-touch-icon.png"
734
- - "./lib/nexmo_developer/public/assets/.sprockets-manifest-34443b12ffa582bac7386426c54b9386.json"
734
+ - "./lib/nexmo_developer/public/assets/.sprockets-manifest-cff214b66591bfa22956a065f82dde71.json"
735
735
  - "./lib/nexmo_developer/public/assets/application-aa88b3c7bd34ec529f43849541752fda7c9c202aa9fff905be578ef88d103b46.js"
736
736
  - "./lib/nexmo_developer/public/assets/application-aa88b3c7bd34ec529f43849541752fda7c9c202aa9fff905be578ef88d103b46.js.gz"
737
737
  - "./lib/nexmo_developer/public/assets/application-e3c324ace3db5c0bf10139460f7f1efb017f04bbeb729bd8d34b308de0852c20.css"
@@ -1160,6 +1160,7 @@ files:
1160
1160
  - lib/nexmo_developer/app/controllers/blog/main_controller.rb
1161
1161
  - lib/nexmo_developer/app/controllers/blog/tags_controller.rb
1162
1162
  - lib/nexmo_developer/app/controllers/careers_controller.rb
1163
+ - lib/nexmo_developer/app/controllers/changelogs_controller.rb
1163
1164
  - lib/nexmo_developer/app/controllers/concerns/.keep
1164
1165
  - lib/nexmo_developer/app/controllers/dashboard_controller.rb
1165
1166
  - lib/nexmo_developer/app/controllers/extend_controller.rb
@@ -1178,6 +1179,7 @@ files:
1178
1179
  - lib/nexmo_developer/app/extensions/nokogiri/html/document.rb
1179
1180
  - lib/nexmo_developer/app/helpers/application_helper.rb
1180
1181
  - lib/nexmo_developer/app/helpers/blog_helper.rb
1182
+ - lib/nexmo_developer/app/helpers/changelogs_helper.rb
1181
1183
  - lib/nexmo_developer/app/helpers/date_range_helper.rb
1182
1184
  - lib/nexmo_developer/app/helpers/navigation_helper.rb
1183
1185
  - lib/nexmo_developer/app/helpers/parameter_values_helper.rb
@@ -1282,6 +1284,8 @@ files:
1282
1284
  - lib/nexmo_developer/app/views/blog/categories/show.html.erb
1283
1285
  - lib/nexmo_developer/app/views/blog/tags/show.html.erb
1284
1286
  - lib/nexmo_developer/app/views/careers/index.html.erb
1287
+ - lib/nexmo_developer/app/views/changelogs/index.html.erb
1288
+ - lib/nexmo_developer/app/views/changelogs/show.html.erb
1285
1289
  - lib/nexmo_developer/app/views/code_languages/_icon.html.erb
1286
1290
  - lib/nexmo_developer/app/views/contribute/administration/page-links.md
1287
1291
  - lib/nexmo_developer/app/views/contribute/code-snippets/how-to-update-code-snippets.md