station 0.0.0 → 0.0.93

Sign up to get free protection for your applications and to get access to all the features.
Files changed (619) hide show
  1. checksums.yaml +7 -0
  2. data/.buildpacks +1 -0
  3. data/.editorconfig +23 -0
  4. data/.env.example +33 -0
  5. data/.gitignore +37 -22
  6. data/CODE_OF_CONDUCT.md +46 -0
  7. data/CONTRIBUTING.md +46 -0
  8. data/Dockerfile +68 -0
  9. data/Gemfile +2 -0
  10. data/Gemfile.lock +14 -0
  11. data/LICENSE.md +400 -20
  12. data/LICENSE.txt +9 -0
  13. data/Procfile +1 -0
  14. data/README.md +54 -20
  15. data/app.json +24 -0
  16. data/babel.config.js +74 -0
  17. data/bin/nexmo-developer +112 -0
  18. data/docs/Getting-Started.md +39 -0
  19. data/docs/How-To-Use.md +272 -0
  20. data/docs/_config.yml +5 -0
  21. data/docs/index.md +46 -0
  22. data/lib/nexmo_developer/.disallowed_words +2 -0
  23. data/lib/nexmo_developer/.dockerignore +1 -0
  24. data/lib/nexmo_developer/.eslintrc.js +6 -0
  25. data/lib/nexmo_developer/.nvmrc +1 -0
  26. data/lib/nexmo_developer/.postcssrc.yml +4 -0
  27. data/lib/nexmo_developer/.pre-commit-config.yaml +8 -0
  28. data/lib/nexmo_developer/.rspec +3 -0
  29. data/lib/nexmo_developer/.rubocop.yml +273 -0
  30. data/lib/nexmo_developer/.ruby-version +1 -0
  31. data/lib/nexmo_developer/Dockerfile +28 -0
  32. data/lib/nexmo_developer/Gemfile +192 -0
  33. data/lib/nexmo_developer/Gemfile.lock +630 -0
  34. data/lib/nexmo_developer/Guardfile +109 -0
  35. data/lib/nexmo_developer/Procfile +2 -0
  36. data/lib/nexmo_developer/Rakefile +6 -0
  37. data/lib/nexmo_developer/Runbook.md +69 -0
  38. data/lib/nexmo_developer/app/admin/active_admin_feedback_author.rb +23 -0
  39. data/lib/nexmo_developer/app/admin/active_admin_redirect.rb +22 -0
  40. data/lib/nexmo_developer/app/admin/active_admin_session.rb +34 -0
  41. data/lib/nexmo_developer/app/admin/admin_building_block_event.rb +31 -0
  42. data/lib/nexmo_developer/app/admin/admin_event.rb +40 -0
  43. data/lib/nexmo_developer/app/admin/admin_feedback_feedback.rb +54 -0
  44. data/lib/nexmo_developer/app/admin/admin_feedback_resource.rb +42 -0
  45. data/lib/nexmo_developer/app/admin/admin_user.rb +37 -0
  46. data/lib/nexmo_developer/app/assets/config/manifest.js +5 -0
  47. data/lib/nexmo_developer/app/assets/fonts/Lato-Black.woff +0 -0
  48. data/lib/nexmo_developer/app/assets/fonts/Lato-Black.woff2 +0 -0
  49. data/lib/nexmo_developer/app/assets/fonts/Lato-Regular.woff +0 -0
  50. data/lib/nexmo_developer/app/assets/fonts/Lato-Regular.woff2 +0 -0
  51. data/lib/nexmo_developer/app/assets/fonts/Lato-Semibold.woff +0 -0
  52. data/lib/nexmo_developer/app/assets/fonts/Lato-Semibold.woff2 +0 -0
  53. data/lib/nexmo_developer/app/assets/fonts/icomoon.eot +0 -0
  54. data/lib/nexmo_developer/app/assets/fonts/icomoon.json +1257 -0
  55. data/lib/nexmo_developer/app/assets/fonts/icomoon.svg +55 -0
  56. data/lib/nexmo_developer/app/assets/fonts/icomoon.ttf +0 -0
  57. data/lib/nexmo_developer/app/assets/fonts/icomoon.woff +0 -0
  58. data/lib/nexmo_developer/app/assets/fonts/nexmo-developer.json +36483 -0
  59. data/lib/nexmo_developer/app/assets/images/.keep +0 -0
  60. data/lib/nexmo_developer/app/assets/images/logo@3x.png +0 -0
  61. data/lib/nexmo_developer/app/assets/images/logo_vonage.png +0 -0
  62. data/lib/nexmo_developer/app/assets/images/nexmo-developer-logo.svg +25 -0
  63. data/lib/nexmo_developer/app/assets/images/nexmo-logo-collapsed.svg +10 -0
  64. data/lib/nexmo_developer/app/assets/images/nexmo-vonage-white.svg +79 -0
  65. data/lib/nexmo_developer/app/assets/images/posters/chatapp.jpg +0 -0
  66. data/lib/nexmo_developer/app/assets/images/posters/chatapp_small.png +0 -0
  67. data/lib/nexmo_developer/app/assets/images/posters/nexmo.jpg +0 -0
  68. data/lib/nexmo_developer/app/assets/images/posters/numberinsight.jpg +0 -0
  69. data/lib/nexmo_developer/app/assets/images/posters/numberinsight_small.png +0 -0
  70. data/lib/nexmo_developer/app/assets/images/posters/sms.jpg +0 -0
  71. data/lib/nexmo_developer/app/assets/images/posters/sms_small.png +0 -0
  72. data/lib/nexmo_developer/app/assets/images/posters/verify.jpg +0 -0
  73. data/lib/nexmo_developer/app/assets/images/posters/verify_small.png +0 -0
  74. data/lib/nexmo_developer/app/assets/images/posters/voice.jpg +0 -0
  75. data/lib/nexmo_developer/app/assets/images/posters/voice_small.png +0 -0
  76. data/lib/nexmo_developer/app/assets/images/select-dropdown.png +0 -0
  77. data/lib/nexmo_developer/app/assets/images/slack.svg +33 -0
  78. data/lib/nexmo_developer/app/assets/images/themes/ea/topography.png +0 -0
  79. data/lib/nexmo_developer/app/assets/javascripts/active_admin.js.coffee +1 -0
  80. data/lib/nexmo_developer/app/assets/javascripts/application.js +19 -0
  81. data/lib/nexmo_developer/app/assets/javascripts/stats.js +14 -0
  82. data/lib/nexmo_developer/app/assets/regex/matching_chars.rb +1 -0
  83. data/lib/nexmo_developer/app/assets/regex/sequence_diagram_regex.rb +1 -0
  84. data/lib/nexmo_developer/app/assets/regex/stats_regex.rb +1 -0
  85. data/lib/nexmo_developer/app/assets/regex/webfont_regex.rb +1 -0
  86. data/lib/nexmo_developer/app/assets/stylesheets/active_admin.scss +17 -0
  87. data/lib/nexmo_developer/app/assets/stylesheets/application.css +1 -0
  88. data/lib/nexmo_developer/app/channels/application_cable/channel.rb +4 -0
  89. data/lib/nexmo_developer/app/channels/application_cable/connection.rb +4 -0
  90. data/lib/nexmo_developer/app/constraints/documentation_constraint.rb +25 -0
  91. data/lib/nexmo_developer/app/constraints/landing_page_constraint.rb +18 -0
  92. data/lib/nexmo_developer/app/constraints/locale_constraint.rb +17 -0
  93. data/lib/nexmo_developer/app/constraints/open_api_constraint.rb +49 -0
  94. data/lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb +45 -0
  95. data/lib/nexmo_developer/app/controllers/admin_api/feedback_controller.rb +11 -0
  96. data/lib/nexmo_developer/app/controllers/admin_api_controller.rb +17 -0
  97. data/lib/nexmo_developer/app/controllers/api_controller.rb +33 -0
  98. data/lib/nexmo_developer/app/controllers/api_errors_controller.rb +82 -0
  99. data/lib/nexmo_developer/app/controllers/application_controller.rb +93 -0
  100. data/lib/nexmo_developer/app/controllers/careers_controller.rb +9 -0
  101. data/lib/nexmo_developer/app/controllers/concerns/.keep +0 -0
  102. data/lib/nexmo_developer/app/controllers/dashboard_controller.rb +216 -0
  103. data/lib/nexmo_developer/app/controllers/extend_controller.rb +45 -0
  104. data/lib/nexmo_developer/app/controllers/feedback/feedbacks_controller.rb +85 -0
  105. data/lib/nexmo_developer/app/controllers/feeds_controller.rb +20 -0
  106. data/lib/nexmo_developer/app/controllers/jobs_controller.rb +64 -0
  107. data/lib/nexmo_developer/app/controllers/markdown_controller.rb +160 -0
  108. data/lib/nexmo_developer/app/controllers/search_controller.rb +35 -0
  109. data/lib/nexmo_developer/app/controllers/sessions_controller.rb +12 -0
  110. data/lib/nexmo_developer/app/controllers/slack_controller.rb +61 -0
  111. data/lib/nexmo_developer/app/controllers/static_controller.rb +195 -0
  112. data/lib/nexmo_developer/app/controllers/tutorial_controller.rb +113 -0
  113. data/lib/nexmo_developer/app/controllers/usage/ab_result_controller.rb +10 -0
  114. data/lib/nexmo_developer/app/controllers/usage/code_snippet_controller.rb +19 -0
  115. data/lib/nexmo_developer/app/controllers/use_case_controller.rb +65 -0
  116. data/lib/nexmo_developer/app/extensions/nokogiri/html/document.rb +23 -0
  117. data/lib/nexmo_developer/app/helpers/application_helper.rb +66 -0
  118. data/lib/nexmo_developer/app/helpers/date_range_helper.rb +9 -0
  119. data/lib/nexmo_developer/app/helpers/navigation_helper.rb +56 -0
  120. data/lib/nexmo_developer/app/helpers/parameter_values_helper.rb +5 -0
  121. data/lib/nexmo_developer/app/helpers/video_helper.rb +20 -0
  122. data/lib/nexmo_developer/app/jobs/application_job.rb +2 -0
  123. data/lib/nexmo_developer/app/mailers/application_mailer.rb +4 -0
  124. data/lib/nexmo_developer/app/middleware/nexmo_developer/building_block_redirect.rb +18 -0
  125. data/lib/nexmo_developer/app/middleware/nexmo_developer/visitor_id.rb +13 -0
  126. data/lib/nexmo_developer/app/models/api_error.rb +31 -0
  127. data/lib/nexmo_developer/app/models/application_record.rb +3 -0
  128. data/lib/nexmo_developer/app/models/concerns/.keep +0 -0
  129. data/lib/nexmo_developer/app/models/concerns/publishable.rb +13 -0
  130. data/lib/nexmo_developer/app/models/event.rb +38 -0
  131. data/lib/nexmo_developer/app/models/feedback.rb +5 -0
  132. data/lib/nexmo_developer/app/models/feedback/author.rb +5 -0
  133. data/lib/nexmo_developer/app/models/feedback/config.rb +16 -0
  134. data/lib/nexmo_developer/app/models/feedback/feedback.rb +34 -0
  135. data/lib/nexmo_developer/app/models/feedback/resource.rb +45 -0
  136. data/lib/nexmo_developer/app/models/product.rb +22 -0
  137. data/lib/nexmo_developer/app/models/redirect.rb +2 -0
  138. data/lib/nexmo_developer/app/models/session.rb +9 -0
  139. data/lib/nexmo_developer/app/models/tutorial.rb +189 -0
  140. data/lib/nexmo_developer/app/models/tutorial/file_loader.rb +28 -0
  141. data/lib/nexmo_developer/app/models/tutorial/metadata.rb +54 -0
  142. data/lib/nexmo_developer/app/models/tutorial/prerequisite.rb +31 -0
  143. data/lib/nexmo_developer/app/models/tutorial/task.rb +45 -0
  144. data/lib/nexmo_developer/app/models/usage.rb +5 -0
  145. data/lib/nexmo_developer/app/models/usage/code_snippet_event.rb +7 -0
  146. data/lib/nexmo_developer/app/models/user.rb +14 -0
  147. data/lib/nexmo_developer/app/presenters/card.rb +20 -0
  148. data/lib/nexmo_developer/app/presenters/career.rb +40 -0
  149. data/lib/nexmo_developer/app/presenters/feedback_presenter.rb +31 -0
  150. data/lib/nexmo_developer/app/presenters/footer.rb +88 -0
  151. data/lib/nexmo_developer/app/presenters/head.rb +96 -0
  152. data/lib/nexmo_developer/app/presenters/header.rb +56 -0
  153. data/lib/nexmo_developer/app/presenters/improve_page_presenter.rb +19 -0
  154. data/lib/nexmo_developer/app/presenters/languages_dropdown_presenter.rb +19 -0
  155. data/lib/nexmo_developer/app/presenters/locale_switcher_presenter.rb +36 -0
  156. data/lib/nexmo_developer/app/presenters/navigation.rb +44 -0
  157. data/lib/nexmo_developer/app/presenters/page_title.rb +38 -0
  158. data/lib/nexmo_developer/app/presenters/product_dropdown_presenter.rb +39 -0
  159. data/lib/nexmo_developer/app/presenters/sidenav.rb +64 -0
  160. data/lib/nexmo_developer/app/presenters/sidenav_item.rb +58 -0
  161. data/lib/nexmo_developer/app/presenters/sidenav_resolver.rb +136 -0
  162. data/lib/nexmo_developer/app/presenters/sidenav_subitem.rb +71 -0
  163. data/lib/nexmo_developer/app/presenters/title_normalizer.rb +25 -0
  164. data/lib/nexmo_developer/app/presenters/topnav.rb +23 -0
  165. data/lib/nexmo_developer/app/presenters/topnav_item.rb +19 -0
  166. data/lib/nexmo_developer/app/presenters/tutorial_list_item.rb +99 -0
  167. data/lib/nexmo_developer/app/screenshots/webhook-url-for-delivery-receipt.js +44 -0
  168. data/lib/nexmo_developer/app/screenshots/webhook-url-for-inbound-message.js +44 -0
  169. data/lib/nexmo_developer/app/services/diff.rb +146 -0
  170. data/lib/nexmo_developer/app/services/email_validator.rb +6 -0
  171. data/lib/nexmo_developer/app/services/feedback_slack_notifier.rb +141 -0
  172. data/lib/nexmo_developer/app/services/greenhouse.rb +45 -0
  173. data/lib/nexmo_developer/app/services/load_config.rb +14 -0
  174. data/lib/nexmo_developer/app/services/locale_redirector.rb +29 -0
  175. data/lib/nexmo_developer/app/services/not_found_notifier.rb +34 -0
  176. data/lib/nexmo_developer/app/services/open_api_definition_resolver.rb +25 -0
  177. data/lib/nexmo_developer/app/services/redirector.rb +33 -0
  178. data/lib/nexmo_developer/app/services/search/article.rb +39 -0
  179. data/lib/nexmo_developer/app/services/search/document.rb +37 -0
  180. data/lib/nexmo_developer/app/services/search_terms.rb +27 -0
  181. data/lib/nexmo_developer/app/services/smartling_api.rb +72 -0
  182. data/lib/nexmo_developer/app/services/translator/file_translator.rb +61 -0
  183. data/lib/nexmo_developer/app/services/translator/smartling/api/base.rb +54 -0
  184. data/lib/nexmo_developer/app/services/translator/smartling/api/create_batch.rb +48 -0
  185. data/lib/nexmo_developer/app/services/translator/smartling/api/create_job.rb +44 -0
  186. data/lib/nexmo_developer/app/services/translator/smartling/api/download_file.rb +44 -0
  187. data/lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb +43 -0
  188. data/lib/nexmo_developer/app/services/translator/smartling/api/file_uris.rb +46 -0
  189. data/lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb +67 -0
  190. data/lib/nexmo_developer/app/services/translator/smartling/api_requests_generator.rb +64 -0
  191. data/lib/nexmo_developer/app/services/translator/smartling/token_generator.rb +16 -0
  192. data/lib/nexmo_developer/app/services/translator/smartling_coordinator.rb +56 -0
  193. data/lib/nexmo_developer/app/services/translator/smartling_downloader.rb +57 -0
  194. data/lib/nexmo_developer/app/services/translator/translation_request.rb +11 -0
  195. data/lib/nexmo_developer/app/services/translator/translator_coordinator.rb +33 -0
  196. data/lib/nexmo_developer/app/services/translator/utils.rb +42 -0
  197. data/lib/nexmo_developer/app/services/tutorial_list.rb +39 -0
  198. data/lib/nexmo_developer/app/views/admin/feedbacks/_steps.html.erb +44 -0
  199. data/lib/nexmo_developer/app/views/admin_api/code_snippets/index.json.erb +1 -0
  200. data/lib/nexmo_developer/app/views/admin_api/feedback/index.json.jbuilder +3 -0
  201. data/lib/nexmo_developer/app/views/api/show.html.erb +1 -0
  202. data/lib/nexmo_developer/app/views/api_errors/_error_example.html.erb +9 -0
  203. data/lib/nexmo_developer/app/views/api_errors/_error_table.html.erb +30 -0
  204. data/lib/nexmo_developer/app/views/api_errors/index.html.erb +45 -0
  205. data/lib/nexmo_developer/app/views/api_errors/show.html.erb +27 -0
  206. data/lib/nexmo_developer/app/views/careers/index.html.erb +76 -0
  207. data/lib/nexmo_developer/app/views/code_languages/_icon.html.erb +11 -0
  208. data/lib/nexmo_developer/app/views/contribute/administration/page-links.md +179 -0
  209. data/lib/nexmo_developer/app/views/contribute/code-snippets/how-to-update-code-snippets.md +89 -0
  210. data/lib/nexmo_developer/app/views/contribute/code-snippets/sample-code-snippet.md +42 -0
  211. data/lib/nexmo_developer/app/views/contribute/guides/code-examples.md +190 -0
  212. data/lib/nexmo_developer/app/views/contribute/guides/introduction.md +32 -0
  213. data/lib/nexmo_developer/app/views/contribute/guides/landing-pages.md +556 -0
  214. data/lib/nexmo_developer/app/views/contribute/guides/markdown-guide.md +420 -0
  215. data/lib/nexmo_developer/app/views/contribute/guides/platform.md +220 -0
  216. data/lib/nexmo_developer/app/views/contribute/guides/tutorials-and-use-cases.md +64 -0
  217. data/lib/nexmo_developer/app/views/contribute/guides/writing-style-guide.md +278 -0
  218. data/lib/nexmo_developer/app/views/contribute/overview.md +39 -0
  219. data/lib/nexmo_developer/app/views/contribute/structure/content-types/code-snippets.md +140 -0
  220. data/lib/nexmo_developer/app/views/contribute/structure/content-types/guides.md +14 -0
  221. data/lib/nexmo_developer/app/views/contribute/structure/content-types/overviews.md +34 -0
  222. data/lib/nexmo_developer/app/views/contribute/structure/content-types/tutorials.md +59 -0
  223. data/lib/nexmo_developer/app/views/contribute/structure/content-types/use-cases.md +18 -0
  224. data/lib/nexmo_developer/app/views/contribute/structure/overview.md +55 -0
  225. data/lib/nexmo_developer/app/views/contribute/tutorials-and-use-cases/tutorials.md +197 -0
  226. data/lib/nexmo_developer/app/views/contribute/tutorials-and-use-cases/use-cases.md +22 -0
  227. data/lib/nexmo_developer/app/views/dashboard/_performance_table.html.erb +18 -0
  228. data/lib/nexmo_developer/app/views/dashboard/coverage.html.erb +169 -0
  229. data/lib/nexmo_developer/app/views/dashboard/stats.html.erb +134 -0
  230. data/lib/nexmo_developer/app/views/dashboard/stats_summary.html.erb +62 -0
  231. data/lib/nexmo_developer/app/views/extend/index.html.erb +33 -0
  232. data/lib/nexmo_developer/app/views/extend/show.html.erb +31 -0
  233. data/lib/nexmo_developer/app/views/layouts/api.html.erb +24 -0
  234. data/lib/nexmo_developer/app/views/layouts/application.html.erb +15 -0
  235. data/lib/nexmo_developer/app/views/layouts/documentation-index.html.erb +16 -0
  236. data/lib/nexmo_developer/app/views/layouts/documentation.html.erb +26 -0
  237. data/lib/nexmo_developer/app/views/layouts/landing.html.erb +17 -0
  238. data/lib/nexmo_developer/app/views/layouts/mailer.html.erb +13 -0
  239. data/lib/nexmo_developer/app/views/layouts/mailer.text.erb +1 -0
  240. data/lib/nexmo_developer/app/views/layouts/open-api.html.erb +10 -0
  241. data/lib/nexmo_developer/app/views/layouts/page-full.html.erb +9 -0
  242. data/lib/nexmo_developer/app/views/layouts/page.html.erb +15 -0
  243. data/lib/nexmo_developer/app/views/layouts/partials/_feedback.html.erb +14 -0
  244. data/lib/nexmo_developer/app/views/layouts/partials/_footer.html.erb +50 -0
  245. data/lib/nexmo_developer/app/views/layouts/partials/_head.html.erb +139 -0
  246. data/lib/nexmo_developer/app/views/layouts/partials/_header.html.erb +57 -0
  247. data/lib/nexmo_developer/app/views/layouts/partials/_improve_this_page.html.erb +16 -0
  248. data/lib/nexmo_developer/app/views/layouts/partials/_locale_switcher.html.erb +28 -0
  249. data/lib/nexmo_developer/app/views/layouts/partials/_notices.html.erb +29 -0
  250. data/lib/nexmo_developer/app/views/layouts/partials/_post-body-tags.html.erb +4 -0
  251. data/lib/nexmo_developer/app/views/layouts/partials/_product_dropdown.html.erb +30 -0
  252. data/lib/nexmo_developer/app/views/layouts/partials/_programming_languages_dropdown.html.erb +29 -0
  253. data/lib/nexmo_developer/app/views/layouts/partials/_sidenav.html.erb +3 -0
  254. data/lib/nexmo_developer/app/views/layouts/partials/_sidenav_item.html.erb +18 -0
  255. data/lib/nexmo_developer/app/views/layouts/partials/_sidenav_subitem.html.erb +34 -0
  256. data/lib/nexmo_developer/app/views/layouts/partials/api/_voice.html.erb +84 -0
  257. data/lib/nexmo_developer/app/views/layouts/static.html.erb +33 -0
  258. data/lib/nexmo_developer/app/views/markdown/show.html.erb +1 -0
  259. data/lib/nexmo_developer/app/views/markdown/wip.html.erb +5 -0
  260. data/lib/nexmo_developer/app/views/product-lifecycle/beta.md +28 -0
  261. data/lib/nexmo_developer/app/views/product-lifecycle/dev-preview.md +22 -0
  262. data/lib/nexmo_developer/app/views/search/_result.html.erb +31 -0
  263. data/lib/nexmo_developer/app/views/search/results.html.erb +26 -0
  264. data/lib/nexmo_developer/app/views/sessions/set_user_locale.js.erb +1 -0
  265. data/lib/nexmo_developer/app/views/slack/join.html.erb +25 -0
  266. data/lib/nexmo_developer/app/views/static/404.html.erb +26 -0
  267. data/lib/nexmo_developer/app/views/static/_career.html.erb +15 -0
  268. data/lib/nexmo_developer/app/views/static/_community.html.erb +24 -0
  269. data/lib/nexmo_developer/app/views/static/_dotnet.html.erb +26 -0
  270. data/lib/nexmo_developer/app/views/static/_event.html.erb +7 -0
  271. data/lib/nexmo_developer/app/views/static/_products.html.erb +450 -0
  272. data/lib/nexmo_developer/app/views/static/_profile.html.erb +9 -0
  273. data/lib/nexmo_developer/app/views/static/_slack.html.erb +2 -0
  274. data/lib/nexmo_developer/app/views/static/_xwithy.html.erb +33 -0
  275. data/lib/nexmo_developer/app/views/static/default_landing.html.erb +22 -0
  276. data/lib/nexmo_developer/app/views/static/default_landing/partials/_action_button.html.erb +13 -0
  277. data/lib/nexmo_developer/app/views/static/default_landing/partials/_api_list.html.erb +30 -0
  278. data/lib/nexmo_developer/app/views/static/default_landing/partials/_call_to_action.html.erb +35 -0
  279. data/lib/nexmo_developer/app/views/static/default_landing/partials/_career.html.erb +3 -0
  280. data/lib/nexmo_developer/app/views/static/default_landing/partials/_client_sdk_card.html.erb +17 -0
  281. data/lib/nexmo_developer/app/views/static/default_landing/partials/_contact_community.html.erb +15 -0
  282. data/lib/nexmo_developer/app/views/static/default_landing/partials/_contact_support.html.erb +14 -0
  283. data/lib/nexmo_developer/app/views/static/default_landing/partials/_event_search_results.js.erb +2 -0
  284. data/lib/nexmo_developer/app/views/static/default_landing/partials/_event_search_results_content.html.erb +9 -0
  285. data/lib/nexmo_developer/app/views/static/default_landing/partials/_event_search_results_map_content.html.erb +10 -0
  286. data/lib/nexmo_developer/app/views/static/default_landing/partials/_events.html.erb +80 -0
  287. data/lib/nexmo_developer/app/views/static/default_landing/partials/_featured_session.html.erb +18 -0
  288. data/lib/nexmo_developer/app/views/static/default_landing/partials/_github_repo.html.erb +31 -0
  289. data/lib/nexmo_developer/app/views/static/default_landing/partials/_header.html.erb +24 -0
  290. data/lib/nexmo_developer/app/views/static/default_landing/partials/_headshot.html.erb +43 -0
  291. data/lib/nexmo_developer/app/views/static/default_landing/partials/_html.html.erb +3 -0
  292. data/lib/nexmo_developer/app/views/static/default_landing/partials/_join_slack.html.erb +3 -0
  293. data/lib/nexmo_developer/app/views/static/default_landing/partials/_line_divider.html.erb +5 -0
  294. data/lib/nexmo_developer/app/views/static/default_landing/partials/_linked_image.html.erb +10 -0
  295. data/lib/nexmo_developer/app/views/static/default_landing/partials/_migrate_details.html.erb +57 -0
  296. data/lib/nexmo_developer/app/views/static/default_landing/partials/_products.html.erb +1 -0
  297. data/lib/nexmo_developer/app/views/static/default_landing/partials/_section_header.html.erb +10 -0
  298. data/lib/nexmo_developer/app/views/static/default_landing/partials/_sessions.html.erb +30 -0
  299. data/lib/nexmo_developer/app/views/static/default_landing/partials/_structured_text.html.erb +24 -0
  300. data/lib/nexmo_developer/app/views/static/default_landing/partials/_submit_your_idea_form.html.erb +58 -0
  301. data/lib/nexmo_developer/app/views/static/default_landing/partials/_table.html.erb +25 -0
  302. data/lib/nexmo_developer/app/views/static/default_landing/partials/_team_members.html.erb +5 -0
  303. data/lib/nexmo_developer/app/views/static/default_landing/partials/_text.html.erb +5 -0
  304. data/lib/nexmo_developer/app/views/static/default_landing/partials/_tutorial.html.erb +30 -0
  305. data/lib/nexmo_developer/app/views/static/default_landing/partials/_unordered_list.html.erb +11 -0
  306. data/lib/nexmo_developer/app/views/static/default_landing/partials/_warning_callout.html.erb +8 -0
  307. data/lib/nexmo_developer/app/views/static/default_landing/partials/_write_for_nexmo.html.erb +12 -0
  308. data/lib/nexmo_developer/app/views/static/documentation.html.erb +1 -0
  309. data/lib/nexmo_developer/app/views/static/landing.html.erb +47 -0
  310. data/lib/nexmo_developer/app/views/static/past_events.html.erb +19 -0
  311. data/lib/nexmo_developer/app/views/static/podcast.html.erb +40 -0
  312. data/lib/nexmo_developer/app/views/static/robots.txt.erb +4 -0
  313. data/lib/nexmo_developer/app/views/tools/concatenation.html +1 -0
  314. data/lib/nexmo_developer/app/views/tutorial/_prerequisites.html.erb +23 -0
  315. data/lib/nexmo_developer/app/views/tutorial/index.html.erb +81 -0
  316. data/lib/nexmo_developer/app/views/tutorial/list.html.erb +63 -0
  317. data/lib/nexmo_developer/app/views/tutorial/single.html.erb +1 -0
  318. data/lib/nexmo_developer/app/views/use_case/_index.html.erb +53 -0
  319. data/lib/nexmo_developer/app/views/use_case/index.html.erb +12 -0
  320. data/lib/nexmo_developer/app/views/use_case/list/plain.html.erb +5 -0
  321. data/lib/nexmo_developer/app/views/use_case/show.html.erb +8 -0
  322. data/lib/nexmo_developer/app/webpacker/javascript/api_status/index.js +20 -0
  323. data/lib/nexmo_developer/app/webpacker/javascript/careers/index.js +134 -0
  324. data/lib/nexmo_developer/app/webpacker/javascript/code_snippet_events/index.js +89 -0
  325. data/lib/nexmo_developer/app/webpacker/javascript/components/concatenation/Concatenation.vue +96 -0
  326. data/lib/nexmo_developer/app/webpacker/javascript/components/concatenation/character_counter.js +112 -0
  327. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/Feedback.vue +155 -0
  328. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/FeedbackPath.vue +56 -0
  329. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/eventHub.js +3 -0
  330. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/FieldSet.vue +78 -0
  331. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/Plain.vue +26 -0
  332. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/RadioGroup.vue +65 -0
  333. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/TextArea.vue +86 -0
  334. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/base.vue +53 -0
  335. data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/store.js +50 -0
  336. data/lib/nexmo_developer/app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue +220 -0
  337. data/lib/nexmo_developer/app/webpacker/javascript/components/search/NDPArticle.vue +38 -0
  338. data/lib/nexmo_developer/app/webpacker/javascript/components/search/Search.vue +182 -0
  339. data/lib/nexmo_developer/app/webpacker/javascript/components/search/ZendeskArticle.vue +30 -0
  340. data/lib/nexmo_developer/app/webpacker/javascript/format/index.js +36 -0
  341. data/lib/nexmo_developer/app/webpacker/javascript/github_cards/index.js +16 -0
  342. data/lib/nexmo_developer/app/webpacker/javascript/locale_switcher/index.js +40 -0
  343. data/lib/nexmo_developer/app/webpacker/javascript/notices/index.js +52 -0
  344. data/lib/nexmo_developer/app/webpacker/javascript/scroll/index.js +25 -0
  345. data/lib/nexmo_developer/app/webpacker/javascript/sidenav/index.js +251 -0
  346. data/lib/nexmo_developer/app/webpacker/javascript/spotlight/index.js +12 -0
  347. data/lib/nexmo_developer/app/webpacker/javascript/volta/tooltip.min.js +5 -0
  348. data/lib/nexmo_developer/app/webpacker/javascript/volta/volta.js +2145 -0
  349. data/lib/nexmo_developer/app/webpacker/javascript/volta_tabbed_examples/index.js +106 -0
  350. data/lib/nexmo_developer/app/webpacker/javascript/volta_tabbed_examples/user_preference.js +78 -0
  351. data/lib/nexmo_developer/app/webpacker/packs/application.js +136 -0
  352. data/lib/nexmo_developer/app/webpacker/src/application.css +0 -0
  353. data/lib/nexmo_developer/app/webpacker/stylesheets/application.scss +62 -0
  354. data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_core.scss +196 -0
  355. data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_mixins.scss +51 -0
  356. data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_syntax.scss +63 -0
  357. data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_typography.scss +248 -0
  358. data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_variables.scss +23 -0
  359. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_api.scss +166 -0
  360. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_careers.scss +29 -0
  361. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_community.scss +70 -0
  362. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_feedback.scss +16 -0
  363. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_footer.scss +113 -0
  364. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_header.scss +207 -0
  365. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_hero.scss +16 -0
  366. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_print.scss +14 -0
  367. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_search.scss +115 -0
  368. data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_team.scss +36 -0
  369. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_building-block.scss +32 -0
  370. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_card.scss +150 -0
  371. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_collapsible.scss +18 -0
  372. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_content-block.scss +24 -0
  373. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_extend.scss +49 -0
  374. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_focus.scss +5 -0
  375. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_icons.scss +334 -0
  376. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_js-sequence-diagram.scss +9 -0
  377. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_navigation.scss +113 -0
  378. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_notices.scss +49 -0
  379. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_tabs.scss +35 -0
  380. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_use_cases.scss +29 -0
  381. data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_video.scss +14 -0
  382. data/lib/nexmo_developer/app/webpacker/stylesheets/themes/_ea.scss +32 -0
  383. data/lib/nexmo_developer/bin/initiate +23 -0
  384. data/lib/nexmo_developer/bin/rails +4 -0
  385. data/lib/nexmo_developer/bin/setup +36 -0
  386. data/lib/nexmo_developer/bin/update +31 -0
  387. data/lib/nexmo_developer/bin/webpack +19 -0
  388. data/lib/nexmo_developer/bin/webpack-dev-server +19 -0
  389. data/lib/nexmo_developer/bin/yarn +11 -0
  390. data/lib/nexmo_developer/config.ru +5 -0
  391. data/lib/nexmo_developer/config/application.rb +44 -0
  392. data/lib/nexmo_developer/config/boot.rb +4 -0
  393. data/lib/nexmo_developer/config/cable.yml +10 -0
  394. data/lib/nexmo_developer/config/credentials.yml.enc +1 -0
  395. data/lib/nexmo_developer/config/database.yml +91 -0
  396. data/lib/nexmo_developer/config/dynamic_content.yml +1 -0
  397. data/lib/nexmo_developer/config/environment.rb +7 -0
  398. data/lib/nexmo_developer/config/environments/development.rb +63 -0
  399. data/lib/nexmo_developer/config/environments/production.rb +102 -0
  400. data/lib/nexmo_developer/config/environments/staging.rb +86 -0
  401. data/lib/nexmo_developer/config/environments/test.rb +48 -0
  402. data/lib/nexmo_developer/config/feedback.yml +104 -0
  403. data/lib/nexmo_developer/config/initializers/active_admin.rb +295 -0
  404. data/lib/nexmo_developer/config/initializers/algolia.rb +30 -0
  405. data/lib/nexmo_developer/config/initializers/application_controller_renderer.rb +8 -0
  406. data/lib/nexmo_developer/config/initializers/assets.rb +16 -0
  407. data/lib/nexmo_developer/config/initializers/backtrace_silencers.rb +7 -0
  408. data/lib/nexmo_developer/config/initializers/bugsnag.rb +8 -0
  409. data/lib/nexmo_developer/config/initializers/content_security_policy.rb +25 -0
  410. data/lib/nexmo_developer/config/initializers/cookies_serializer.rb +5 -0
  411. data/lib/nexmo_developer/config/initializers/devise.rb +279 -0
  412. data/lib/nexmo_developer/config/initializers/doc_finder.rb +10 -0
  413. data/lib/nexmo_developer/config/initializers/filter_parameter_logging.rb +4 -0
  414. data/lib/nexmo_developer/config/initializers/geocoder.rb +24 -0
  415. data/lib/nexmo_developer/config/initializers/gravatar_image_tag.rb +5 -0
  416. data/lib/nexmo_developer/config/initializers/greenhouse_io.rb +7 -0
  417. data/lib/nexmo_developer/config/initializers/inflections.rb +16 -0
  418. data/lib/nexmo_developer/config/initializers/locale.rb +6 -0
  419. data/lib/nexmo_developer/config/initializers/mime_types.rb +4 -0
  420. data/lib/nexmo_developer/config/initializers/recaptcha.rb +6 -0
  421. data/lib/nexmo_developer/config/initializers/session_store.rb +3 -0
  422. data/lib/nexmo_developer/config/initializers/slack_safety_check.rb +29 -0
  423. data/lib/nexmo_developer/config/initializers/split.rb +5 -0
  424. data/lib/nexmo_developer/config/initializers/wrap_parameters.rb +14 -0
  425. data/lib/nexmo_developer/config/initializers/zeitwerk.rb +7 -0
  426. data/lib/nexmo_developer/config/master.key +1 -0
  427. data/lib/nexmo_developer/config/newrelic.yml +35 -0
  428. data/lib/nexmo_developer/config/puma.rb +41 -0
  429. data/lib/nexmo_developer/config/redirects.yml +280 -0
  430. data/lib/nexmo_developer/config/repos.yml +27 -0
  431. data/lib/nexmo_developer/config/routes.rb +108 -0
  432. data/lib/nexmo_developer/config/secrets.yml +25 -0
  433. data/lib/nexmo_developer/config/spring.rb +6 -0
  434. data/lib/nexmo_developer/config/stitch-redirects.yml +145 -0
  435. data/lib/nexmo_developer/config/storage.yml +34 -0
  436. data/lib/nexmo_developer/config/tutorials/.gitkeep +0 -0
  437. data/lib/nexmo_developer/config/tutorials/en/app-to-app.yml +49 -0
  438. data/lib/nexmo_developer/config/tutorials/en/app-to-phone.yml +43 -0
  439. data/lib/nexmo_developer/config/tutorials/en/create-and-retrieve-a-report.yml +24 -0
  440. data/lib/nexmo_developer/config/tutorials/en/create-report-using-graphical-tools.yml +20 -0
  441. data/lib/nexmo_developer/config/tutorials/en/get-json-records-cli.yml +20 -0
  442. data/lib/nexmo_developer/config/tutorials/en/ifttt-to-sms.yml +10 -0
  443. data/lib/nexmo_developer/config/tutorials/en/in-app-messaging.yml +4 -0
  444. data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/javascript.yml +50 -0
  445. data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/kotlin.yml +52 -0
  446. data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/objective_c.yml +50 -0
  447. data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/swift.yml +50 -0
  448. data/lib/nexmo_developer/config/tutorials/en/number-insight-api-aspnet.yml +11 -0
  449. data/lib/nexmo_developer/config/tutorials/en/phone-to-app.yml +4 -0
  450. data/lib/nexmo_developer/config/tutorials/en/phone-to-app/javascript.yml +38 -0
  451. data/lib/nexmo_developer/config/tutorials/en/receive-sms-dotnet.yml +9 -0
  452. data/lib/nexmo_developer/config/tutorials/en/receive-sms-with-java.yml +9 -0
  453. data/lib/nexmo_developer/config/tutorials/en/receive-sms-with-php.yml +10 -0
  454. data/lib/nexmo_developer/config/tutorials/en/receive-sms-with-ruby.yml +9 -0
  455. data/lib/nexmo_developer/config/tutorials/en/send-facebook-message-with-failover.yml +41 -0
  456. data/lib/nexmo_developer/config/tutorials/en/send-fbm-message.yml +42 -0
  457. data/lib/nexmo_developer/config/tutorials/en/send-sms-with-dotnet.yml +9 -0
  458. data/lib/nexmo_developer/config/tutorials/en/send-sms-with-flask.yml +9 -0
  459. data/lib/nexmo_developer/config/tutorials/en/send-sms-with-java.yml +9 -0
  460. data/lib/nexmo_developer/config/tutorials/en/send-sms-with-messages.yml +38 -0
  461. data/lib/nexmo_developer/config/tutorials/en/send-sms-with-php.yml +9 -0
  462. data/lib/nexmo_developer/config/tutorials/en/send-sms-with-ruby.yml +9 -0
  463. data/lib/nexmo_developer/config/tutorials/en/send-viber-message.yml +40 -0
  464. data/lib/nexmo_developer/config/tutorials/en/send-whatsapp-message.yml +40 -0
  465. data/lib/nexmo_developer/config/tutorials/en/sms-browser-notifications.yml +10 -0
  466. data/lib/nexmo_developer/config/tutorials/en/sms-dlr-with-dotnet.yml +9 -0
  467. data/lib/nexmo_developer/config/tutorials/en/sms-dlr-with-php.yml +9 -0
  468. data/lib/nexmo_developer/config/tutorials/en/sms-dlr-with-ruby.yml +9 -0
  469. data/lib/nexmo_developer/config/tutorials/en/sms-fortune-cookies-with-ibm-cloud.yml +10 -0
  470. data/lib/nexmo_developer/config/tutorials/en/two-factor-authentication-dotnet-verify-api.yml +11 -0
  471. data/lib/nexmo_developer/config/webpack/development.js +3 -0
  472. data/lib/nexmo_developer/config/webpack/environment.js +18 -0
  473. data/lib/nexmo_developer/config/webpack/loaders/vue.js +6 -0
  474. data/lib/nexmo_developer/config/webpack/production.js +3 -0
  475. data/lib/nexmo_developer/config/webpack/staging.js +4 -0
  476. data/lib/nexmo_developer/config/webpack/test.js +3 -0
  477. data/lib/nexmo_developer/config/webpacker.yml +82 -0
  478. data/lib/nexmo_developer/db/migrate/20170215101603_create_events.rb +15 -0
  479. data/lib/nexmo_developer/db/migrate/20170413143802_enable_uuid_ossp_extension.rb +6 -0
  480. data/lib/nexmo_developer/db/migrate/20170413154102_change_event_id_to_uuid.rb +7 -0
  481. data/lib/nexmo_developer/db/migrate/20170413154510_create_sessions.rb +13 -0
  482. data/lib/nexmo_developer/db/migrate/20170831144035_create_feedback_feedbacks.rb +18 -0
  483. data/lib/nexmo_developer/db/migrate/20170831150024_create_feedback_resources.rb +10 -0
  484. data/lib/nexmo_developer/db/migrate/20170901093402_sorcery_core.rb +17 -0
  485. data/lib/nexmo_developer/db/migrate/20170907172926_create_feedback_authors.rb +10 -0
  486. data/lib/nexmo_developer/db/migrate/20170908112821_create_active_admin_comments.rb +19 -0
  487. data/lib/nexmo_developer/db/migrate/20170908153555_change_events_start_at_and_end_at_to_date_type.rb +6 -0
  488. data/lib/nexmo_developer/db/migrate/20170914145346_add_code_language_to_feedback.rb +6 -0
  489. data/lib/nexmo_developer/db/migrate/20170915081222_correct_uri_of_resources.rb +31 -0
  490. data/lib/nexmo_developer/db/migrate/20170919151243_add_langugage_set_filters_to_feedbacks.rb +9 -0
  491. data/lib/nexmo_developer/db/migrate/20170920153649_add_resolved_to_feedback_feedbacks.rb +6 -0
  492. data/lib/nexmo_developer/db/migrate/20170921120626_drop_users.rb +5 -0
  493. data/lib/nexmo_developer/db/migrate/20170921121218_devise_create_users.rb +44 -0
  494. data/lib/nexmo_developer/db/migrate/20171030115603_add_api_key_and_api_secret_to_users.rb +6 -0
  495. data/lib/nexmo_developer/db/migrate/20180125163023_add_api_secret_to_users.rb +18 -0
  496. data/lib/nexmo_developer/db/migrate/20180306142355_create_careers.rb +14 -0
  497. data/lib/nexmo_developer/db/migrate/20180306161650_add_summary_and_icon_to_careers.rb +6 -0
  498. data/lib/nexmo_developer/db/migrate/20180306184030_create_friendly_id_slugs.rb +15 -0
  499. data/lib/nexmo_developer/db/migrate/20180306184642_add_slug_to_career.rb +6 -0
  500. data/lib/nexmo_developer/db/migrate/20180306185340_add_description_short_to_careers.rb +5 -0
  501. data/lib/nexmo_developer/db/migrate/20180308101927_add_role_group_to_careers.rb +6 -0
  502. data/lib/nexmo_developer/db/migrate/20180403111850_add_product_to_feedback_resources.rb +41 -0
  503. data/lib/nexmo_developer/db/migrate/20180404124814_add_published_to_sessions.rb +6 -0
  504. data/lib/nexmo_developer/db/migrate/20180827133110_usage_building_block_events.rb +16 -0
  505. data/lib/nexmo_developer/db/migrate/20181006144242_create_redirects.rb +8 -0
  506. data/lib/nexmo_developer/db/migrate/20190220092207_add_city_country_to_events.rb +6 -0
  507. data/lib/nexmo_developer/db/migrate/20190306130440_add_latitude_longitude_to_events.rb +6 -0
  508. data/lib/nexmo_developer/db/migrate/20190415162421_rename_usage_building_block_events.rb +7 -0
  509. data/lib/nexmo_developer/db/migrate/20190711141227_drop_careers_table.rb +21 -0
  510. data/lib/nexmo_developer/db/migrate/20190711143408_drop_friendly_id_slugs_table.rb +16 -0
  511. data/lib/nexmo_developer/db/migrate/20191022100247_add_foreign_key_to_active_storage_for_blob_id.rb +10 -0
  512. data/lib/nexmo_developer/db/migrate/20200402092734_add_remote_to_events.rb +5 -0
  513. data/lib/nexmo_developer/db/migrate/20201016102902_create_feedback_config.rb +10 -0
  514. data/lib/nexmo_developer/db/migrate/20201016110604_add_details_to_feedback_feedback.rb +7 -0
  515. data/lib/nexmo_developer/db/schema.rb +152 -0
  516. data/lib/nexmo_developer/db/seeds.rb +70 -0
  517. data/lib/nexmo_developer/docker-compose.yml +43 -0
  518. data/lib/nexmo_developer/github_deploy_key.enc +0 -0
  519. data/lib/nexmo_developer/lib/common_errors.rb +5 -0
  520. data/lib/nexmo_developer/lib/tasks/.keep +0 -0
  521. data/lib/nexmo_developer/lib/tasks/cache.rake +6 -0
  522. data/lib/nexmo_developer/lib/tasks/careers.rake +8 -0
  523. data/lib/nexmo_developer/lib/tasks/ci.rake +171 -0
  524. data/lib/nexmo_developer/lib/tasks/diff.rake +40 -0
  525. data/lib/nexmo_developer/lib/tasks/documentation.rake +18 -0
  526. data/lib/nexmo_developer/lib/tasks/generate_search_terms.rake +39 -0
  527. data/lib/nexmo_developer/lib/tasks/links.rake +135 -0
  528. data/lib/nexmo_developer/lib/tasks/move.rake +58 -0
  529. data/lib/nexmo_developer/lib/tasks/repos.rake +57 -0
  530. data/lib/nexmo_developer/lib/tasks/screenshots.rake +11 -0
  531. data/lib/nexmo_developer/lib/tasks/section.rake +146 -0
  532. data/lib/nexmo_developer/lib/tasks/smartling.rake +65 -0
  533. data/lib/nexmo_developer/lib/tasks/test.rake +22 -0
  534. data/lib/nexmo_developer/nexmo_developer.rb +1 -0
  535. data/lib/nexmo_developer/public/404.html +67 -0
  536. data/lib/nexmo_developer/public/422.html +67 -0
  537. data/lib/nexmo_developer/public/500.html +66 -0
  538. data/lib/nexmo_developer/public/android-chrome-192x192.png +0 -0
  539. data/lib/nexmo_developer/public/android-chrome-512x512.png +0 -0
  540. data/lib/nexmo_developer/public/apple-touch-icon-precomposed.png +0 -0
  541. data/lib/nexmo_developer/public/apple-touch-icon.png +0 -0
  542. data/lib/nexmo_developer/public/browserconfig.xml +9 -0
  543. data/lib/nexmo_developer/public/favicon-16x16.png +0 -0
  544. data/lib/nexmo_developer/public/favicon-32x32.png +0 -0
  545. data/lib/nexmo_developer/public/favicon.ico +0 -0
  546. data/lib/nexmo_developer/public/fonts/Lato-Heavy.woff +0 -0
  547. data/lib/nexmo_developer/public/fonts/Lato-Heavy.woff2 +0 -0
  548. data/lib/nexmo_developer/public/fonts/Lato-Regular.woff +0 -0
  549. data/lib/nexmo_developer/public/fonts/Lato-Regular.woff2 +0 -0
  550. data/lib/nexmo_developer/public/fonts/Lato-Semibold.woff +0 -0
  551. data/lib/nexmo_developer/public/fonts/Lato-Semibold.woff2 +0 -0
  552. data/lib/nexmo_developer/public/manifest.json +17 -0
  553. data/lib/nexmo_developer/public/mstile-144x144.png +0 -0
  554. data/lib/nexmo_developer/public/mstile-150x150.png +0 -0
  555. data/lib/nexmo_developer/public/nexmo-developer-logo.svg +25 -0
  556. data/lib/nexmo_developer/public/nexmo-vonage-white.svg +79 -0
  557. data/lib/nexmo_developer/public/packs-test/css/application-5047da33.chunk.css +14950 -0
  558. data/lib/nexmo_developer/public/packs-test/css/application-5047da33.chunk.css.map +1 -0
  559. data/lib/nexmo_developer/public/packs-test/css/application-a5fa0fdb.chunk.css +15085 -0
  560. data/lib/nexmo_developer/public/packs-test/css/application-a5fa0fdb.chunk.css.map +1 -0
  561. data/lib/nexmo_developer/public/packs-test/css/application-f92656e6.chunk.css +13 -0
  562. data/lib/nexmo_developer/public/packs-test/css/application-f92656e6.chunk.css.map +1 -0
  563. data/lib/nexmo_developer/public/packs-test/css/application-f9d1bdbc.chunk.css +13 -0
  564. data/lib/nexmo_developer/public/packs-test/css/application-f9d1bdbc.chunk.css.map +1 -0
  565. data/lib/nexmo_developer/public/packs-test/js/0-e58f598fb97314a89835.chunk.js +59763 -0
  566. data/lib/nexmo_developer/public/packs-test/js/0-e58f598fb97314a89835.chunk.js.map +1 -0
  567. data/lib/nexmo_developer/public/packs-test/js/application-21483bf220c794127fa9.chunk.js +6405 -0
  568. data/lib/nexmo_developer/public/packs-test/js/application-21483bf220c794127fa9.chunk.js.map +1 -0
  569. data/lib/nexmo_developer/public/packs-test/js/application-6e53f67bc3230c42f9dd.chunk.js +7839 -0
  570. data/lib/nexmo_developer/public/packs-test/js/application-6e53f67bc3230c42f9dd.chunk.js.map +1 -0
  571. data/lib/nexmo_developer/public/packs-test/js/application-76d5a80c3775a7e2327a.chunk.js +6405 -0
  572. data/lib/nexmo_developer/public/packs-test/js/application-76d5a80c3775a7e2327a.chunk.js.map +1 -0
  573. data/lib/nexmo_developer/public/packs-test/js/application-c6f3e7a9d98562f76890.chunk.js +6619 -0
  574. data/lib/nexmo_developer/public/packs-test/js/application-c6f3e7a9d98562f76890.chunk.js.map +1 -0
  575. data/lib/nexmo_developer/public/packs-test/js/application-d280e78dd4f9d3d9b466.chunk.js +6405 -0
  576. data/lib/nexmo_developer/public/packs-test/js/application-d280e78dd4f9d3d9b466.chunk.js.map +1 -0
  577. data/lib/nexmo_developer/public/packs-test/js/runtime~application-1c11a8c601900ade80b6.js +155 -0
  578. data/lib/nexmo_developer/public/packs-test/js/runtime~application-1c11a8c601900ade80b6.js.map +1 -0
  579. data/lib/nexmo_developer/public/packs-test/js/vendors~application-6518249ed8d7aa985a8b.chunk.js +61849 -0
  580. data/lib/nexmo_developer/public/packs-test/js/vendors~application-6518249ed8d7aa985a8b.chunk.js.map +1 -0
  581. data/lib/nexmo_developer/public/packs-test/js/vendors~application-bc967911d70f3f4a5151.chunk.js +59077 -0
  582. data/lib/nexmo_developer/public/packs-test/js/vendors~application-bc967911d70f3f4a5151.chunk.js.map +1 -0
  583. data/lib/nexmo_developer/public/packs-test/js/vendors~application-d2bde7a8e622fafdeb1d.chunk.js +61843 -0
  584. data/lib/nexmo_developer/public/packs-test/js/vendors~application-d2bde7a8e622fafdeb1d.chunk.js.map +1 -0
  585. data/lib/nexmo_developer/public/packs-test/js/vendors~application-eb13e7814c54bf76b364.chunk.js +62431 -0
  586. data/lib/nexmo_developer/public/packs-test/js/vendors~application-eb13e7814c54bf76b364.chunk.js.map +1 -0
  587. data/lib/nexmo_developer/public/packs-test/manifest.json +85 -0
  588. data/lib/nexmo_developer/public/safari-pinned-tab.svg +1 -0
  589. data/lib/nexmo_developer/public/symbol/volta-brand-icons.svg +1 -0
  590. data/lib/nexmo_developer/public/symbol/volta-icons.svg +1 -0
  591. data/lib/nexmo_developer/vendor/assets/javascripts/.keep +0 -0
  592. data/lib/nexmo_developer/vendor/assets/javascripts/jquery-scrolltofixed.js +567 -0
  593. data/lib/nexmo_developer/vendor/assets/javascripts/mermaid.js +49 -0
  594. data/lib/nexmo_developer/vendor/assets/javascripts/underscore.js +5 -0
  595. data/lib/nexmo_developer/vendor/assets/javascripts/volta/addons/jquery.tablesorter.js +1031 -0
  596. data/lib/nexmo_developer/vendor/assets/javascripts/volta/addons/prism.js +22 -0
  597. data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/side-navigation/volta.menu.js +377 -0
  598. data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.accordion.js +249 -0
  599. data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.dropdown.js +145 -0
  600. data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.flash.js +175 -0
  601. data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.modal.js +312 -0
  602. data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.tab.js +203 -0
  603. data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.tooltip.js +71 -0
  604. data/lib/nexmo_developer/vendor/assets/javascripts/volta/popper.min.js +5 -0
  605. data/lib/nexmo_developer/vendor/assets/javascripts/volta/svgxuse.min.js +12 -0
  606. data/lib/nexmo_developer/vendor/assets/javascripts/volta/tooltip.min.js +5 -0
  607. data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.core.js +238 -0
  608. data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.js +2141 -0
  609. data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.min.js +1 -0
  610. data/lib/nexmo_developer/vendor/assets/stylesheets/.keep +0 -0
  611. data/lib/nexmo_developer/version.rb +3 -0
  612. data/package.json +124 -0
  613. data/station.gemspec +87 -42
  614. data/yarn.lock +13919 -0
  615. metadata +1885 -55
  616. data/.document +0 -5
  617. data/Rakefile +0 -61
  618. data/VERSION +0 -1
  619. data/lib/station.rb +0 -3
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="220px" height="31px" viewBox="0 0 220 31" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch -->
4
+ <title>Nexmo_VonageAPI_horiz_white</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="UI-components" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="Billing-Copy-3" transform="translate(-25.000000, -14.000000)">
9
+ <g id="Group-2">
10
+ <g id="Nexmo_VonageAPI_horiz_white" transform="translate(25.000000, 14.000000)">
11
+ <path d="M0,8.60020604 L3.32093453,8.60020604 L3.32093453,11.2952317 L3.39488156,11.2952317 C4.24349059,9.44936647 6.45744694,8.1566813 9.15116808,8.1566813 C12.5456042,8.1566813 15.4976945,10.1875343 15.4976945,14.8398636 L15.4976945,26.1013802 L12.1767599,26.1013802 L12.1767599,15.7630191 C12.1767599,12.4769243 10.2951198,11.2586799 8.19163851,11.2586799 C5.42397033,11.2586799 3.32093453,13.0305501 3.32093453,17.0918103 L3.32093453,26.1013802 L0,26.1013802 L0,8.60020604" id="Fill-1" fill="#FFFFFE"></path>
12
+ <path d="M31.4545695,15.7239064 C31.3794737,12.8771159 29.7205403,10.7511585 26.2898022,10.7511585 C22.9346151,10.7511585 20.7481909,13.4539564 20.7481909,15.7239064 L31.4545695,15.7239064 Z M20.7481909,18.3188186 C20.7481909,21.3096018 23.650983,23.2911316 26.7799727,23.2911316 C28.8535257,23.2911316 30.3613574,22.2823132 31.680767,20.7327613 L34.2444904,22.6064054 C32.3593595,24.9485692 29.7583157,26.1013802 26.3275777,26.1013802 C20.67264,26.1013802 17.1290307,22.2100994 17.1290307,17.1290307 C17.1290307,12.0122902 21.0121638,8.1566813 26.3653531,8.1566813 C32.6611079,8.1566813 35.0737296,12.7692302 35.0737296,17.1655727 L35.0737296,18.3188186 L20.7481909,18.3188186 Z" id="Fill-2" fill="#FFFFFE"></path>
13
+ <polyline id="Fill-3" fill="#FFFFFE" points="40.2382617 16.5229824 34.2918769 8.1566813 38.3974291 8.1566813 42.4679423 14.5165327 46.4675228 8.1566813 50.3256651 8.1566813 44.5916512 16.5229824 51.3870922 26.1013802 47.2815399 26.1013802 42.3260768 18.5678243 37.3710411 26.1013802 33.4423933 26.1013802 40.2382617 16.5229824"></polyline>
14
+ <path d="M53.8340966,8.60020604 L56.8963041,8.60020604 L56.8963041,11.3322293 L56.9689204,11.3322293 C57.2972341,10.2985269 59.4114688,8.1566813 62.5102045,8.1566813 C65.0618974,8.1566813 66.8117303,9.26482451 67.9053758,11.4062244 C69.0355495,9.26482451 71.2954569,8.1566813 73.3736035,8.1566813 C78.6961585,8.1566813 79.9354767,11.9968477 79.9354767,15.9105635 L79.9354767,26.1013802 L76.6545401,26.1013802 L76.6545401,16.3536425 C76.6545401,13.6951686 76.1079374,11.2586799 72.9361453,11.2586799 C69.7643532,11.2586799 68.525475,13.4366316 68.525475,16.5386302 L68.525475,26.1013802 L65.2440983,26.1013802 L65.2440983,16.9442659 C65.2440983,13.6216193 64.770552,11.2586799 61.5987599,11.2586799 C59.2292679,11.2586799 57.1150332,13.0675477 57.1150332,17.018261 L57.1150332,26.1013802 L53.8340966,26.1013802 L53.8340966,8.60020604" id="Fill-4" fill="#FFFFFE"></path>
15
+ <path d="M92.9861668,17.5368648 C92.9861668,18.663012 92.0732391,19.5760351 90.9467834,19.5760351 C89.8207539,19.5760351 88.9078262,18.663012 88.9078262,17.5368648 C88.9078262,16.4102914 89.8207539,15.4976945 90.9467834,15.4976945 C92.0732391,15.4976945 92.9861668,16.4102914 92.9861668,17.5368648" id="Fill-5" fill="#FFFFFE"></path>
16
+ <path d="M90.7380755,11.1522225 C93.6938918,11.1522225 96.1462159,13.255142 96.6611511,16.0268759 L95.5040872,16.0268759 L98.3190665,18.760367 L101.142848,16.0268759 L99.7313974,16.0268759 C99.1918157,11.593753 95.3729328,8.1566813 90.7380755,8.1566813 C86.9790483,8.1566813 83.7547615,10.4169177 82.3824811,13.6358317 L85.2097837,14.7296627 C86.1388677,12.6241358 88.2637457,11.1522225 90.7380755,11.1522225" id="Fill-6" fill="#FFFFFE"></path>
17
+ <path d="M91.0937627,23.8768369 C88.1687258,23.8768369 85.7328968,21.8220916 85.1509082,19.0880187 L86.4391852,19.0880187 L83.5993823,16.3133626 L80.7511449,19.0880187 L82.0425293,19.0880187 C82.6573686,23.5102647 86.4738115,26.9170483 91.0937627,26.9170483 C94.8760232,26.9170483 98.1215755,24.634243 99.5115119,21.3796464 L96.6588351,20.269784 C95.7159336,22.3933443 93.5797555,23.8768369 91.0937627,23.8768369" id="Fill-7" fill="#FFFFFE"></path>
18
+ <path d="M102.819736,10.1525639 L103.181593,10.1525639 C103.504284,10.1525639 103.624761,9.98616993 103.624761,9.78683507 C103.624761,9.56722886 103.470227,9.42068395 103.208413,9.42068395 L102.819736,9.42068395 L102.819736,10.1525639 Z M103.504284,10.4321395 L104.087512,11.2641091 L103.678401,11.2641091 L103.13519,10.4655027 L102.819736,10.4655027 L102.819736,11.2641091 L102.477887,11.2641091 L102.477887,9.10816742 L103.262478,9.10816742 C103.765672,9.10816742 103.986618,9.40083493 103.986618,9.79316986 C103.986618,10.1462291 103.799304,10.352321 103.504284,10.4321395 Z M104.825275,10.199019 C104.825275,9.2948327 104.114332,8.54859392 103.187978,8.54859392 C102.249705,8.54859392 101.531951,9.30116749 101.531951,10.2061985 C101.531951,11.10405 102.249705,11.8562012 103.181593,11.8562012 C104.107947,11.8562012 104.825275,11.0977152 104.825275,10.199019 Z M105.221189,10.199019 C105.221189,11.2970501 104.322081,12.235022 103.181593,12.235022 C102.04153,12.235022 101.142848,11.3105643 101.142848,10.199019 C101.142848,9.09507551 102.04153,8.1566813 103.187978,8.1566813 C104.328892,8.1566813 105.221189,9.08789608 105.221189,10.199019 Z" id="Fill-8" fill="#FFFFFE"></path>
19
+ <path d="M127.8,23.993865 L127.8,9.79386503 L132.06,9.79386503 C136.56,9.79386503 139.42,12.713865 139.42,16.913865 C139.42,21.093865 136.64,23.993865 132.12,23.993865 L127.8,23.993865 Z M129.54,22.413865 L132,22.413865 C135.42,22.413865 137.64,20.113865 137.64,16.913865 C137.64,13.653865 135.4,11.373865 132.08,11.373865 L129.54,11.373865 L129.54,22.413865 Z M150.72,18.973865 C150.72,19.233865 150.68,19.573865 150.68,19.633865 L143.18,19.633865 C143.4,21.453865 144.68,22.633865 146.44,22.633865 C147.66,22.633865 148.58,22.073865 149.18,21.313865 L150.32,22.293865 C149.48,23.373865 148.16,24.113865 146.38,24.113865 C143.62,24.113865 141.54,22.093865 141.54,19.133865 C141.54,16.193865 143.56,14.133865 146.2,14.133865 C148.92,14.133865 150.72,16.173865 150.72,18.973865 Z M146.28,15.633865 C144.76,15.633865 143.54,16.633865 143.24,18.293865 L149.12,18.293865 C148.86,16.693865 147.84,15.633865 146.28,15.633865 Z M159.44,14.253865 L161.2,14.253865 L157.24,23.993865 L155.68,23.993865 L151.7,14.253865 L153.44,14.253865 L156.44,21.933865 L156.5,21.933865 L159.44,14.253865 Z M171.26,18.973865 C171.26,19.233865 171.22,19.573865 171.22,19.633865 L163.72,19.633865 C163.94,21.453865 165.22,22.633865 166.98,22.633865 C168.2,22.633865 169.12,22.073865 169.72,21.313865 L170.86,22.293865 C170.02,23.373865 168.7,24.113865 166.92,24.113865 C164.16,24.113865 162.08,22.093865 162.08,19.133865 C162.08,16.193865 164.1,14.133865 166.74,14.133865 C169.46,14.133865 171.26,16.173865 171.26,18.973865 Z M166.82,15.633865 C165.3,15.633865 164.08,16.633865 163.78,18.293865 L169.66,18.293865 C169.4,16.693865 168.38,15.633865 166.82,15.633865 Z M173.86,23.993865 L173.86,9.27386503 L175.48,9.27386503 L175.48,23.993865 L173.86,23.993865 Z M183.16,24.113865 C180.12,24.113865 178.12,21.933865 178.12,19.133865 C178.12,16.333865 180.12,14.133865 183.16,14.133865 C186.02,14.133865 188.16,16.173865 188.16,19.133865 C188.16,22.093865 186.02,24.113865 183.16,24.113865 Z M183.16,22.633865 C185.04,22.633865 186.52,21.193865 186.52,19.133865 C186.52,17.053865 185.04,15.633865 183.16,15.633865 C181.12,15.633865 179.76,17.193865 179.76,19.133865 C179.76,21.073865 181.14,22.633865 183.16,22.633865 Z M195.64,14.133865 C198.4,14.133865 200.4,16.313865 200.4,19.193865 C200.4,22.173865 198.32,24.113865 195.64,24.113865 C194.26,24.113865 193.1,23.533865 192.32,22.553865 L192.28,22.553865 L192.28,27.953865 L190.68,27.953865 L190.68,14.253865 L192.3,14.253865 L192.3,15.693865 L192.32,15.693865 C193.14,14.673865 194.34,14.133865 195.64,14.133865 Z M195.48,22.633865 C197.46,22.633865 198.76,21.153865 198.76,19.193865 C198.76,17.033865 197.32,15.633865 195.46,15.633865 C193.62,15.633865 192.24,17.193865 192.24,19.193865 C192.24,21.253865 193.76,22.633865 195.48,22.633865 Z M211.46,18.973865 C211.46,19.233865 211.42,19.573865 211.42,19.633865 L203.92,19.633865 C204.14,21.453865 205.42,22.633865 207.18,22.633865 C208.4,22.633865 209.32,22.073865 209.92,21.313865 L211.06,22.293865 C210.22,23.373865 208.9,24.113865 207.12,24.113865 C204.36,24.113865 202.28,22.093865 202.28,19.133865 C202.28,16.193865 204.3,14.133865 206.94,14.133865 C209.66,14.133865 211.46,16.173865 211.46,18.973865 Z M207.02,15.633865 C205.5,15.633865 204.28,16.633865 203.98,18.293865 L209.86,18.293865 C209.6,16.693865 208.58,15.633865 207.02,15.633865 Z M218.74,14.133865 C218.9,14.133865 219.04,14.133865 219.14,14.153865 L219.14,15.953865 C218.92,15.933865 218.66,15.913865 218.5,15.913865 C216.66,15.913865 215.54,17.333865 215.54,19.293865 L215.54,23.993865 L213.92,23.993865 L213.92,14.253865 L215.54,14.253865 L215.54,15.973865 L215.56,15.973865 C216.28,14.813865 217.42,14.133865 218.74,14.133865 Z" id="Developer" fill="#FFFFFF"></path>
20
+ <polygon id="Fill-30" fill-opacity="0.3" fill="#FFFFFE" points="113.37787 30.1797208 114.193538 30.1797208 114.193538 0 113.37787 0"></polygon>
21
+ </g>
22
+ </g>
23
+ </g>
24
+ </g>
25
+ </svg>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="nexmo-logo-collapsed" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 46.9 41.2" style="enable-background:new 0 0 46.9 41.2;" xml:space="preserve">
5
+ <circle style="fill:#FFFFFF;" cx="23.5" cy="20.1" r="4.8"/>
6
+ <path style="fill:#FFFFFF;" d="M23.3,6.9c6.7,0,12.3,4.8,13.5,11.2h-2.6l6.4,6.3l6.4-6.3h-3.2C42.5,7.9,33.8,0,23.3,0
7
+ c-8.5,0-15.9,5.2-19,12.6l6.4,2.5C12.8,10.3,17.7,6.9,23.3,6.9z"/>
8
+ <path style="fill:#FFFFFF;" d="M23.3,34.3c-6.6,0-12.1-4.7-13.4-10.9h2.9l-6.4-6.3L0,23.4h2.9c1.4,10,10,17.7,20.4,17.7
9
+ c8.5,0,15.8-5.2,19-12.6l-6.4-2.5C33.7,30.9,28.9,34.3,23.3,34.3z"/>
10
+ </svg>
@@ -0,0 +1,79 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 426 68.7" style="enable-background:new 0 0 426 68.7;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#FFFFFF;}
7
+ .st1{fill:#FF8300;}
8
+ </style>
9
+ <path class="st0" d="M0,19.7h7.5v6h0.2c1.9-4.1,6.9-7,12.9-7c7.6,0,14.2,4.6,14.2,15V59h-7.5V35.8c0-7.4-4.2-10.1-8.9-10.1
10
+ c-6.2,0-10.9,4-10.9,13.1V59H0V19.7z"/>
11
+ <path class="st0" d="M46.3,42.1c0,6.9,6.4,11.4,13.3,11.4c4.6,0,7.9-2.3,10.8-5.9l5.6,4.3c-4.1,5.4-9.9,8-17.4,8
12
+ C46.1,60,38.3,51,38.3,39.4c0-11.8,8.5-20.6,20.3-20.6c13.8,0,19.1,10.6,19.1,20.7v2.7H46.3z M69.8,36.1
13
+ c-0.2-6.5-3.8-11.4-11.3-11.4c-7.4,0-12.2,6.2-12.2,11.4H69.8z"/>
14
+ <path class="st0" d="M92,38L78.1,19.7h9.6l9.5,13.9l9.4-13.9h9L102.2,38l15.9,21h-9.6L96.9,42.5L85.3,59h-9.2L92,38z"/>
15
+ <path class="st0" d="M120.1,19.7h7v6.1h0.2c0.7-2.3,5.5-7.1,12.6-7.1c5.8,0,9.8,2.5,12.3,7.3c2.6-4.8,7.7-7.3,12.4-7.3
16
+ c12.1,0,14.9,8.6,14.9,17.4V59H172V37.1c0-6-1.2-11.4-8.4-11.4c-7.2,0-10,4.9-10,11.8V59H146V38.5c0-7.5-1.1-12.8-8.3-12.8
17
+ c-5.4,0-10.2,4.1-10.2,12.9V59h-7.5V19.7z"/>
18
+ <circle class="st0" cx="205.5" cy="38.9" r="4.8"/>
19
+ <path class="st0" d="M205.4,25.7c6.7,0,12.3,4.8,13.5,11.2h-2.6l6.4,6.3l6.4-6.3h-3.2c-1.2-10.2-9.9-18.1-20.4-18.1
20
+ c-8.5,0-15.9,5.2-19,12.6l6.4,2.5C194.9,29.1,199.7,25.7,205.4,25.7z"/>
21
+ <path class="st0" d="M205.4,53.1c-6.6,0-12.1-4.7-13.4-10.9h2.9l-6.4-6.3l-6.4,6.3h2.9c1.4,10,10,17.7,20.4,17.7
22
+ c8.5,0,15.8-5.2,19-12.6l-6.4-2.5C215.8,49.7,211,53.1,205.4,53.1z"/>
23
+ <g>
24
+ <g>
25
+ <g>
26
+ <path class="st0" d="M238.7,23.7c0,2.6-2.1,4.8-4.8,4.8c-2.7,0-4.8-2.2-4.8-4.8c0-2.6,2.1-4.8,4.8-4.8
27
+ C236.6,18.9,238.7,21.1,238.7,23.7z M237.7,23.7c0-2.1-1.7-3.9-3.8-3.9c-2.2,0-3.9,1.8-3.9,3.9c0,2.1,1.7,3.9,3.9,3.9
28
+ C236.1,27.6,237.7,25.8,237.7,23.7z M234.6,24.2l1.4,2h-1l-1.3-1.9H233v1.9h-0.8v-5.1h1.8c1.2,0,1.7,0.7,1.7,1.6
29
+ C235.8,23.6,235.3,24.1,234.6,24.2z M233,23.6h0.8c0.8,0,1-0.4,1-0.9c0-0.5-0.4-0.9-1-0.9H233V23.6z"/>
30
+ </g>
31
+ </g>
32
+ </g>
33
+ <path class="st0" d="M282.6,20.4h-7.5v-1.7H292v1.7h-7.5v13.9h-1.9V20.4z"/>
34
+ <path class="st0" d="M293.7,18.7h1.7v6c1.2-1,2.7-2,4.7-2c1.4,0,4.6,0.3,4.6,4.2v7.4H303v-7c0-2.7-1.9-3-3.1-3
35
+ c-1.9,0-3.5,1.2-4.5,2.3v7.8h-1.7V18.7z"/>
36
+ <path class="st0" d="M319,32c-1.2,1.2-2.3,2.7-6.1,2.7c-3.8,0-6.3-2.6-6.3-6c0-3.6,2.7-5.9,6.1-5.9c3.6,0,6.7,1.9,6.6,6.3h-11
37
+ c0.2,2.1,1.9,4.1,4.8,4.1c2.9,0,3.9-1.3,4.6-2.2L319,32z M317.5,27.6c-0.3-1.8-1.9-3.3-4.6-3.3c-2.5,0-4,1.3-4.5,3.3H317.5z"/>
38
+ <path class="st1" d="M326.6,18.7h3.3l5.8,12.4l6-12.4h3.3l-7.6,15.6h-3.2L326.6,18.7z"/>
39
+ <path class="st1" d="M342.7,28.5c0-3.1,1.9-6.1,6.4-6.1c4.6,0,6.4,3,6.4,6.1c0,4.6-3.3,6.1-6.4,6.1C346,34.7,342.7,33.1,342.7,28.5z
40
+ M352.9,28.5c0-2.7-1.7-3.8-3.7-3.8c-2,0-3.8,1.1-3.8,3.8c0,2.4,1.4,3.9,3.8,3.9C351.6,32.4,352.9,30.9,352.9,28.5z"/>
41
+ <path class="st1" d="M356.9,22.8h2.6v1.4c0.8-0.8,2-1.8,4.3-1.8c2.4,0,4.5,1,4.5,4.5v7.4h-2.7v-6.4c0-2.3-0.7-3.2-2.5-3.2
42
+ c-2.1,0-3,0.9-3.6,1.7v7.9h-2.7V22.8z"/>
43
+ <path class="st1" d="M382.1,32.4c0,0.8,0,1.5,0.2,1.9h-2.7c-0.1-0.4-0.1-0.8-0.1-1.2c-1.1,0.6-2.8,1.5-5,1.5c-1.5,0-4.5-0.6-4.5-3.5
44
+ c0-3.9,5.8-4.4,9.5-4.6v-0.5c0-0.9-0.8-1.5-3-1.5c-2.4,0-3,0.9-3.1,1.5h-2.8c0.6-3.1,3.7-3.7,5.8-3.7c5.5,0,5.7,2.7,5.7,4.3V32.4z
45
+ M379.5,28.5c-1.5,0.1-2.9,0.3-4.1,0.6c-1.6,0.4-2.4,0.9-2.4,2c0,1,0.6,1.6,1.9,1.6c2,0,3.6-0.9,4.6-1.5V28.5z"/>
46
+ <path class="st1" d="M397.5,24.7c-0.2-0.1-0.7-0.2-1-0.2c-0.3,0-0.7,0.1-0.9,0.2c0.2,0.2,0.5,0.9,0.5,1.9c0,3.1-2.8,4.2-5.8,4.2
47
+ c-1.1,0-1.9-0.2-2.4-0.4c-0.3,0.2-0.7,0.5-0.7,0.9c0,0.4,0.3,0.7,2.6,0.7h3.6c2.6,0.1,4.1,0.8,4.1,2.6c0,2.7-4,3.5-7.5,3.5
48
+ c-3.2,0-6-0.6-6-2.5c0-1.4,1.2-1.6,2.3-1.8v0c-1-0.1-1.7-0.6-1.7-1.8c0-1.2,1.1-2,2-2.2v0c-1.3-0.7-1.9-1.8-1.9-3.3
49
+ c0-3.4,3.1-4.2,5.9-4.2c2,0,3.2,0.5,4,1c0.4-0.4,1.3-1.2,2.4-1.2h0.4V24.7z M388.4,34.5c-0.6,0-1.5,0.2-1.5,0.8c0,0.9,1.2,1,3.3,1
50
+ c2.1,0,4.3-0.2,4.3-1.2c0-0.8-0.5-0.8-3.4-0.7H388.4z M393.6,26.6c0-1.7-1.8-2.2-3.2-2.2c-1.5,0-3.1,0.5-3.1,2.3
51
+ c0,1.8,1.7,2.3,3.1,2.3C391.8,28.9,393.6,28.3,393.6,26.6z"/>
52
+ <path class="st1" d="M411.2,30.9c-0.2,0.9-1.7,3.8-6,3.8c-4.1,0-6.6-2.6-6.6-6.2c0-3.3,2.1-6.1,6.4-6.1c4.3,0,6.4,2.7,6.4,6.9h-10.1
53
+ c0.1,0.7,0.5,3.1,3.8,3.3c1.7,0,2.8-0.8,3.2-1.7H411.2z M408.6,27.2c-0.4-1.9-1.7-2.7-3.6-2.7c-1.4,0-3,0.5-3.5,2.7H408.6z"/>
54
+ <path class="st1" d="M414.7,20.5c1.8,0,3.2,1.4,3.2,3.2s-1.4,3.2-3.2,3.2c-1.8,0-3.2-1.4-3.2-3.2S412.9,20.5,414.7,20.5z
55
+ M414.7,26.4c1.5,0,2.7-1.2,2.7-2.7c0-1.5-1.2-2.7-2.7-2.7c-1.5,0-2.7,1.2-2.7,2.7C412,25.2,413.2,26.4,414.7,26.4z M414.6,23.9
56
+ h-0.7v1.7h-0.5v-3.8h1.5c0.9,0,1.2,0.4,1.2,1.1c0,0.7-0.4,1-1,1.1l1.1,1.7h-0.6L414.6,23.9z M413.9,23.5h0.8c0.5,0,0.9-0.1,0.9-0.6
57
+ c0-0.5-0.4-0.6-0.9-0.6h-0.8V23.5z"/>
58
+ <path class="st0" d="M283,41.4h2.3l8,15.6h-2.1l-2-4h-10l-2,4H275L283,41.4z M288.4,51.2l-4.2-8.4l-4.2,8.4H288.4z"/>
59
+ <path class="st0" d="M295.7,41.4h9.1c3.1,0,6,0.9,6,4.5c0,3.6-2.9,4.5-6,4.5h-7.2v6.6h-1.9V41.4z M297.6,48.6h6.7
60
+ c3.1,0,4.7-0.7,4.7-2.8c0-2.1-1.6-2.8-4.7-2.8h-6.7V48.6z"/>
61
+ <path class="st0" d="M313.6,41.4h1.9v15.6h-1.9V41.4z"/>
62
+ <path class="st0" d="M327.2,41.4h9.1c3.1,0,6,0.9,6,4.5c0,3.6-2.9,4.5-6,4.5h-7.2v6.6h-1.9V41.4z M329.1,48.6h6.7
63
+ c3.1,0,4.7-0.7,4.7-2.8c0-2.1-1.6-2.8-4.7-2.8h-6.7V48.6z"/>
64
+ <path class="st0" d="M344.5,41.4h1.7v15.6h-1.7V41.4z"/>
65
+ <path class="st0" d="M360.4,55.2c0,0.7,0.1,1.1,0.2,1.7h-1.7c-0.1-0.3-0.2-0.9-0.2-1.3c-1.6,1-3.5,1.7-5.6,1.7
66
+ c-1.8,0-4.6-0.5-4.6-3.4c0-3.9,5.8-4,10.2-4.5v-0.4c0-1.5-1.8-2.1-3.6-2.1c-3,0-4,1.2-4.6,1.9l-1.3-0.9c0.6-0.8,1.9-2.4,5.8-2.4
67
+ c2.5,0,5.5,0.8,5.5,3.6V55.2z M358.7,50.7c-5.1,0.5-8.5,1-8.5,3.1c0,1.8,2,2,2.8,2c2.4,0,4.6-1.2,5.7-1.8V50.7z"/>
68
+ <path class="st0" d="M370.9,47.2h-4.5V54c0,1.2,0.5,1.8,2.3,1.8c0.8,0,1.5-0.1,2.5-0.3V57c-1.2,0.2-2.1,0.3-2.8,0.3
69
+ c-3.7,0-3.7-2.2-3.7-3.1v-6.9h-2.4v-1.5h2.4V42h1.7v3.7h4.5V47.2z"/>
70
+ <path class="st0" d="M375.8,47.4h-2.8V46h2.8v-0.9c0-1.8,0.6-4.1,4-4.1c1.8,0,2.5,0.2,2.9,0.3v1.5c-0.8-0.2-1.5-0.4-2.4-0.4
71
+ c-2.4,0-2.8,1.1-2.8,2.8V46h4.6v1.5h-4.6v9.5h-1.7V47.4z"/>
72
+ <path class="st0" d="M383,51.1c0-3.2,2.5-5.7,6.5-5.7s6.4,2.5,6.4,5.7c0,4-2.6,6.1-6.4,6.1S383,55.1,383,51.1z M394.2,51.3
73
+ c0-2-1.3-4.5-4.7-4.5s-4.7,2.4-4.7,4.5c0,2.7,1.8,4.5,4.7,4.5S394.2,54,394.2,51.3z"/>
74
+ <path class="st0" d="M398.2,45.7h1.7v2.3c1-1.1,2.4-2.7,4.7-2.7c0.4,0,0.7,0,1,0.1v1.7c-0.2,0-0.6-0.2-1.4-0.2
75
+ c-2.5,0-4.2,2.8-4.3,3.2v6.7h-1.7V45.7z"/>
76
+ <path class="st0" d="M407.6,45.7h1.7v1.6c1.3-1.1,2.6-1.9,4.5-1.9c2.4,0,3.1,1.2,3.6,2c1.8-1.5,2.9-2,4.6-2c1,0,4.1,0.2,4.1,3.4v8.1
77
+ h-1.7v-7.5c0-0.7,0-2.6-2.5-2.6c-1.9,0-3.4,1.3-4.1,2v8.1h-1.7v-7.5c0-0.7,0-2.6-2.4-2.6c-2,0-3.4,1.3-4.2,2v8.1h-1.7V45.7z"/>
78
+ <rect x="255.8" class="st0" width="1.2" height="68.7"/>
79
+ </svg>
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 270 270" style="enable-background:new 0 0 270 270;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#E01E5A;}
7
+ .st1{fill:#36C5F0;}
8
+ .st2{fill:#2EB67D;}
9
+ .st3{fill:#ECB22E;}
10
+ </style>
11
+ <g>
12
+ <g>
13
+ <path class="st0" d="M99.4,151.2c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h12.9V151.2z"/>
14
+ <path class="st0" d="M105.9,151.2c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v32.3c0,7.1-5.8,12.9-12.9,12.9
15
+ s-12.9-5.8-12.9-12.9V151.2z"/>
16
+ </g>
17
+ <g>
18
+ <path class="st1" d="M118.8,99.4c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v12.9H118.8z"/>
19
+ <path class="st1" d="M118.8,105.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H86.5c-7.1,0-12.9-5.8-12.9-12.9
20
+ s5.8-12.9,12.9-12.9H118.8z"/>
21
+ </g>
22
+ <g>
23
+ <path class="st2" d="M170.6,118.8c0-7.1,5.8-12.9,12.9-12.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9h-12.9V118.8z"/>
24
+ <path class="st2" d="M164.1,118.8c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V86.5c0-7.1,5.8-12.9,12.9-12.9
25
+ c7.1,0,12.9,5.8,12.9,12.9V118.8z"/>
26
+ </g>
27
+ <g>
28
+ <path class="st3" d="M151.2,170.6c7.1,0,12.9,5.8,12.9,12.9c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9v-12.9H151.2z"/>
29
+ <path class="st3" d="M151.2,164.1c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h32.3c7.1,0,12.9,5.8,12.9,12.9
30
+ c0,7.1-5.8,12.9-12.9,12.9H151.2z"/>
31
+ </g>
32
+ </g>
33
+ </svg>
@@ -0,0 +1 @@
1
+ #= require active_admin/base
@@ -0,0 +1,19 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require jquery
14
+ //= require jquery-scrolltofixed
15
+ //= require clipboard
16
+ //= require underscore
17
+ //= require gmaps/google
18
+ //= require javascripts/nexmo-oas-renderer
19
+ //= require mermaid
@@ -0,0 +1,14 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require Chart.bundle
14
+ //= require chartkick
@@ -0,0 +1 @@
1
+ /\.(?:svg|eot|woff|ttf)$/
@@ -0,0 +1 @@
1
+ %w[sequence-diagram-min.js]
@@ -0,0 +1,17 @@
1
+ // SASS variable overrides must be declared before loading up Active Admin's styles.
2
+ //
3
+ // To view the variables that Active Admin provides, take a look at
4
+ // `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
5
+ // Active Admin source.
6
+ //
7
+ // For example, to change the sidebar width:
8
+ // $sidebar-width: 242px;
9
+
10
+ // Active Admin's got SASS!
11
+ @import "active_admin/mixins";
12
+ @import "active_admin/base";
13
+
14
+ // Overriding any non-variable SASS must be done after the fact.
15
+ // For example, to change the default status-tag color:
16
+ //
17
+ // .status_tag { background: #6090DB; }
@@ -0,0 +1 @@
1
+ //= require stylesheets/nexmo-oas-renderer
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Channel < ActionCable::Channel::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Connection < ActionCable::Connection::Base
3
+ end
4
+ end
@@ -0,0 +1,25 @@
1
+ class DocumentationConstraint
2
+ def self.documentation
3
+ Nexmo::Markdown::CodeLanguage.route_constraint.merge(product_with_parent)
4
+ end
5
+
6
+ def self.products_for_routes
7
+ product_with_parent_list
8
+ end
9
+
10
+ def self.product_with_parent
11
+ { product: Regexp.new(product_with_parent_list.compact.reverse.join('|')) }
12
+ end
13
+
14
+ def self.product_with_parent_list
15
+ raise ArgumentError, "The 'product' key in config/products.yml must be a list with at least one entry." if config.fetch('products', []).size.zero?
16
+
17
+ @product_with_parent_list ||= config.fetch('products', []).map { |product| product['path'] }
18
+ end
19
+
20
+ def self.config
21
+ @config ||= YAML.safe_load(
22
+ File.read("#{Rails.configuration.docs_base_path}/config/products.yml")
23
+ )
24
+ end
25
+ end
@@ -0,0 +1,18 @@
1
+ class LandingPageConstraint
2
+ def self.matches?
3
+ { landing_page: Regexp.new(list.join('|')) }
4
+ end
5
+
6
+ def self.list
7
+ landing_pages("#{Rails.configuration.docs_base_path}/custom/landing_pages/") +
8
+ landing_pages("#{Rails.configuration.docs_base_path}/config/landing_pages/")
9
+ end
10
+
11
+ def self.landing_pages(root)
12
+ Dir["#{root}/**/*.yml"].map do |filename|
13
+ name = File.join(File.dirname(filename), File.basename(filename, '.yml')).gsub(root, '')
14
+ name[0] = '' if name[0] == '/' # Remove leading slash for subdirectories
15
+ name
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ class LocaleConstraint
2
+ def initialize
3
+ @locales = I18n.available_locales.map(&:to_s)
4
+ end
5
+
6
+ def matches?(request)
7
+ if request.params['locale']
8
+ @locales.include?(request.params['locale'])
9
+ else
10
+ true
11
+ end
12
+ end
13
+
14
+ def self.available_locales
15
+ /#{I18n.available_locales.join('|')}/
16
+ end
17
+ end
@@ -0,0 +1,49 @@
1
+ class OpenApiConstraint
2
+ OPEN_API_PRODUCTS = Dir.glob("#{Rails.configuration.oas_path}/**/*.yml").map do |dir|
3
+ dir.gsub("#{Rails.configuration.oas_path}/", '').gsub('.yml', '')
4
+ end
5
+
6
+ def self.list
7
+ @list ||= OPEN_API_PRODUCTS.sort.reject { |d| d.include? 'common/' }
8
+ end
9
+
10
+ def self.products
11
+ { definition: Regexp.new("^(#{list.join('|')})$") }
12
+ end
13
+
14
+ def self.errors_available
15
+ all = list.dup.concat(['application'])
16
+ { definition: Regexp.new(all.join('|')) }
17
+ end
18
+
19
+ def self.products_with_code_language
20
+ products.merge(Nexmo::Markdown::CodeLanguage.route_constraint)
21
+ end
22
+
23
+ def self.find_all_versions(name)
24
+ # Remove the .v2 etc if needed
25
+ name = name.gsub(/(\.v\d+)/, '')
26
+
27
+ matches = list.select do |s|
28
+ s.starts_with?(name) && s.exclude?("#{name}/")
29
+ end
30
+
31
+ matches = matches.map do |s|
32
+ m = /\.v(\d+)/.match(s)
33
+ next { 'version' => '1', 'name' => s } unless m
34
+
35
+ { 'version' => m[1], 'name' => s }
36
+ end
37
+
38
+ matches.sort_by { |v| v['version'] }
39
+ end
40
+
41
+ def self.match?(definition, code_language = nil)
42
+ if code_language.nil?
43
+ products_with_code_language[:definition].match?(definition)
44
+ else
45
+ products_with_code_language[:definition].match?(definition) &&
46
+ products_with_code_language[:code_language].match?(code_language)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,45 @@
1
+ module AdminApi
2
+ class CodeSnippetsController < AdminApiController
3
+ respond_to :json
4
+
5
+ def index
6
+ return unless authenticate
7
+
8
+ params.permit!
9
+
10
+ @events = Usage::CodeSnippetEvent
11
+
12
+ if params[:created_after] || params[:created_before]
13
+ @events = @events.created_between(params[:created_after], params[:created_before])
14
+ end
15
+
16
+ query = []
17
+ query.push('snippet = :snippet') if params[:snippet]
18
+ query.push('language = :language') if params[:language]
19
+
20
+ unless query.empty?
21
+ @events = @events.where([query.join(' and '), params.to_h])
22
+ end
23
+
24
+ @events = @events.group(:snippet, :language, :section, :action).count(:action)
25
+ @events = organize_data(@events)
26
+
27
+ render 'index'
28
+ end
29
+
30
+ private
31
+
32
+ def organize_data(events)
33
+ output = {}
34
+ events.each do |path, count|
35
+ pointer = output
36
+ path.each do |k|
37
+ leaf_value = (k == path.last) ? count : {}
38
+ pointer[k] = pointer[k] || leaf_value
39
+ pointer = pointer[k]
40
+ end
41
+ end
42
+ output
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,11 @@
1
+ module AdminApi
2
+ class FeedbackController < AdminApiController
3
+ respond_to :json
4
+
5
+ def index
6
+ return unless authenticate
7
+
8
+ @feedbacks = Feedback::Feedback.created_between(params[:created_after], params[:created_before])
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ class AdminApiController < ApplicationController
2
+ skip_before_action :verify_authenticity_token
3
+
4
+ def authenticated?
5
+ bearer_token = request.headers['Authorization']&.match(/^Bearer /)&.post_match
6
+ return false unless bearer_token
7
+
8
+ User.exists?(admin: true, nexmo_developer_api_secret: bearer_token)
9
+ end
10
+
11
+ def authenticate
12
+ return true if authenticated?
13
+
14
+ render plain: 'Unauthorized', status: :unauthorized
15
+ false
16
+ end
17
+ end