station 0.0.0 → 0.0.93
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.buildpacks +1 -0
- data/.editorconfig +23 -0
- data/.env.example +33 -0
- data/.gitignore +37 -22
- data/CODE_OF_CONDUCT.md +46 -0
- data/CONTRIBUTING.md +46 -0
- data/Dockerfile +68 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +14 -0
- data/LICENSE.md +400 -20
- data/LICENSE.txt +9 -0
- data/Procfile +1 -0
- data/README.md +54 -20
- data/app.json +24 -0
- data/babel.config.js +74 -0
- data/bin/nexmo-developer +112 -0
- data/docs/Getting-Started.md +39 -0
- data/docs/How-To-Use.md +272 -0
- data/docs/_config.yml +5 -0
- data/docs/index.md +46 -0
- data/lib/nexmo_developer/.disallowed_words +2 -0
- data/lib/nexmo_developer/.dockerignore +1 -0
- data/lib/nexmo_developer/.eslintrc.js +6 -0
- data/lib/nexmo_developer/.nvmrc +1 -0
- data/lib/nexmo_developer/.postcssrc.yml +4 -0
- data/lib/nexmo_developer/.pre-commit-config.yaml +8 -0
- data/lib/nexmo_developer/.rspec +3 -0
- data/lib/nexmo_developer/.rubocop.yml +273 -0
- data/lib/nexmo_developer/.ruby-version +1 -0
- data/lib/nexmo_developer/Dockerfile +28 -0
- data/lib/nexmo_developer/Gemfile +192 -0
- data/lib/nexmo_developer/Gemfile.lock +630 -0
- data/lib/nexmo_developer/Guardfile +109 -0
- data/lib/nexmo_developer/Procfile +2 -0
- data/lib/nexmo_developer/Rakefile +6 -0
- data/lib/nexmo_developer/Runbook.md +69 -0
- data/lib/nexmo_developer/app/admin/active_admin_feedback_author.rb +23 -0
- data/lib/nexmo_developer/app/admin/active_admin_redirect.rb +22 -0
- data/lib/nexmo_developer/app/admin/active_admin_session.rb +34 -0
- data/lib/nexmo_developer/app/admin/admin_building_block_event.rb +31 -0
- data/lib/nexmo_developer/app/admin/admin_event.rb +40 -0
- data/lib/nexmo_developer/app/admin/admin_feedback_feedback.rb +54 -0
- data/lib/nexmo_developer/app/admin/admin_feedback_resource.rb +42 -0
- data/lib/nexmo_developer/app/admin/admin_user.rb +37 -0
- data/lib/nexmo_developer/app/assets/config/manifest.js +5 -0
- data/lib/nexmo_developer/app/assets/fonts/Lato-Black.woff +0 -0
- data/lib/nexmo_developer/app/assets/fonts/Lato-Black.woff2 +0 -0
- data/lib/nexmo_developer/app/assets/fonts/Lato-Regular.woff +0 -0
- data/lib/nexmo_developer/app/assets/fonts/Lato-Regular.woff2 +0 -0
- data/lib/nexmo_developer/app/assets/fonts/Lato-Semibold.woff +0 -0
- data/lib/nexmo_developer/app/assets/fonts/Lato-Semibold.woff2 +0 -0
- data/lib/nexmo_developer/app/assets/fonts/icomoon.eot +0 -0
- data/lib/nexmo_developer/app/assets/fonts/icomoon.json +1257 -0
- data/lib/nexmo_developer/app/assets/fonts/icomoon.svg +55 -0
- data/lib/nexmo_developer/app/assets/fonts/icomoon.ttf +0 -0
- data/lib/nexmo_developer/app/assets/fonts/icomoon.woff +0 -0
- data/lib/nexmo_developer/app/assets/fonts/nexmo-developer.json +36483 -0
- data/lib/nexmo_developer/app/assets/images/.keep +0 -0
- data/lib/nexmo_developer/app/assets/images/logo@3x.png +0 -0
- data/lib/nexmo_developer/app/assets/images/logo_vonage.png +0 -0
- data/lib/nexmo_developer/app/assets/images/nexmo-developer-logo.svg +25 -0
- data/lib/nexmo_developer/app/assets/images/nexmo-logo-collapsed.svg +10 -0
- data/lib/nexmo_developer/app/assets/images/nexmo-vonage-white.svg +79 -0
- data/lib/nexmo_developer/app/assets/images/posters/chatapp.jpg +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/chatapp_small.png +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/nexmo.jpg +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/numberinsight.jpg +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/numberinsight_small.png +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/sms.jpg +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/sms_small.png +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/verify.jpg +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/verify_small.png +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/voice.jpg +0 -0
- data/lib/nexmo_developer/app/assets/images/posters/voice_small.png +0 -0
- data/lib/nexmo_developer/app/assets/images/select-dropdown.png +0 -0
- data/lib/nexmo_developer/app/assets/images/slack.svg +33 -0
- data/lib/nexmo_developer/app/assets/images/themes/ea/topography.png +0 -0
- data/lib/nexmo_developer/app/assets/javascripts/active_admin.js.coffee +1 -0
- data/lib/nexmo_developer/app/assets/javascripts/application.js +19 -0
- data/lib/nexmo_developer/app/assets/javascripts/stats.js +14 -0
- data/lib/nexmo_developer/app/assets/regex/matching_chars.rb +1 -0
- data/lib/nexmo_developer/app/assets/regex/sequence_diagram_regex.rb +1 -0
- data/lib/nexmo_developer/app/assets/regex/stats_regex.rb +1 -0
- data/lib/nexmo_developer/app/assets/regex/webfont_regex.rb +1 -0
- data/lib/nexmo_developer/app/assets/stylesheets/active_admin.scss +17 -0
- data/lib/nexmo_developer/app/assets/stylesheets/application.css +1 -0
- data/lib/nexmo_developer/app/channels/application_cable/channel.rb +4 -0
- data/lib/nexmo_developer/app/channels/application_cable/connection.rb +4 -0
- data/lib/nexmo_developer/app/constraints/documentation_constraint.rb +25 -0
- data/lib/nexmo_developer/app/constraints/landing_page_constraint.rb +18 -0
- data/lib/nexmo_developer/app/constraints/locale_constraint.rb +17 -0
- data/lib/nexmo_developer/app/constraints/open_api_constraint.rb +49 -0
- data/lib/nexmo_developer/app/controllers/admin_api/code_snippets_controller.rb +45 -0
- data/lib/nexmo_developer/app/controllers/admin_api/feedback_controller.rb +11 -0
- data/lib/nexmo_developer/app/controllers/admin_api_controller.rb +17 -0
- data/lib/nexmo_developer/app/controllers/api_controller.rb +33 -0
- data/lib/nexmo_developer/app/controllers/api_errors_controller.rb +82 -0
- data/lib/nexmo_developer/app/controllers/application_controller.rb +93 -0
- data/lib/nexmo_developer/app/controllers/careers_controller.rb +9 -0
- data/lib/nexmo_developer/app/controllers/concerns/.keep +0 -0
- data/lib/nexmo_developer/app/controllers/dashboard_controller.rb +216 -0
- data/lib/nexmo_developer/app/controllers/extend_controller.rb +45 -0
- data/lib/nexmo_developer/app/controllers/feedback/feedbacks_controller.rb +85 -0
- data/lib/nexmo_developer/app/controllers/feeds_controller.rb +20 -0
- data/lib/nexmo_developer/app/controllers/jobs_controller.rb +64 -0
- data/lib/nexmo_developer/app/controllers/markdown_controller.rb +160 -0
- data/lib/nexmo_developer/app/controllers/search_controller.rb +35 -0
- data/lib/nexmo_developer/app/controllers/sessions_controller.rb +12 -0
- data/lib/nexmo_developer/app/controllers/slack_controller.rb +61 -0
- data/lib/nexmo_developer/app/controllers/static_controller.rb +195 -0
- data/lib/nexmo_developer/app/controllers/tutorial_controller.rb +113 -0
- data/lib/nexmo_developer/app/controllers/usage/ab_result_controller.rb +10 -0
- data/lib/nexmo_developer/app/controllers/usage/code_snippet_controller.rb +19 -0
- data/lib/nexmo_developer/app/controllers/use_case_controller.rb +65 -0
- data/lib/nexmo_developer/app/extensions/nokogiri/html/document.rb +23 -0
- data/lib/nexmo_developer/app/helpers/application_helper.rb +66 -0
- data/lib/nexmo_developer/app/helpers/date_range_helper.rb +9 -0
- data/lib/nexmo_developer/app/helpers/navigation_helper.rb +56 -0
- data/lib/nexmo_developer/app/helpers/parameter_values_helper.rb +5 -0
- data/lib/nexmo_developer/app/helpers/video_helper.rb +20 -0
- data/lib/nexmo_developer/app/jobs/application_job.rb +2 -0
- data/lib/nexmo_developer/app/mailers/application_mailer.rb +4 -0
- data/lib/nexmo_developer/app/middleware/nexmo_developer/building_block_redirect.rb +18 -0
- data/lib/nexmo_developer/app/middleware/nexmo_developer/visitor_id.rb +13 -0
- data/lib/nexmo_developer/app/models/api_error.rb +31 -0
- data/lib/nexmo_developer/app/models/application_record.rb +3 -0
- data/lib/nexmo_developer/app/models/concerns/.keep +0 -0
- data/lib/nexmo_developer/app/models/concerns/publishable.rb +13 -0
- data/lib/nexmo_developer/app/models/event.rb +38 -0
- data/lib/nexmo_developer/app/models/feedback.rb +5 -0
- data/lib/nexmo_developer/app/models/feedback/author.rb +5 -0
- data/lib/nexmo_developer/app/models/feedback/config.rb +16 -0
- data/lib/nexmo_developer/app/models/feedback/feedback.rb +34 -0
- data/lib/nexmo_developer/app/models/feedback/resource.rb +45 -0
- data/lib/nexmo_developer/app/models/product.rb +22 -0
- data/lib/nexmo_developer/app/models/redirect.rb +2 -0
- data/lib/nexmo_developer/app/models/session.rb +9 -0
- data/lib/nexmo_developer/app/models/tutorial.rb +189 -0
- data/lib/nexmo_developer/app/models/tutorial/file_loader.rb +28 -0
- data/lib/nexmo_developer/app/models/tutorial/metadata.rb +54 -0
- data/lib/nexmo_developer/app/models/tutorial/prerequisite.rb +31 -0
- data/lib/nexmo_developer/app/models/tutorial/task.rb +45 -0
- data/lib/nexmo_developer/app/models/usage.rb +5 -0
- data/lib/nexmo_developer/app/models/usage/code_snippet_event.rb +7 -0
- data/lib/nexmo_developer/app/models/user.rb +14 -0
- data/lib/nexmo_developer/app/presenters/card.rb +20 -0
- data/lib/nexmo_developer/app/presenters/career.rb +40 -0
- data/lib/nexmo_developer/app/presenters/feedback_presenter.rb +31 -0
- data/lib/nexmo_developer/app/presenters/footer.rb +88 -0
- data/lib/nexmo_developer/app/presenters/head.rb +96 -0
- data/lib/nexmo_developer/app/presenters/header.rb +56 -0
- data/lib/nexmo_developer/app/presenters/improve_page_presenter.rb +19 -0
- data/lib/nexmo_developer/app/presenters/languages_dropdown_presenter.rb +19 -0
- data/lib/nexmo_developer/app/presenters/locale_switcher_presenter.rb +36 -0
- data/lib/nexmo_developer/app/presenters/navigation.rb +44 -0
- data/lib/nexmo_developer/app/presenters/page_title.rb +38 -0
- data/lib/nexmo_developer/app/presenters/product_dropdown_presenter.rb +39 -0
- data/lib/nexmo_developer/app/presenters/sidenav.rb +64 -0
- data/lib/nexmo_developer/app/presenters/sidenav_item.rb +58 -0
- data/lib/nexmo_developer/app/presenters/sidenav_resolver.rb +136 -0
- data/lib/nexmo_developer/app/presenters/sidenav_subitem.rb +71 -0
- data/lib/nexmo_developer/app/presenters/title_normalizer.rb +25 -0
- data/lib/nexmo_developer/app/presenters/topnav.rb +23 -0
- data/lib/nexmo_developer/app/presenters/topnav_item.rb +19 -0
- data/lib/nexmo_developer/app/presenters/tutorial_list_item.rb +99 -0
- data/lib/nexmo_developer/app/screenshots/webhook-url-for-delivery-receipt.js +44 -0
- data/lib/nexmo_developer/app/screenshots/webhook-url-for-inbound-message.js +44 -0
- data/lib/nexmo_developer/app/services/diff.rb +146 -0
- data/lib/nexmo_developer/app/services/email_validator.rb +6 -0
- data/lib/nexmo_developer/app/services/feedback_slack_notifier.rb +141 -0
- data/lib/nexmo_developer/app/services/greenhouse.rb +45 -0
- data/lib/nexmo_developer/app/services/load_config.rb +14 -0
- data/lib/nexmo_developer/app/services/locale_redirector.rb +29 -0
- data/lib/nexmo_developer/app/services/not_found_notifier.rb +34 -0
- data/lib/nexmo_developer/app/services/open_api_definition_resolver.rb +25 -0
- data/lib/nexmo_developer/app/services/redirector.rb +33 -0
- data/lib/nexmo_developer/app/services/search/article.rb +39 -0
- data/lib/nexmo_developer/app/services/search/document.rb +37 -0
- data/lib/nexmo_developer/app/services/search_terms.rb +27 -0
- data/lib/nexmo_developer/app/services/smartling_api.rb +72 -0
- data/lib/nexmo_developer/app/services/translator/file_translator.rb +61 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/base.rb +54 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/create_batch.rb +48 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/create_job.rb +44 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/download_file.rb +44 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb +43 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/file_uris.rb +46 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb +67 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api_requests_generator.rb +64 -0
- data/lib/nexmo_developer/app/services/translator/smartling/token_generator.rb +16 -0
- data/lib/nexmo_developer/app/services/translator/smartling_coordinator.rb +56 -0
- data/lib/nexmo_developer/app/services/translator/smartling_downloader.rb +57 -0
- data/lib/nexmo_developer/app/services/translator/translation_request.rb +11 -0
- data/lib/nexmo_developer/app/services/translator/translator_coordinator.rb +33 -0
- data/lib/nexmo_developer/app/services/translator/utils.rb +42 -0
- data/lib/nexmo_developer/app/services/tutorial_list.rb +39 -0
- data/lib/nexmo_developer/app/views/admin/feedbacks/_steps.html.erb +44 -0
- data/lib/nexmo_developer/app/views/admin_api/code_snippets/index.json.erb +1 -0
- data/lib/nexmo_developer/app/views/admin_api/feedback/index.json.jbuilder +3 -0
- data/lib/nexmo_developer/app/views/api/show.html.erb +1 -0
- data/lib/nexmo_developer/app/views/api_errors/_error_example.html.erb +9 -0
- data/lib/nexmo_developer/app/views/api_errors/_error_table.html.erb +30 -0
- data/lib/nexmo_developer/app/views/api_errors/index.html.erb +45 -0
- data/lib/nexmo_developer/app/views/api_errors/show.html.erb +27 -0
- data/lib/nexmo_developer/app/views/careers/index.html.erb +76 -0
- data/lib/nexmo_developer/app/views/code_languages/_icon.html.erb +11 -0
- data/lib/nexmo_developer/app/views/contribute/administration/page-links.md +179 -0
- data/lib/nexmo_developer/app/views/contribute/code-snippets/how-to-update-code-snippets.md +89 -0
- data/lib/nexmo_developer/app/views/contribute/code-snippets/sample-code-snippet.md +42 -0
- data/lib/nexmo_developer/app/views/contribute/guides/code-examples.md +190 -0
- data/lib/nexmo_developer/app/views/contribute/guides/introduction.md +32 -0
- data/lib/nexmo_developer/app/views/contribute/guides/landing-pages.md +556 -0
- data/lib/nexmo_developer/app/views/contribute/guides/markdown-guide.md +420 -0
- data/lib/nexmo_developer/app/views/contribute/guides/platform.md +220 -0
- data/lib/nexmo_developer/app/views/contribute/guides/tutorials-and-use-cases.md +64 -0
- data/lib/nexmo_developer/app/views/contribute/guides/writing-style-guide.md +278 -0
- data/lib/nexmo_developer/app/views/contribute/overview.md +39 -0
- data/lib/nexmo_developer/app/views/contribute/structure/content-types/code-snippets.md +140 -0
- data/lib/nexmo_developer/app/views/contribute/structure/content-types/guides.md +14 -0
- data/lib/nexmo_developer/app/views/contribute/structure/content-types/overviews.md +34 -0
- data/lib/nexmo_developer/app/views/contribute/structure/content-types/tutorials.md +59 -0
- data/lib/nexmo_developer/app/views/contribute/structure/content-types/use-cases.md +18 -0
- data/lib/nexmo_developer/app/views/contribute/structure/overview.md +55 -0
- data/lib/nexmo_developer/app/views/contribute/tutorials-and-use-cases/tutorials.md +197 -0
- data/lib/nexmo_developer/app/views/contribute/tutorials-and-use-cases/use-cases.md +22 -0
- data/lib/nexmo_developer/app/views/dashboard/_performance_table.html.erb +18 -0
- data/lib/nexmo_developer/app/views/dashboard/coverage.html.erb +169 -0
- data/lib/nexmo_developer/app/views/dashboard/stats.html.erb +134 -0
- data/lib/nexmo_developer/app/views/dashboard/stats_summary.html.erb +62 -0
- data/lib/nexmo_developer/app/views/extend/index.html.erb +33 -0
- data/lib/nexmo_developer/app/views/extend/show.html.erb +31 -0
- data/lib/nexmo_developer/app/views/layouts/api.html.erb +24 -0
- data/lib/nexmo_developer/app/views/layouts/application.html.erb +15 -0
- data/lib/nexmo_developer/app/views/layouts/documentation-index.html.erb +16 -0
- data/lib/nexmo_developer/app/views/layouts/documentation.html.erb +26 -0
- data/lib/nexmo_developer/app/views/layouts/landing.html.erb +17 -0
- data/lib/nexmo_developer/app/views/layouts/mailer.html.erb +13 -0
- data/lib/nexmo_developer/app/views/layouts/mailer.text.erb +1 -0
- data/lib/nexmo_developer/app/views/layouts/open-api.html.erb +10 -0
- data/lib/nexmo_developer/app/views/layouts/page-full.html.erb +9 -0
- data/lib/nexmo_developer/app/views/layouts/page.html.erb +15 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_feedback.html.erb +14 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_footer.html.erb +50 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_head.html.erb +139 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_header.html.erb +57 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_improve_this_page.html.erb +16 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_locale_switcher.html.erb +28 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_notices.html.erb +29 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_post-body-tags.html.erb +4 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_product_dropdown.html.erb +30 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_programming_languages_dropdown.html.erb +29 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_sidenav.html.erb +3 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_sidenav_item.html.erb +18 -0
- data/lib/nexmo_developer/app/views/layouts/partials/_sidenav_subitem.html.erb +34 -0
- data/lib/nexmo_developer/app/views/layouts/partials/api/_voice.html.erb +84 -0
- data/lib/nexmo_developer/app/views/layouts/static.html.erb +33 -0
- data/lib/nexmo_developer/app/views/markdown/show.html.erb +1 -0
- data/lib/nexmo_developer/app/views/markdown/wip.html.erb +5 -0
- data/lib/nexmo_developer/app/views/product-lifecycle/beta.md +28 -0
- data/lib/nexmo_developer/app/views/product-lifecycle/dev-preview.md +22 -0
- data/lib/nexmo_developer/app/views/search/_result.html.erb +31 -0
- data/lib/nexmo_developer/app/views/search/results.html.erb +26 -0
- data/lib/nexmo_developer/app/views/sessions/set_user_locale.js.erb +1 -0
- data/lib/nexmo_developer/app/views/slack/join.html.erb +25 -0
- data/lib/nexmo_developer/app/views/static/404.html.erb +26 -0
- data/lib/nexmo_developer/app/views/static/_career.html.erb +15 -0
- data/lib/nexmo_developer/app/views/static/_community.html.erb +24 -0
- data/lib/nexmo_developer/app/views/static/_dotnet.html.erb +26 -0
- data/lib/nexmo_developer/app/views/static/_event.html.erb +7 -0
- data/lib/nexmo_developer/app/views/static/_products.html.erb +450 -0
- data/lib/nexmo_developer/app/views/static/_profile.html.erb +9 -0
- data/lib/nexmo_developer/app/views/static/_slack.html.erb +2 -0
- data/lib/nexmo_developer/app/views/static/_xwithy.html.erb +33 -0
- data/lib/nexmo_developer/app/views/static/default_landing.html.erb +22 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_action_button.html.erb +13 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_api_list.html.erb +30 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_call_to_action.html.erb +35 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_career.html.erb +3 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_client_sdk_card.html.erb +17 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_contact_community.html.erb +15 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_contact_support.html.erb +14 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_event_search_results.js.erb +2 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_event_search_results_content.html.erb +9 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_event_search_results_map_content.html.erb +10 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_events.html.erb +80 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_featured_session.html.erb +18 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_github_repo.html.erb +31 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_header.html.erb +24 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_headshot.html.erb +43 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_html.html.erb +3 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_join_slack.html.erb +3 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_line_divider.html.erb +5 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_linked_image.html.erb +10 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_migrate_details.html.erb +57 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_products.html.erb +1 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_section_header.html.erb +10 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_sessions.html.erb +30 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_structured_text.html.erb +24 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_submit_your_idea_form.html.erb +58 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_table.html.erb +25 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_team_members.html.erb +5 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_text.html.erb +5 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_tutorial.html.erb +30 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_unordered_list.html.erb +11 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_warning_callout.html.erb +8 -0
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_write_for_nexmo.html.erb +12 -0
- data/lib/nexmo_developer/app/views/static/documentation.html.erb +1 -0
- data/lib/nexmo_developer/app/views/static/landing.html.erb +47 -0
- data/lib/nexmo_developer/app/views/static/past_events.html.erb +19 -0
- data/lib/nexmo_developer/app/views/static/podcast.html.erb +40 -0
- data/lib/nexmo_developer/app/views/static/robots.txt.erb +4 -0
- data/lib/nexmo_developer/app/views/tools/concatenation.html +1 -0
- data/lib/nexmo_developer/app/views/tutorial/_prerequisites.html.erb +23 -0
- data/lib/nexmo_developer/app/views/tutorial/index.html.erb +81 -0
- data/lib/nexmo_developer/app/views/tutorial/list.html.erb +63 -0
- data/lib/nexmo_developer/app/views/tutorial/single.html.erb +1 -0
- data/lib/nexmo_developer/app/views/use_case/_index.html.erb +53 -0
- data/lib/nexmo_developer/app/views/use_case/index.html.erb +12 -0
- data/lib/nexmo_developer/app/views/use_case/list/plain.html.erb +5 -0
- data/lib/nexmo_developer/app/views/use_case/show.html.erb +8 -0
- data/lib/nexmo_developer/app/webpacker/javascript/api_status/index.js +20 -0
- data/lib/nexmo_developer/app/webpacker/javascript/careers/index.js +134 -0
- data/lib/nexmo_developer/app/webpacker/javascript/code_snippet_events/index.js +89 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/concatenation/Concatenation.vue +96 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/concatenation/character_counter.js +112 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/Feedback.vue +155 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/FeedbackPath.vue +56 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/eventHub.js +3 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/FieldSet.vue +78 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/Plain.vue +26 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/RadioGroup.vue +65 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/TextArea.vue +86 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/step/base.vue +53 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/feedback/store.js +50 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/jwt_generator/JwtGenerator.vue +220 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/search/NDPArticle.vue +38 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/search/Search.vue +182 -0
- data/lib/nexmo_developer/app/webpacker/javascript/components/search/ZendeskArticle.vue +30 -0
- data/lib/nexmo_developer/app/webpacker/javascript/format/index.js +36 -0
- data/lib/nexmo_developer/app/webpacker/javascript/github_cards/index.js +16 -0
- data/lib/nexmo_developer/app/webpacker/javascript/locale_switcher/index.js +40 -0
- data/lib/nexmo_developer/app/webpacker/javascript/notices/index.js +52 -0
- data/lib/nexmo_developer/app/webpacker/javascript/scroll/index.js +25 -0
- data/lib/nexmo_developer/app/webpacker/javascript/sidenav/index.js +251 -0
- data/lib/nexmo_developer/app/webpacker/javascript/spotlight/index.js +12 -0
- data/lib/nexmo_developer/app/webpacker/javascript/volta/tooltip.min.js +5 -0
- data/lib/nexmo_developer/app/webpacker/javascript/volta/volta.js +2145 -0
- data/lib/nexmo_developer/app/webpacker/javascript/volta_tabbed_examples/index.js +106 -0
- data/lib/nexmo_developer/app/webpacker/javascript/volta_tabbed_examples/user_preference.js +78 -0
- data/lib/nexmo_developer/app/webpacker/packs/application.js +136 -0
- data/lib/nexmo_developer/app/webpacker/src/application.css +0 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/application.scss +62 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_core.scss +196 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_mixins.scss +51 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_syntax.scss +63 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_typography.scss +248 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_variables.scss +23 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_api.scss +166 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_careers.scss +29 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_community.scss +70 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_feedback.scss +16 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_footer.scss +113 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_header.scss +207 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_hero.scss +16 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_print.scss +14 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_search.scss +115 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/layout/_team.scss +36 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_building-block.scss +32 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_card.scss +150 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_collapsible.scss +18 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_content-block.scss +24 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_extend.scss +49 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_focus.scss +5 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_icons.scss +334 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_js-sequence-diagram.scss +9 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_navigation.scss +113 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_notices.scss +49 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_tabs.scss +35 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_use_cases.scss +29 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_video.scss +14 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/themes/_ea.scss +32 -0
- data/lib/nexmo_developer/bin/initiate +23 -0
- data/lib/nexmo_developer/bin/rails +4 -0
- data/lib/nexmo_developer/bin/setup +36 -0
- data/lib/nexmo_developer/bin/update +31 -0
- data/lib/nexmo_developer/bin/webpack +19 -0
- data/lib/nexmo_developer/bin/webpack-dev-server +19 -0
- data/lib/nexmo_developer/bin/yarn +11 -0
- data/lib/nexmo_developer/config.ru +5 -0
- data/lib/nexmo_developer/config/application.rb +44 -0
- data/lib/nexmo_developer/config/boot.rb +4 -0
- data/lib/nexmo_developer/config/cable.yml +10 -0
- data/lib/nexmo_developer/config/credentials.yml.enc +1 -0
- data/lib/nexmo_developer/config/database.yml +91 -0
- data/lib/nexmo_developer/config/dynamic_content.yml +1 -0
- data/lib/nexmo_developer/config/environment.rb +7 -0
- data/lib/nexmo_developer/config/environments/development.rb +63 -0
- data/lib/nexmo_developer/config/environments/production.rb +102 -0
- data/lib/nexmo_developer/config/environments/staging.rb +86 -0
- data/lib/nexmo_developer/config/environments/test.rb +48 -0
- data/lib/nexmo_developer/config/feedback.yml +104 -0
- data/lib/nexmo_developer/config/initializers/active_admin.rb +295 -0
- data/lib/nexmo_developer/config/initializers/algolia.rb +30 -0
- data/lib/nexmo_developer/config/initializers/application_controller_renderer.rb +8 -0
- data/lib/nexmo_developer/config/initializers/assets.rb +16 -0
- data/lib/nexmo_developer/config/initializers/backtrace_silencers.rb +7 -0
- data/lib/nexmo_developer/config/initializers/bugsnag.rb +8 -0
- data/lib/nexmo_developer/config/initializers/content_security_policy.rb +25 -0
- data/lib/nexmo_developer/config/initializers/cookies_serializer.rb +5 -0
- data/lib/nexmo_developer/config/initializers/devise.rb +279 -0
- data/lib/nexmo_developer/config/initializers/doc_finder.rb +10 -0
- data/lib/nexmo_developer/config/initializers/filter_parameter_logging.rb +4 -0
- data/lib/nexmo_developer/config/initializers/geocoder.rb +24 -0
- data/lib/nexmo_developer/config/initializers/gravatar_image_tag.rb +5 -0
- data/lib/nexmo_developer/config/initializers/greenhouse_io.rb +7 -0
- data/lib/nexmo_developer/config/initializers/inflections.rb +16 -0
- data/lib/nexmo_developer/config/initializers/locale.rb +6 -0
- data/lib/nexmo_developer/config/initializers/mime_types.rb +4 -0
- data/lib/nexmo_developer/config/initializers/recaptcha.rb +6 -0
- data/lib/nexmo_developer/config/initializers/session_store.rb +3 -0
- data/lib/nexmo_developer/config/initializers/slack_safety_check.rb +29 -0
- data/lib/nexmo_developer/config/initializers/split.rb +5 -0
- data/lib/nexmo_developer/config/initializers/wrap_parameters.rb +14 -0
- data/lib/nexmo_developer/config/initializers/zeitwerk.rb +7 -0
- data/lib/nexmo_developer/config/master.key +1 -0
- data/lib/nexmo_developer/config/newrelic.yml +35 -0
- data/lib/nexmo_developer/config/puma.rb +41 -0
- data/lib/nexmo_developer/config/redirects.yml +280 -0
- data/lib/nexmo_developer/config/repos.yml +27 -0
- data/lib/nexmo_developer/config/routes.rb +108 -0
- data/lib/nexmo_developer/config/secrets.yml +25 -0
- data/lib/nexmo_developer/config/spring.rb +6 -0
- data/lib/nexmo_developer/config/stitch-redirects.yml +145 -0
- data/lib/nexmo_developer/config/storage.yml +34 -0
- data/lib/nexmo_developer/config/tutorials/.gitkeep +0 -0
- data/lib/nexmo_developer/config/tutorials/en/app-to-app.yml +49 -0
- data/lib/nexmo_developer/config/tutorials/en/app-to-phone.yml +43 -0
- data/lib/nexmo_developer/config/tutorials/en/create-and-retrieve-a-report.yml +24 -0
- data/lib/nexmo_developer/config/tutorials/en/create-report-using-graphical-tools.yml +20 -0
- data/lib/nexmo_developer/config/tutorials/en/get-json-records-cli.yml +20 -0
- data/lib/nexmo_developer/config/tutorials/en/ifttt-to-sms.yml +10 -0
- data/lib/nexmo_developer/config/tutorials/en/in-app-messaging.yml +4 -0
- data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/javascript.yml +50 -0
- data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/kotlin.yml +52 -0
- data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/objective_c.yml +50 -0
- data/lib/nexmo_developer/config/tutorials/en/in-app-messaging/swift.yml +50 -0
- data/lib/nexmo_developer/config/tutorials/en/number-insight-api-aspnet.yml +11 -0
- data/lib/nexmo_developer/config/tutorials/en/phone-to-app.yml +4 -0
- data/lib/nexmo_developer/config/tutorials/en/phone-to-app/javascript.yml +38 -0
- data/lib/nexmo_developer/config/tutorials/en/receive-sms-dotnet.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/receive-sms-with-java.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/receive-sms-with-php.yml +10 -0
- data/lib/nexmo_developer/config/tutorials/en/receive-sms-with-ruby.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/send-facebook-message-with-failover.yml +41 -0
- data/lib/nexmo_developer/config/tutorials/en/send-fbm-message.yml +42 -0
- data/lib/nexmo_developer/config/tutorials/en/send-sms-with-dotnet.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/send-sms-with-flask.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/send-sms-with-java.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/send-sms-with-messages.yml +38 -0
- data/lib/nexmo_developer/config/tutorials/en/send-sms-with-php.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/send-sms-with-ruby.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/send-viber-message.yml +40 -0
- data/lib/nexmo_developer/config/tutorials/en/send-whatsapp-message.yml +40 -0
- data/lib/nexmo_developer/config/tutorials/en/sms-browser-notifications.yml +10 -0
- data/lib/nexmo_developer/config/tutorials/en/sms-dlr-with-dotnet.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/sms-dlr-with-php.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/sms-dlr-with-ruby.yml +9 -0
- data/lib/nexmo_developer/config/tutorials/en/sms-fortune-cookies-with-ibm-cloud.yml +10 -0
- data/lib/nexmo_developer/config/tutorials/en/two-factor-authentication-dotnet-verify-api.yml +11 -0
- data/lib/nexmo_developer/config/webpack/development.js +3 -0
- data/lib/nexmo_developer/config/webpack/environment.js +18 -0
- data/lib/nexmo_developer/config/webpack/loaders/vue.js +6 -0
- data/lib/nexmo_developer/config/webpack/production.js +3 -0
- data/lib/nexmo_developer/config/webpack/staging.js +4 -0
- data/lib/nexmo_developer/config/webpack/test.js +3 -0
- data/lib/nexmo_developer/config/webpacker.yml +82 -0
- data/lib/nexmo_developer/db/migrate/20170215101603_create_events.rb +15 -0
- data/lib/nexmo_developer/db/migrate/20170413143802_enable_uuid_ossp_extension.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20170413154102_change_event_id_to_uuid.rb +7 -0
- data/lib/nexmo_developer/db/migrate/20170413154510_create_sessions.rb +13 -0
- data/lib/nexmo_developer/db/migrate/20170831144035_create_feedback_feedbacks.rb +18 -0
- data/lib/nexmo_developer/db/migrate/20170831150024_create_feedback_resources.rb +10 -0
- data/lib/nexmo_developer/db/migrate/20170901093402_sorcery_core.rb +17 -0
- data/lib/nexmo_developer/db/migrate/20170907172926_create_feedback_authors.rb +10 -0
- data/lib/nexmo_developer/db/migrate/20170908112821_create_active_admin_comments.rb +19 -0
- data/lib/nexmo_developer/db/migrate/20170908153555_change_events_start_at_and_end_at_to_date_type.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20170914145346_add_code_language_to_feedback.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20170915081222_correct_uri_of_resources.rb +31 -0
- data/lib/nexmo_developer/db/migrate/20170919151243_add_langugage_set_filters_to_feedbacks.rb +9 -0
- data/lib/nexmo_developer/db/migrate/20170920153649_add_resolved_to_feedback_feedbacks.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20170921120626_drop_users.rb +5 -0
- data/lib/nexmo_developer/db/migrate/20170921121218_devise_create_users.rb +44 -0
- data/lib/nexmo_developer/db/migrate/20171030115603_add_api_key_and_api_secret_to_users.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20180125163023_add_api_secret_to_users.rb +18 -0
- data/lib/nexmo_developer/db/migrate/20180306142355_create_careers.rb +14 -0
- data/lib/nexmo_developer/db/migrate/20180306161650_add_summary_and_icon_to_careers.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20180306184030_create_friendly_id_slugs.rb +15 -0
- data/lib/nexmo_developer/db/migrate/20180306184642_add_slug_to_career.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20180306185340_add_description_short_to_careers.rb +5 -0
- data/lib/nexmo_developer/db/migrate/20180308101927_add_role_group_to_careers.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20180403111850_add_product_to_feedback_resources.rb +41 -0
- data/lib/nexmo_developer/db/migrate/20180404124814_add_published_to_sessions.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20180827133110_usage_building_block_events.rb +16 -0
- data/lib/nexmo_developer/db/migrate/20181006144242_create_redirects.rb +8 -0
- data/lib/nexmo_developer/db/migrate/20190220092207_add_city_country_to_events.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20190306130440_add_latitude_longitude_to_events.rb +6 -0
- data/lib/nexmo_developer/db/migrate/20190415162421_rename_usage_building_block_events.rb +7 -0
- data/lib/nexmo_developer/db/migrate/20190711141227_drop_careers_table.rb +21 -0
- data/lib/nexmo_developer/db/migrate/20190711143408_drop_friendly_id_slugs_table.rb +16 -0
- data/lib/nexmo_developer/db/migrate/20191022100247_add_foreign_key_to_active_storage_for_blob_id.rb +10 -0
- data/lib/nexmo_developer/db/migrate/20200402092734_add_remote_to_events.rb +5 -0
- data/lib/nexmo_developer/db/migrate/20201016102902_create_feedback_config.rb +10 -0
- data/lib/nexmo_developer/db/migrate/20201016110604_add_details_to_feedback_feedback.rb +7 -0
- data/lib/nexmo_developer/db/schema.rb +152 -0
- data/lib/nexmo_developer/db/seeds.rb +70 -0
- data/lib/nexmo_developer/docker-compose.yml +43 -0
- data/lib/nexmo_developer/github_deploy_key.enc +0 -0
- data/lib/nexmo_developer/lib/common_errors.rb +5 -0
- data/lib/nexmo_developer/lib/tasks/.keep +0 -0
- data/lib/nexmo_developer/lib/tasks/cache.rake +6 -0
- data/lib/nexmo_developer/lib/tasks/careers.rake +8 -0
- data/lib/nexmo_developer/lib/tasks/ci.rake +171 -0
- data/lib/nexmo_developer/lib/tasks/diff.rake +40 -0
- data/lib/nexmo_developer/lib/tasks/documentation.rake +18 -0
- data/lib/nexmo_developer/lib/tasks/generate_search_terms.rake +39 -0
- data/lib/nexmo_developer/lib/tasks/links.rake +135 -0
- data/lib/nexmo_developer/lib/tasks/move.rake +58 -0
- data/lib/nexmo_developer/lib/tasks/repos.rake +57 -0
- data/lib/nexmo_developer/lib/tasks/screenshots.rake +11 -0
- data/lib/nexmo_developer/lib/tasks/section.rake +146 -0
- data/lib/nexmo_developer/lib/tasks/smartling.rake +65 -0
- data/lib/nexmo_developer/lib/tasks/test.rake +22 -0
- data/lib/nexmo_developer/nexmo_developer.rb +1 -0
- data/lib/nexmo_developer/public/404.html +67 -0
- data/lib/nexmo_developer/public/422.html +67 -0
- data/lib/nexmo_developer/public/500.html +66 -0
- data/lib/nexmo_developer/public/android-chrome-192x192.png +0 -0
- data/lib/nexmo_developer/public/android-chrome-512x512.png +0 -0
- data/lib/nexmo_developer/public/apple-touch-icon-precomposed.png +0 -0
- data/lib/nexmo_developer/public/apple-touch-icon.png +0 -0
- data/lib/nexmo_developer/public/browserconfig.xml +9 -0
- data/lib/nexmo_developer/public/favicon-16x16.png +0 -0
- data/lib/nexmo_developer/public/favicon-32x32.png +0 -0
- data/lib/nexmo_developer/public/favicon.ico +0 -0
- data/lib/nexmo_developer/public/fonts/Lato-Heavy.woff +0 -0
- data/lib/nexmo_developer/public/fonts/Lato-Heavy.woff2 +0 -0
- data/lib/nexmo_developer/public/fonts/Lato-Regular.woff +0 -0
- data/lib/nexmo_developer/public/fonts/Lato-Regular.woff2 +0 -0
- data/lib/nexmo_developer/public/fonts/Lato-Semibold.woff +0 -0
- data/lib/nexmo_developer/public/fonts/Lato-Semibold.woff2 +0 -0
- data/lib/nexmo_developer/public/manifest.json +17 -0
- data/lib/nexmo_developer/public/mstile-144x144.png +0 -0
- data/lib/nexmo_developer/public/mstile-150x150.png +0 -0
- data/lib/nexmo_developer/public/nexmo-developer-logo.svg +25 -0
- data/lib/nexmo_developer/public/nexmo-vonage-white.svg +79 -0
- data/lib/nexmo_developer/public/packs-test/css/application-5047da33.chunk.css +14950 -0
- data/lib/nexmo_developer/public/packs-test/css/application-5047da33.chunk.css.map +1 -0
- data/lib/nexmo_developer/public/packs-test/css/application-a5fa0fdb.chunk.css +15085 -0
- data/lib/nexmo_developer/public/packs-test/css/application-a5fa0fdb.chunk.css.map +1 -0
- data/lib/nexmo_developer/public/packs-test/css/application-f92656e6.chunk.css +13 -0
- data/lib/nexmo_developer/public/packs-test/css/application-f92656e6.chunk.css.map +1 -0
- data/lib/nexmo_developer/public/packs-test/css/application-f9d1bdbc.chunk.css +13 -0
- data/lib/nexmo_developer/public/packs-test/css/application-f9d1bdbc.chunk.css.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/0-e58f598fb97314a89835.chunk.js +59763 -0
- data/lib/nexmo_developer/public/packs-test/js/0-e58f598fb97314a89835.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/application-21483bf220c794127fa9.chunk.js +6405 -0
- data/lib/nexmo_developer/public/packs-test/js/application-21483bf220c794127fa9.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/application-6e53f67bc3230c42f9dd.chunk.js +7839 -0
- data/lib/nexmo_developer/public/packs-test/js/application-6e53f67bc3230c42f9dd.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/application-76d5a80c3775a7e2327a.chunk.js +6405 -0
- data/lib/nexmo_developer/public/packs-test/js/application-76d5a80c3775a7e2327a.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/application-c6f3e7a9d98562f76890.chunk.js +6619 -0
- data/lib/nexmo_developer/public/packs-test/js/application-c6f3e7a9d98562f76890.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/application-d280e78dd4f9d3d9b466.chunk.js +6405 -0
- data/lib/nexmo_developer/public/packs-test/js/application-d280e78dd4f9d3d9b466.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/runtime~application-1c11a8c601900ade80b6.js +155 -0
- data/lib/nexmo_developer/public/packs-test/js/runtime~application-1c11a8c601900ade80b6.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-6518249ed8d7aa985a8b.chunk.js +61849 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-6518249ed8d7aa985a8b.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-bc967911d70f3f4a5151.chunk.js +59077 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-bc967911d70f3f4a5151.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-d2bde7a8e622fafdeb1d.chunk.js +61843 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-d2bde7a8e622fafdeb1d.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-eb13e7814c54bf76b364.chunk.js +62431 -0
- data/lib/nexmo_developer/public/packs-test/js/vendors~application-eb13e7814c54bf76b364.chunk.js.map +1 -0
- data/lib/nexmo_developer/public/packs-test/manifest.json +85 -0
- data/lib/nexmo_developer/public/safari-pinned-tab.svg +1 -0
- data/lib/nexmo_developer/public/symbol/volta-brand-icons.svg +1 -0
- data/lib/nexmo_developer/public/symbol/volta-icons.svg +1 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/.keep +0 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/jquery-scrolltofixed.js +567 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/mermaid.js +49 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/underscore.js +5 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/addons/jquery.tablesorter.js +1031 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/addons/prism.js +22 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/side-navigation/volta.menu.js +377 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.accordion.js +249 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.dropdown.js +145 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.flash.js +175 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.modal.js +312 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.tab.js +203 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.tooltip.js +71 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/popper.min.js +5 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/svgxuse.min.js +12 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/tooltip.min.js +5 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.core.js +238 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.js +2141 -0
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.min.js +1 -0
- data/lib/nexmo_developer/vendor/assets/stylesheets/.keep +0 -0
- data/lib/nexmo_developer/version.rb +3 -0
- data/package.json +124 -0
- data/station.gemspec +87 -42
- data/yarn.lock +13919 -0
- metadata +1885 -55
- data/.document +0 -5
- data/Rakefile +0 -61
- data/VERSION +0 -1
- data/lib/station.rb +0 -3
@@ -0,0 +1,11 @@
|
|
1
|
+
<% if code_language %>
|
2
|
+
<% language = Nexmo::Markdown::CodeLanguage.find(code_language) %>
|
3
|
+
<% if language.label == 'Kotlin' %>
|
4
|
+
<img class="Vlt-gray-darker <%= local_assigns[:css_classes] %>" src="<%= "/assets/images/brands/#{language.icon}#{local_assigns[:dark] ? '-dark' : '-color'}.svg" %>"/>
|
5
|
+
<% else %>
|
6
|
+
<svg class="Vlt-icon Vlt-gray-darker <%= local_assigns[:css_classes] %>" >
|
7
|
+
<use xlink:href="<%= asset_pack_path("media/symbol/volta-brand-icons.svg")%><%="#Brand-icon-#{language.icon}" %>"></use>
|
8
|
+
</svg>
|
9
|
+
<% end %>
|
10
|
+
<span><%= language.label %></span>
|
11
|
+
<% end %>
|
@@ -0,0 +1,179 @@
|
|
1
|
+
---
|
2
|
+
title: Page Links
|
3
|
+
---
|
4
|
+
|
5
|
+
# Page Link Reporting
|
6
|
+
|
7
|
+
Nexmo Developer supports some reporting `rake` commands for showing links in to, and out from pages. This helps us visualise where our heavily linked pages are, and which pages we need to link to more. You can output the data as a table, plain text or as a Graphviz digraph.
|
8
|
+
|
9
|
+
This information can be used to improve cross-linking between pages, or identify content that is isolated and potentially unused
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
> [partial_url] can be any string e.g. /voice/voice-api and only
|
14
|
+
matching source URLs will be returned. (`from` for _outbound and `to`
|
15
|
+
for _inbound)
|
16
|
+
|
17
|
+
* `rake links:report_outbound [partial_url]` - Generate a table containing
|
18
|
+
a list of pages, and all pages that they link to
|
19
|
+
|
20
|
+
* `rake links:report_inbound [partial_url]` - Generate a table containing
|
21
|
+
a list of pages, and all pages that link to it
|
22
|
+
|
23
|
+
* `rake links:no_links_outbound` - Show all pages with no outbound links
|
24
|
+
|
25
|
+
* `rake links:no_links_inbound` - Show all pages with no inbound links
|
26
|
+
|
27
|
+
* `rake links:graph_outbound [partial_url]` - Generate a Graphviz Digraph
|
28
|
+
containing all pages that match [partial_url]
|
29
|
+
|
30
|
+
* `rake links:graph_inbound [partial_url]` - Generate a Graphviz Digraph
|
31
|
+
containing all pages that link to [partial_url]
|
32
|
+
|
33
|
+
|
34
|
+
### Examples
|
35
|
+
|
36
|
+
#### Outbound links from urls containing `/voice/voice-api/guides`
|
37
|
+
|
38
|
+
```
|
39
|
+
$ bundle exec rake links:report_outbound /voice/voice-api/guides
|
40
|
+
|
41
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
42
|
+
| From | To |
|
43
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
44
|
+
| /voice/voice-api/guides/legs-conversations | /voice/voice-api/guides/endpoints |
|
45
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
46
|
+
| /voice/voice-api/guides/ncco | /voice/voice-api/ncco-reference#record |
|
47
|
+
| | /voice/voice-api/ncco-reference#conversation |
|
48
|
+
| | /voice/voice-api/ncco-reference#connect |
|
49
|
+
| | /voice/voice-api/ncco-reference#talk |
|
50
|
+
| | /voice/voice-api/ncco-reference#stream |
|
51
|
+
| | /voice/voice-api/ncco-reference#input |
|
52
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
53
|
+
| /voice/voice-api/guides/lex-connector | /voice/voice-api/guides/websockets |
|
54
|
+
| | /voice/voice-api/guides/text-to-speech#voice-names |
|
55
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
56
|
+
| /voice/voice-api/guides/troubleshooting | |
|
57
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
58
|
+
| /voice/voice-api/guides/endpoints | |
|
59
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
60
|
+
| /voice/voice-api/guides/dtmf | /voice/voice-api/ncco-reference#input |
|
61
|
+
| | /api/voice#createCall |
|
62
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
63
|
+
| /voice/voice-api/guides/call-flow | /voice/voice-api/ncco-reference |
|
64
|
+
| | /voice/voice-api/webhook-reference#event-webhook |
|
65
|
+
| | /concepts/guides/webhooks |
|
66
|
+
| | /voice/voice-api/guides/legs-conversations |
|
67
|
+
| | /voice/voice-api/webhook-reference |
|
68
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
69
|
+
| /voice/voice-api/guides/recording | /voice/voice-api/ncco-reference#conversation |
|
70
|
+
| | /voice/voice-api/ncco-reference#record |
|
71
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
72
|
+
| /voice/voice-api/guides/text-to-speech | /api/voice#startTalk |
|
73
|
+
| | /voice/voice-api/ncco-reference |
|
74
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
75
|
+
| /voice/voice-api/guides/numbers | |
|
76
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
77
|
+
| /voice/voice-api/guides/websockets | /voice/voice-api/guides/ncco |
|
78
|
+
| | /voice/voice-api/guides/call-flow#answer-url-payload |
|
79
|
+
| | /voice/voice-api/code-snippets/play-an-audio-stream-into-a-call/ |
|
80
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
81
|
+
+--------------------------------------------+--------------------------------------------------------------------+
|
82
|
+
|
83
|
+
```
|
84
|
+
|
85
|
+
#### No outbound links from these pages
|
86
|
+
```
|
87
|
+
$ bundle exec rake links:no_links_outbound
|
88
|
+
|
89
|
+
/messages/external-accounts/api-reference
|
90
|
+
/messages/tutorials
|
91
|
+
/messages/concepts/facebook
|
92
|
+
/messages/concepts/viber
|
93
|
+
/messages/concepts/whatsapp
|
94
|
+
/messages/api-reference
|
95
|
+
/messages/code-snippets/client-library
|
96
|
+
/messages/code-snippets/create-an-application
|
97
|
+
/messages/code-snippets/install-cli
|
98
|
+
/verify/tutorials
|
99
|
+
/verify/api-reference
|
100
|
+
/dispatch/external-accounts/api-reference
|
101
|
+
/dispatch/tutorials
|
102
|
+
/dispatch/concepts/workflows
|
103
|
+
/dispatch/api-reference
|
104
|
+
/dispatch/code-snippets/client-library
|
105
|
+
/dispatch/code-snippets/create-an-application
|
106
|
+
/dispatch/code-snippets/install-cli
|
107
|
+
/redact/api-reference
|
108
|
+
/redact/code-snippets/redact-using-id
|
109
|
+
/audit/tutorials
|
110
|
+
/audit/api-reference
|
111
|
+
/voice/sip/configure/freeswitch
|
112
|
+
/voice/sip/configure/asterisk
|
113
|
+
/voice/sip/configure/freepbx
|
114
|
+
/voice/voice-api/tutorials
|
115
|
+
/voice/voice-api/guides/troubleshooting
|
116
|
+
/voice/voice-api/guides/endpoints
|
117
|
+
/voice/voice-api/guides/numbers
|
118
|
+
/voice/voice-api/api-reference
|
119
|
+
/voice/voice-api/code-snippets/mute-a-call
|
120
|
+
/voice/voice-api/code-snippets/play-text-to-speech-into-a-call
|
121
|
+
/voice/voice-api/code-snippets/retrieve-info-for-a-call
|
122
|
+
/voice/voice-api/code-snippets/earmuff-a-call
|
123
|
+
/voice/voice-api/code-snippets/play-dtmf-into-a-call
|
124
|
+
/voice/voice-api/code-snippets/play-an-audio-stream-into-a-call
|
125
|
+
/voice/voice-api/code-snippets/transfer-a-call
|
126
|
+
/voice/voice-api/code-snippets/retrieve-info-for-all-calls
|
127
|
+
/stitch/concepts/mos
|
128
|
+
/stitch/concepts/jwt-acl
|
129
|
+
/stitch/in-app-voice/call-statuses
|
130
|
+
/stitch/api-reference
|
131
|
+
/account/secret-management/api-reference
|
132
|
+
/account/secret-management/code-snippets/list-all-secrets
|
133
|
+
/account/secret-management/code-snippets/revoke-a-secret
|
134
|
+
/account/secret-management/code-snippets/create-a-secret
|
135
|
+
/account/secret-management/code-snippets/fetch-a-secret
|
136
|
+
/messaging/sms/tutorials
|
137
|
+
/messaging/sms/guides/SMPP-access
|
138
|
+
/messaging/sms/api-reference
|
139
|
+
/number-insight/tutorials
|
140
|
+
/number-insight/guides/cnam
|
141
|
+
/number-insight/api-reference
|
142
|
+
/conversation/tutorials
|
143
|
+
/conversation/concepts/event
|
144
|
+
/conversation/concepts/user
|
145
|
+
/conversation/cli-reference
|
146
|
+
/conversation/api-reference
|
147
|
+
/conversation/code-snippets/member/get-member
|
148
|
+
/conversation/code-snippets/member/create-member
|
149
|
+
/conversation/code-snippets/member/update-member
|
150
|
+
/conversation/code-snippets/member/list-members
|
151
|
+
/conversation/code-snippets/member/delete-member
|
152
|
+
/conversation/code-snippets/user/update-user
|
153
|
+
/conversation/code-snippets/user/delete-user
|
154
|
+
/conversation/code-snippets/user/get-user
|
155
|
+
/conversation/code-snippets/user/list-user-conversations
|
156
|
+
/conversation/code-snippets/user/list-users
|
157
|
+
/conversation/code-snippets/user/create-user
|
158
|
+
/conversation/code-snippets/leg/delete-leg
|
159
|
+
/conversation/code-snippets/leg/list-legs
|
160
|
+
/conversation/code-snippets/event/get-event
|
161
|
+
/conversation/code-snippets/event/create-event
|
162
|
+
/conversation/code-snippets/event/list-events
|
163
|
+
/conversation/code-snippets/event/delete-event
|
164
|
+
/conversation/code-snippets/conversation/list-conversations
|
165
|
+
/conversation/code-snippets/conversation/update-conversation
|
166
|
+
/conversation/code-snippets/conversation/get-conversation
|
167
|
+
/conversation/code-snippets/conversation/delete-conversation
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
### Render Graphviz digraphs
|
172
|
+
|
173
|
+
This example will render a digraph containing all outbound links from `/voice/voice-api/guides` as a file named `voice-graph.png`
|
174
|
+
|
175
|
+
```
|
176
|
+
bundle exec rake links:graph_outbound /voice/voice-api/guides > voice-graph
|
177
|
+
dot -Tpng voice-graph > voice-graph.png
|
178
|
+
```
|
179
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
---
|
2
|
+
title: How to update code snippets
|
3
|
+
description: This topic describes a method for updating code snippets in GitHub
|
4
|
+
---
|
5
|
+
|
6
|
+
# How to update code snippets
|
7
|
+
|
8
|
+
## Introduction
|
9
|
+
|
10
|
+
Updating code snippets and testing thoroughly can catch people out. You might end up with errors while trying to build NDP, or while running it locally. Here’s the procedure the tech writing team uses, which is not the only one, but it provides a good starting point for developing your own methods.
|
11
|
+
|
12
|
+
> Remember: code snippet repos are in submodules as far as NDP is concerned. If you are not familiar with submodules it’s probably worth doing a little background reading on them first.
|
13
|
+
|
14
|
+
This technique assumes you have NDP cloned locally, and you have checked out and updated all code snippet repo modules. At some point you should have run the following:
|
15
|
+
|
16
|
+
```shell
|
17
|
+
git submodule init && git submodule update
|
18
|
+
git config --global submodule.recurse true
|
19
|
+
```
|
20
|
+
|
21
|
+
This intializes your submodules, updates them, and sets the Git global configuration.
|
22
|
+
|
23
|
+
To a certain extent the procedure you use will depend on the type of change you are making to code snippets. With experience you will see various shortcuts. For example, changes to code snippets that do not change line numbers, generally do not require code snippet configuration to be changed, which simplifies the process.
|
24
|
+
|
25
|
+
## Code snippet structure
|
26
|
+
|
27
|
+
Code snippets have several parts to them:
|
28
|
+
|
29
|
+
1. The actual code in the submodule repos (for example, https://github.com/Nexmo/nexmo-curl-code-snippets/blob/master/messages/messenger/send-text.sh)
|
30
|
+
2. The documentation pages that contain the tabbed code snippets in different programming languages (for example, https://developer.nexmo.com/messages/code-snippets/messenger/send-text)
|
31
|
+
3. The code snippet configuration (for example, `_examples/messages/messenger/send-text/curl.yml`)
|
32
|
+
|
33
|
+
Code snippets are described in more detail [here](/contribute/structure/guides/code-snippets).
|
34
|
+
|
35
|
+
## Updating code snippets
|
36
|
+
|
37
|
+
The tech writing team usually recommends coding and testing the code snippet code separately from NDP. This usually means you check out the relevant code snippet repo in a separate directory structure. This allows you to have local data such as private key, local config and so on for an app you can use for testing this repo. You can then run your test scripts locally to make sure everything works. See [Curl code snippet repo](https://github.com/Nexmo/nexmo-curl-code-snippets) for a good example of this set up.
|
38
|
+
|
39
|
+
1. Go to the code snippet repo directory and make your code changes in a branch. Test code changes locally.
|
40
|
+
|
41
|
+
2. If everything is OK, push up the branch to create a PR. Request a review. While waiting for a review you can work on the NDP side of things. Remember, as your changes have not been merged yet they will not be visible in NDP, so if, for example, you’ve deleted a code snippet, NDP won’t be affected.
|
42
|
+
|
43
|
+
Here’s what some people do at this point - they merge their code snippet changes to master in the code snippet repo. If you deleted a code snippet or modified an existing one you just broke NDP - at least - those code snippet pages in NDP. The line number will be out, or worst case the code snippet has now gone completely. However, if you only added a code snippet you’re still good (although as yet the docs won't display it).
|
44
|
+
|
45
|
+
## Automatic NDP PR creation
|
46
|
+
|
47
|
+
If you added a new code snippet and merged it into master of the code snippet repo, an NDP PR will **automatically** be created for you at this point. This is because at the least, NDP will need to be updated to point to the latest master of the code snippet repo, not the previous commit.
|
48
|
+
|
49
|
+
You won't always use the automated PR though. If you're only updating a single snippet or not affecting the display of snippets in NDP, it's a nice shortcut. **Usually, you want to make sure that all the required changes are in place before creating a PR to point NDP at the latest version of the code snippet submodule repos.** In that case, you can delete the automatic update PRs with a note saying that you'll be pushing under a separate PR.
|
50
|
+
|
51
|
+
If you're not ready for the Automated PR to be merged then flag it as 'Do not merge', or if you are not going to use it close with a suitable note.
|
52
|
+
|
53
|
+
## NDP side of the code snippet
|
54
|
+
|
55
|
+
Now, while waiting for a review of your code snippet code you can do the NDP part.
|
56
|
+
|
57
|
+
1. Go to the root directory of your NDP clone.
|
58
|
+
2. Checkout master branch, `git checkout master`.
|
59
|
+
3. Do a `git pull` to update.
|
60
|
+
4. Go to the sub-directory for the code snippets you’re working on. For example, `.repos/nexmo/nexmo-node-code-snippets` and `git checkout master` then `git pull`. This ensures the local code snippet repo is up to date.
|
61
|
+
|
62
|
+
At this point everything local is master and up to date. You are now ready to make your changes to NDP.
|
63
|
+
|
64
|
+
1. Create a new branch in NDP e.g. `tony-update-snips`.
|
65
|
+
2. Checkout the new branch.
|
66
|
+
3. Now you want to check out the branch with your code snippet repo changes (which are still in review). Go to `.repos/nexmo/nexmo-node-code-snippets`.
|
67
|
+
4. Checkout the branch with your code snippet changes.
|
68
|
+
5. Go back up to NDP directory and make the required changes to NDP, for example, add or update configuration for the code snippets (especially if line numbers have changed), add new stub pages and so on.
|
69
|
+
6. Now run NDP locally and check your changes display correctly
|
70
|
+
7. Do a `git status` to make sure you have only affected the desired files.
|
71
|
+
8. You can now push up your branch to create a PR (and please do fill out the PR description).
|
72
|
+
9. A review app will be built for you. Go into Heroku and check the review app displays as required. You can use your PR number to identify the correct review app.
|
73
|
+
|
74
|
+
At this point you have tested your changes (both code snippet and NDP changes) but you’re not quite finished. Hopefully, by now your code snippet repo PR has been reviewed. If everything is good at this stage you can now merge these code snippet changes into the code snippet repo.
|
75
|
+
|
76
|
+
But you still need to make one more change, and that is to align your NDP PR with the master of the code snippet repo:
|
77
|
+
|
78
|
+
1. Back in NDP you need to change down into `.repos/nexmo/nexmo-node-code-snippets` and do a `git checkout master` and git pull to pull down the latest code snippet repo changes that just got merged.
|
79
|
+
2. Running NDP locally, check that the affected code snippets display correctly. This is very important!
|
80
|
+
3. Change back up into root of NDP and do `git status` - you will see your branch has changes that will need to be pushed up, due to the fact you are referencing the master of the code snippet repo.
|
81
|
+
4. Commit with a message of something like ‘point at latest master’ and push.
|
82
|
+
5. Let the new review app build.
|
83
|
+
6. Check review app via Heroku.
|
84
|
+
7. If everything looks good in the review app you can now get your PR reviewed and merged!
|
85
|
+
8. You can now close any auto-generated NDP PR, as in this case you didn’t use it.
|
86
|
+
|
87
|
+
## Summary
|
88
|
+
|
89
|
+
There are many moving parts to code snippets with the added issue that the code is stored in submodules. The full process described above is not always required. For example, if you make a code change that does not affect the line numbering in your code snippet, then there are no changes required on the NDP side. If however, you delete a code snippet, or add a new code snippet, or the number of lines changes, then you'll need to reflect those code changes on NDP, otherwise the code snippet will not display correctly.
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
title: Quick howto on a simple thing
|
3
|
+
navigation_weight: 5
|
4
|
+
---
|
5
|
+
|
6
|
+
# How to do this simple thing
|
7
|
+
|
8
|
+
This section introduces what the code snippet does. Bear in mind a user could
|
9
|
+
land here from a search result so we may need to add a little context, redefine
|
10
|
+
abbreviations, or otherwise help them orient themselves.
|
11
|
+
|
12
|
+
## Example
|
13
|
+
|
14
|
+
Introduce the example, what are we about to do or see?
|
15
|
+
|
16
|
+
Before diving into the code samples, define the placeholders used by the code samples that will follow. These should follow our [guidelines for placeholders](/contribute/guides/code-examples#placeholders) used throughout Nexmo Developer.
|
17
|
+
|
18
|
+
Key | Description
|
19
|
+
-- | --
|
20
|
+
`NEXMO_NUMBER` | Nexmo Number to call.
|
21
|
+
|
22
|
+
|
23
|
+
```code_snippets
|
24
|
+
source: '_examples/concepts/sample-code-snippet'
|
25
|
+
application:
|
26
|
+
name: 'Example Application'
|
27
|
+
```
|
28
|
+
|
29
|
+
Note the `application` section of the `building_blocks` construct is optional. If not used there will be no prerequisite section in the rendered block.
|
30
|
+
|
31
|
+
## Try it out
|
32
|
+
|
33
|
+
What did the user just build? How should they use it? Add the instructions
|
34
|
+
for how to demo the masterpiece the user has just created.
|
35
|
+
|
36
|
+
## Further reading
|
37
|
+
|
38
|
+
Add resources for a user such as:
|
39
|
+
|
40
|
+
* A tutorial where this technique is used.
|
41
|
+
* Reference to either our own or external tools that might be handy.
|
42
|
+
* A guide for a similar topic (especially if that guide links to this code snippet).
|
@@ -0,0 +1,190 @@
|
|
1
|
+
---
|
2
|
+
title: Code Examples
|
3
|
+
navigation_weight: 4
|
4
|
+
---
|
5
|
+
|
6
|
+
# Contributing Code Examples
|
7
|
+
|
8
|
+
Nexmo Developer hosts many code examples, and endeavours to make them as consistent as possible. You should follow this guide when contributing code examples to the code snippets repositories or directly to Nexmo Developer.
|
9
|
+
|
10
|
+
## Use the library
|
11
|
+
|
12
|
+
If an existing Nexmo-supported API library supports the functionality, you should use that library for code samples.
|
13
|
+
|
14
|
+
### Principle of Least Astonishment
|
15
|
+
|
16
|
+
Code samples should match the expectations and experience of a median-level competent developer in a language and try hard to not surprise or confuse them. Code samples for APIs are not a place to use flashy, experimental or cutting-edge techniques, but to try to maximise compatibility, and reduce ambiguity.
|
17
|
+
|
18
|
+
Code samples **MUST NOT** use any technique widely considered to be insecure, badly designed or likely to cause harm or confusion to the user.
|
19
|
+
|
20
|
+
## Placeholders
|
21
|
+
|
22
|
+
The following values should be used as placeholders in code examples. They can be specified assigned as constants out of the range of view of the rendered code to allow the code to be executed whist providing an obvious placeholders for the reader.
|
23
|
+
|
24
|
+
Key | Description | User customisation (future)
|
25
|
+
-- | -- | --
|
26
|
+
`NEXMO_API_KEY` | The users Nexmo API Key | ✅
|
27
|
+
`NEXMO_API_SECRET` | The users Nexmo API Key | ✅
|
28
|
+
`NEXMO_NUMBER` | The virtual number that the user holds with Nexmo | ❓
|
29
|
+
`TO_NUMBER` for outbound §§ `YOUR_NUMBER` for inbound | The number that the user owns or wants to communicate with | ❓
|
30
|
+
`NEXMO_APPLICATION_PRIVATE_KEY` | Represents a string of the actual private key | ❎
|
31
|
+
`NEXMO_APPLICATION_PRIVATE_KEY_PATH` | Represents a string that relates to the private key directory | ❎
|
32
|
+
|
33
|
+
See also: [our replaceable values](/contribute/guides/writing-style-guide#replaceable-values) listed in the writing style guide.
|
34
|
+
|
35
|
+
### Future auto-magical user customisation
|
36
|
+
|
37
|
+
In the future we will customise code examples to the logged in user for example by adding API key and secret to the examples. To do this we need to be careful about how we use placeholders.
|
38
|
+
|
39
|
+
#### ✅ Good
|
40
|
+
|
41
|
+
{column:1/2}
|
42
|
+
This input:
|
43
|
+
|
44
|
+
```javascript
|
45
|
+
const nexmo = new Nexmo({
|
46
|
+
apiKey: NEXMO_API_KEY,
|
47
|
+
apiSecret: NEXMO_API_SECRET
|
48
|
+
})
|
49
|
+
```
|
50
|
+
{end}
|
51
|
+
{column:2/2}
|
52
|
+
Or this input:
|
53
|
+
|
54
|
+
```javascript
|
55
|
+
const nexmo = new Nexmo({
|
56
|
+
apiKey: 'NEXMO_API_KEY',
|
57
|
+
apiSecret: 'NEXMO_API_SECRET'
|
58
|
+
})
|
59
|
+
```
|
60
|
+
{end}
|
61
|
+
|
62
|
+
|
63
|
+
Would be converted to this into something like:
|
64
|
+
|
65
|
+
```javascript
|
66
|
+
const nexmo = new Nexmo({
|
67
|
+
apiKey: 'abc123',
|
68
|
+
apiSecret: 'abcdef123456789'
|
69
|
+
})
|
70
|
+
```
|
71
|
+
|
72
|
+
#### ❎ Bad
|
73
|
+
|
74
|
+
This input:
|
75
|
+
|
76
|
+
```javascript
|
77
|
+
NEXMO_API_KEY = process.env.NEXMO_API_KEY
|
78
|
+
NEXMO_API_SECRET = process.env.NEXMO_API_SECRET
|
79
|
+
|
80
|
+
// Something else
|
81
|
+
```
|
82
|
+
|
83
|
+
Would be converted to this invalid example:
|
84
|
+
|
85
|
+
```javascript
|
86
|
+
'abc123' = process.env.'abc123'
|
87
|
+
'abcdef123456789' = process.env.'abcdef123456789'
|
88
|
+
|
89
|
+
// Something else
|
90
|
+
```
|
91
|
+
|
92
|
+
### SMS Specific
|
93
|
+
|
94
|
+
#### Message Body
|
95
|
+
|
96
|
+
```
|
97
|
+
A test SMS sent [demonstrating <feature>] using the Nexmo SMS API
|
98
|
+
```
|
99
|
+
|
100
|
+
#### SenderID
|
101
|
+
|
102
|
+
```
|
103
|
+
Acme Inc
|
104
|
+
```
|
105
|
+
|
106
|
+
### Webhooks
|
107
|
+
|
108
|
+
The following URL paths should be used in examples that use Webhooks.
|
109
|
+
|
110
|
+
Path | Description
|
111
|
+
-- | --
|
112
|
+
`/webhooks/answer` | The application `answer` event URL
|
113
|
+
`/webhooks/event` | The application `event` event URL
|
114
|
+
|
115
|
+
Example code should always accept query string parameters for `GET` and `POST` requests.
|
116
|
+
|
117
|
+
Example code should always accept JSON for `POST` requests.
|
118
|
+
|
119
|
+
### NCCO examples
|
120
|
+
|
121
|
+
Below you can find static NCCO's that can be used in code examples. The source of these can be found in the `/public/ncco` directory of Nexmo Developer.
|
122
|
+
|
123
|
+
Example | URL
|
124
|
+
-- | --
|
125
|
+
Basic text-to-speech | <https://developer.nexmo.com/ncco/tts.json>
|
126
|
+
|
127
|
+
## Code
|
128
|
+
|
129
|
+
### Length
|
130
|
+
|
131
|
+
Where possible code should be kept to a maximum of 80 characters per-line.
|
132
|
+
|
133
|
+
The capacity before scrolling occurs is 101 characters however not all code examples are as wide as this.
|
134
|
+
|
135
|
+
```
|
136
|
+
----------------------- I am a line with 80 characters ------------------------
|
137
|
+
--------------------------------- I am a line with 101 characters ----------------------------------
|
138
|
+
```
|
139
|
+
|
140
|
+
### Code blocks
|
141
|
+
|
142
|
+
Normal code blocks are specified using three backticks at the start and end.
|
143
|
+
|
144
|
+
```
|
145
|
+
This is a normal code block.
|
146
|
+
|
147
|
+
It does not specify a language so is not syntax highlighted.
|
148
|
+
```
|
149
|
+
|
150
|
+
Here is some Ruby:
|
151
|
+
|
152
|
+
```ruby
|
153
|
+
def print_hi(name)
|
154
|
+
puts "Hi #{name}"
|
155
|
+
end
|
156
|
+
|
157
|
+
print_hi('Adam')
|
158
|
+
#=> prints 'Hi Adam' to STDOUT.
|
159
|
+
```
|
160
|
+
|
161
|
+
### Tabbed examples
|
162
|
+
|
163
|
+
Tabbed examples via the use of the `tabbed_examples` construct should no longer be used. Instead use [code snippets](/contribute/code-snippets/sample-code-snippet).
|
164
|
+
|
165
|
+
> Note: There are two formats of the `tabbed_examples` construct in current use, both of which are now deprecated.
|
166
|
+
|
167
|
+
### Linters, Formatters & Code Style Guides
|
168
|
+
|
169
|
+
Code throughout Nexmo Developer should be consistent. To help achieve this code examples should be tested with the following tools and against guides on their default configuration:
|
170
|
+
|
171
|
+
Language | Resource | Configuration
|
172
|
+
-- | -- | --
|
173
|
+
Node | [Standard JS](https://standardjs.com/) | Non configurable
|
174
|
+
Java | - | -
|
175
|
+
.NET | - | -
|
176
|
+
PHP | [PHPCS](https://github.com/squizlabs/PHP_CodeSniffer#installation) | [PSR-2](https://github.com/Nexmo/nexmo-php/blob/master/phpcs.xml)
|
177
|
+
Python | [YAPF](https://github.com/google/yapf) | Default
|
178
|
+
Ruby| [Rubocop](https://github.com/bbatsov/rubocop) | Default
|
179
|
+
|
180
|
+
### Languages
|
181
|
+
|
182
|
+
#### JavaScript
|
183
|
+
|
184
|
+
Documentation should be clear whether JavaScript code is intended to run on the server (using, say, node.js), the client, or both.
|
185
|
+
|
186
|
+
#### Python
|
187
|
+
|
188
|
+
Avoid code that is significantly different in Python 2 and 3. When this is unavoidable, abstract away the incompatible code to the smallest area possible and use [`__future__`](https://docs.python.org/2/library/__future__.html) to ensure backwards compatibility with Python 2.
|
189
|
+
|
190
|
+
Inbound HTTP calls should use a WSGI-compatible web framework, preferably the [Flask](http://flask.pocoo.org/) micro-framework. Explanations of how to integrate Nexmo APIs with [Django](https://www.djangoproject.com/) are sensible too.
|