phrase 0.4.33 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile +6 -0
- data/LICENSE +17 -18
- data/README.md +712 -220
- data/Rakefile +7 -4
- data/docs/Account.md +25 -0
- data/docs/AccountDetails.md +27 -0
- data/docs/AccountDetails1.md +17 -0
- data/docs/AccountsApi.md +136 -0
- data/docs/AffectedCount.md +17 -0
- data/docs/AffectedResources.md +17 -0
- data/docs/Authorization.md +31 -0
- data/docs/AuthorizationCreateParameters.md +21 -0
- data/docs/AuthorizationUpdateParameters.md +21 -0
- data/docs/AuthorizationWithToken.md +33 -0
- data/docs/AuthorizationWithToken1.md +17 -0
- data/docs/AuthorizationsApi.md +325 -0
- data/docs/BitbucketSync.md +27 -0
- data/docs/BitbucketSyncApi.md +200 -0
- data/docs/BitbucketSyncExportParameters.md +17 -0
- data/docs/BitbucketSyncExportResponse.md +17 -0
- data/docs/BitbucketSyncImportParameters.md +17 -0
- data/docs/BlacklistedKey.md +23 -0
- data/docs/BlacklistedKeyCreateParameters.md +17 -0
- data/docs/BlacklistedKeyUpdateParameters.md +17 -0
- data/docs/BlacklistedKeysApi.md +335 -0
- data/docs/Branch.md +29 -0
- data/docs/BranchCreateParameters.md +17 -0
- data/docs/BranchMergeParameters.md +17 -0
- data/docs/BranchUpdateParameters.md +17 -0
- data/docs/BranchesApi.md +465 -0
- data/docs/Comment.md +25 -0
- data/docs/CommentCreateParameters.md +19 -0
- data/docs/CommentMarkReadParameters.md +17 -0
- data/docs/CommentUpdateParameters.md +19 -0
- data/docs/CommentsApi.md +555 -0
- data/docs/Distribution.md +29 -0
- data/docs/DistributionCreateParameters.md +29 -0
- data/docs/DistributionPreview.md +29 -0
- data/docs/DistributionUpdateParameters.md +29 -0
- data/docs/DistributionsApi.md +335 -0
- data/docs/Format.md +35 -0
- data/docs/FormatsApi.md +69 -0
- data/docs/GitLabSyncApi.md +470 -0
- data/docs/GitlabSync.md +37 -0
- data/docs/GitlabSyncExport.md +19 -0
- data/docs/GitlabSyncExportParameters.md +17 -0
- data/docs/GitlabSyncHistory.md +25 -0
- data/docs/GitlabSyncImportParameters.md +17 -0
- data/docs/Glossary.md +25 -0
- data/docs/GlossaryApi.md +335 -0
- data/docs/GlossaryCreateParameters.md +21 -0
- data/docs/GlossaryTerm.md +31 -0
- data/docs/GlossaryTermCreateParameters.md +23 -0
- data/docs/GlossaryTermTranslation.md +25 -0
- data/docs/GlossaryTermTranslationCreateParameters.md +19 -0
- data/docs/GlossaryTermTranslationUpdateParameters.md +19 -0
- data/docs/GlossaryTermTranslationsApi.md +215 -0
- data/docs/GlossaryTermUpdateParameters.md +23 -0
- data/docs/GlossaryTermsApi.md +345 -0
- data/docs/GlossaryUpdateParameters.md +21 -0
- data/docs/Invitation.md +35 -0
- data/docs/InvitationCreateParameters.md +25 -0
- data/docs/InvitationUpdateParameters.md +23 -0
- data/docs/InvitationsApi.md +400 -0
- data/docs/Job.md +29 -0
- data/docs/JobCompleteParameters.md +17 -0
- data/docs/JobCreateParameters.md +27 -0
- data/docs/JobDetails.md +37 -0
- data/docs/JobDetails1.md +23 -0
- data/docs/JobKeysCreateParameters.md +19 -0
- data/docs/JobLocale.md +23 -0
- data/docs/JobLocaleCompleteParameters.md +17 -0
- data/docs/JobLocaleReopenParameters.md +17 -0
- data/docs/JobLocaleUpdateParameters.md +21 -0
- data/docs/JobLocalesApi.md +489 -0
- data/docs/JobLocalesCreateParameters.md +21 -0
- data/docs/JobPreview.md +21 -0
- data/docs/JobReopenParameters.md +17 -0
- data/docs/JobStartParameters.md +17 -0
- data/docs/JobUpdateParameters.md +23 -0
- data/docs/JobsApi.md +683 -0
- data/docs/KeyCreateParameters.md +45 -0
- data/docs/KeyPreview.md +21 -0
- data/docs/KeyUpdateParameters.md +45 -0
- data/docs/KeysApi.md +617 -0
- data/docs/KeysSearchParameters.md +25 -0
- data/docs/KeysTagParameters.md +23 -0
- data/docs/KeysUntagParameters.md +23 -0
- data/docs/Locale.md +35 -0
- data/docs/LocaleCreateParameters.md +35 -0
- data/docs/LocaleDetails.md +37 -0
- data/docs/LocaleDetails1.md +17 -0
- data/docs/LocalePreview.md +21 -0
- data/docs/LocaleStatistics.md +29 -0
- data/docs/LocaleUpdateParameters.md +35 -0
- data/docs/LocalesApi.md +433 -0
- data/docs/Member.md +25 -0
- data/docs/MemberUpdateParameters.md +23 -0
- data/docs/MembersApi.md +271 -0
- data/docs/OrderConfirmParameters.md +17 -0
- data/docs/OrderCreateParameters.md +43 -0
- data/docs/OrdersApi.md +341 -0
- data/docs/Project.md +29 -0
- data/docs/ProjectCreateParameters.md +27 -0
- data/docs/ProjectDetails.md +33 -0
- data/docs/ProjectDetails1.md +19 -0
- data/docs/ProjectLocales.md +27 -0
- data/docs/ProjectLocales1.md +17 -0
- data/docs/ProjectShort.md +25 -0
- data/docs/ProjectUpdateParameters.md +27 -0
- data/docs/ProjectsApi.md +325 -0
- data/docs/Release.md +37 -0
- data/docs/ReleaseCreateParameters.md +21 -0
- data/docs/ReleasePreview.md +37 -0
- data/docs/ReleaseUpdateParameters.md +21 -0
- data/docs/ReleasesApi.md +412 -0
- data/docs/Screenshot.md +29 -0
- data/docs/ScreenshotCreateParameters.md +21 -0
- data/docs/ScreenshotMarker.md +27 -0
- data/docs/ScreenshotMarkerCreateParameters.md +19 -0
- data/docs/ScreenshotMarkerUpdateParameters.md +19 -0
- data/docs/ScreenshotMarkersApi.md +341 -0
- data/docs/ScreenshotUpdateParameters.md +21 -0
- data/docs/ScreenshotsApi.md +335 -0
- data/docs/Space.md +27 -0
- data/docs/SpaceCreateParameters.md +17 -0
- data/docs/SpaceUpdateParameters.md +17 -0
- data/docs/SpacesApi.md +536 -0
- data/docs/SpacesProjectsCreateParameters.md +17 -0
- data/docs/StyleGuidesApi.md +335 -0
- data/docs/Styleguide.md +23 -0
- data/docs/StyleguideCreateParameters.md +41 -0
- data/docs/StyleguideDetails.md +49 -0
- data/docs/StyleguideDetails1.md +41 -0
- data/docs/StyleguidePreview.md +19 -0
- data/docs/StyleguideUpdateParameters.md +41 -0
- data/docs/Tag.md +23 -0
- data/docs/TagCreateParameters.md +19 -0
- data/docs/TagWithStats.md +25 -0
- data/docs/TagWithStats1.md +17 -0
- data/docs/TagWithStats1Statistics.md +23 -0
- data/docs/TagWithStats1Statistics1.md +19 -0
- data/docs/TagsApi.md +274 -0
- data/docs/Translation.md +37 -0
- data/docs/TranslationCreateParameters.md +31 -0
- data/docs/TranslationDetails.md +41 -0
- data/docs/TranslationDetails1.md +19 -0
- data/docs/TranslationExcludeParameters.md +17 -0
- data/docs/TranslationIncludeParameters.md +17 -0
- data/docs/TranslationKey.md +33 -0
- data/docs/TranslationKeyDetails.md +51 -0
- data/docs/TranslationKeyDetails1.md +33 -0
- data/docs/TranslationOrder.md +49 -0
- data/docs/TranslationReviewParameters.md +17 -0
- data/docs/TranslationUnverifyParameters.md +17 -0
- data/docs/TranslationUpdateParameters.md +27 -0
- data/docs/TranslationVerifyParameters.md +17 -0
- data/docs/TranslationVersion.md +31 -0
- data/docs/TranslationVersionWithUser.md +33 -0
- data/docs/TranslationVersionWithUser1.md +17 -0
- data/docs/TranslationsApi.md +1164 -0
- data/docs/TranslationsExcludeParameters.md +23 -0
- data/docs/TranslationsIncludeParameters.md +23 -0
- data/docs/TranslationsReviewParameters.md +19 -0
- data/docs/TranslationsSearchParameters.md +23 -0
- data/docs/TranslationsUnverifyParameters.md +23 -0
- data/docs/TranslationsVerifyParameters.md +23 -0
- data/docs/Upload.md +31 -0
- data/docs/UploadCreateParameters.md +45 -0
- data/docs/UploadSummary.md +31 -0
- data/docs/UploadsApi.md +232 -0
- data/docs/User.md +29 -0
- data/docs/UserPreview.md +21 -0
- data/docs/UsersApi.md +69 -0
- data/docs/VersionsHistoryApi.md +148 -0
- data/docs/Webhook.md +29 -0
- data/docs/WebhookCreateParameters.md +23 -0
- data/docs/WebhookUpdateParameters.md +23 -0
- data/docs/WebhooksApi.md +399 -0
- data/git_push.sh +58 -0
- data/lib/phrase.rb +197 -55
- data/lib/phrase/api/accounts_api.rb +142 -0
- data/lib/phrase/api/authorizations_api.rb +346 -0
- data/lib/phrase/api/bitbucket_sync_api.rb +219 -0
- data/lib/phrase/api/blacklisted_keys_api.rb +376 -0
- data/lib/phrase/api/branches_api.rb +524 -0
- data/lib/phrase/api/comments_api.rb +657 -0
- data/lib/phrase/api/distributions_api.rb +376 -0
- data/lib/phrase/api/formats_api.rb +70 -0
- data/lib/phrase/api/git_lab_sync_api.rb +510 -0
- data/lib/phrase/api/glossary_api.rb +376 -0
- data/lib/phrase/api/glossary_term_translations_api.rb +268 -0
- data/lib/phrase/api/glossary_terms_api.rb +406 -0
- data/lib/phrase/api/invitations_api.rb +448 -0
- data/lib/phrase/api/job_locales_api.rb +587 -0
- data/lib/phrase/api/jobs_api.rb +790 -0
- data/lib/phrase/api/keys_api.rb +700 -0
- data/lib/phrase/api/locales_api.rb +497 -0
- data/lib/phrase/api/members_api.rb +304 -0
- data/lib/phrase/api/orders_api.rb +385 -0
- data/lib/phrase/api/projects_api.rb +346 -0
- data/lib/phrase/api/releases_api.rb +484 -0
- data/lib/phrase/api/screenshot_markers_api.rb +394 -0
- data/lib/phrase/api/screenshots_api.rb +376 -0
- data/lib/phrase/api/spaces_api.rb +608 -0
- data/lib/phrase/api/style_guides_api.rb +376 -0
- data/lib/phrase/api/tags_api.rb +305 -0
- data/lib/phrase/api/translations_api.rb +1351 -0
- data/lib/phrase/api/uploads_api.rb +265 -0
- data/lib/phrase/api/users_api.rb +70 -0
- data/lib/phrase/api/versions_history_api.rb +172 -0
- data/lib/phrase/api/webhooks_api.rb +446 -0
- data/lib/phrase/api_client.rb +376 -0
- data/lib/phrase/api_error.rb +45 -0
- data/lib/phrase/configuration.rb +243 -0
- data/lib/phrase/models/account.rb +230 -0
- data/lib/phrase/models/account_details.rb +247 -0
- data/lib/phrase/models/account_details1.rb +194 -0
- data/lib/phrase/models/affected_count.rb +194 -0
- data/lib/phrase/models/affected_resources.rb +194 -0
- data/lib/phrase/models/authorization.rb +259 -0
- data/lib/phrase/models/authorization_create_parameters.rb +217 -0
- data/lib/phrase/models/authorization_update_parameters.rb +217 -0
- data/lib/phrase/models/authorization_with_token.rb +276 -0
- data/lib/phrase/models/authorization_with_token1.rb +194 -0
- data/lib/phrase/models/bitbucket_sync.rb +241 -0
- data/lib/phrase/models/bitbucket_sync_export_parameters.rb +195 -0
- data/lib/phrase/models/bitbucket_sync_export_response.rb +194 -0
- data/lib/phrase/models/bitbucket_sync_import_parameters.rb +195 -0
- data/lib/phrase/models/blacklisted_key.rb +221 -0
- data/lib/phrase/models/blacklisted_key_create_parameters.rb +195 -0
- data/lib/phrase/models/blacklisted_key_update_parameters.rb +195 -0
- data/lib/phrase/models/branch.rb +248 -0
- data/lib/phrase/models/branch_create_parameters.rb +195 -0
- data/lib/phrase/models/branch_merge_parameters.rb +195 -0
- data/lib/phrase/models/branch_update_parameters.rb +195 -0
- data/lib/phrase/models/comment.rb +230 -0
- data/lib/phrase/models/comment_create_parameters.rb +205 -0
- data/lib/phrase/models/comment_mark_read_parameters.rb +195 -0
- data/lib/phrase/models/comment_update_parameters.rb +205 -0
- data/lib/phrase/models/distribution.rb +252 -0
- data/lib/phrase/models/distribution_create_parameters.rb +259 -0
- data/lib/phrase/models/distribution_preview.rb +250 -0
- data/lib/phrase/models/distribution_update_parameters.rb +259 -0
- data/lib/phrase/models/format.rb +275 -0
- data/lib/phrase/models/gitlab_sync.rb +284 -0
- data/lib/phrase/models/gitlab_sync_export.rb +203 -0
- data/lib/phrase/models/gitlab_sync_export_parameters.rb +195 -0
- data/lib/phrase/models/gitlab_sync_history.rb +232 -0
- data/lib/phrase/models/gitlab_sync_import_parameters.rb +195 -0
- data/lib/phrase/models/glossary.rb +232 -0
- data/lib/phrase/models/glossary_create_parameters.rb +217 -0
- data/lib/phrase/models/glossary_term.rb +259 -0
- data/lib/phrase/models/glossary_term_create_parameters.rb +225 -0
- data/lib/phrase/models/glossary_term_translation.rb +230 -0
- data/lib/phrase/models/glossary_term_translation_create_parameters.rb +205 -0
- data/lib/phrase/models/glossary_term_translation_update_parameters.rb +205 -0
- data/lib/phrase/models/glossary_term_update_parameters.rb +225 -0
- data/lib/phrase/models/glossary_update_parameters.rb +217 -0
- data/lib/phrase/models/invitation.rb +279 -0
- data/lib/phrase/models/invitation_create_parameters.rb +237 -0
- data/lib/phrase/models/invitation_update_parameters.rb +227 -0
- data/lib/phrase/models/job.rb +248 -0
- data/lib/phrase/models/job_complete_parameters.rb +195 -0
- data/lib/phrase/models/job_create_parameters.rb +249 -0
- data/lib/phrase/models/job_details.rb +296 -0
- data/lib/phrase/models/job_details1.rb +225 -0
- data/lib/phrase/models/job_keys_create_parameters.rb +207 -0
- data/lib/phrase/models/job_locale.rb +223 -0
- data/lib/phrase/models/job_locale_complete_parameters.rb +195 -0
- data/lib/phrase/models/job_locale_reopen_parameters.rb +195 -0
- data/lib/phrase/models/job_locale_update_parameters.rb +217 -0
- data/lib/phrase/models/job_locales_create_parameters.rb +217 -0
- data/lib/phrase/models/job_preview.rb +212 -0
- data/lib/phrase/models/job_reopen_parameters.rb +195 -0
- data/lib/phrase/models/job_start_parameters.rb +195 -0
- data/lib/phrase/models/job_update_parameters.rb +225 -0
- data/lib/phrase/models/key_create_parameters.rb +335 -0
- data/lib/phrase/models/key_preview.rb +212 -0
- data/lib/phrase/models/key_update_parameters.rb +335 -0
- data/lib/phrase/models/keys_search_parameters.rb +235 -0
- data/lib/phrase/models/keys_tag_parameters.rb +225 -0
- data/lib/phrase/models/keys_untag_parameters.rb +225 -0
- data/lib/phrase/models/locale.rb +277 -0
- data/lib/phrase/models/locale_create_parameters.rb +285 -0
- data/lib/phrase/models/locale_details.rb +294 -0
- data/lib/phrase/models/locale_details1.rb +194 -0
- data/lib/phrase/models/locale_preview.rb +212 -0
- data/lib/phrase/models/locale_statistics.rb +248 -0
- data/lib/phrase/models/locale_update_parameters.rb +285 -0
- data/lib/phrase/models/member.rb +232 -0
- data/lib/phrase/models/member_update_parameters.rb +227 -0
- data/lib/phrase/models/order_confirm_parameters.rb +195 -0
- data/lib/phrase/models/order_create_parameters.rb +327 -0
- data/lib/phrase/models/project.rb +248 -0
- data/lib/phrase/models/project_create_parameters.rb +245 -0
- data/lib/phrase/models/project_details.rb +274 -0
- data/lib/phrase/models/project_details1.rb +203 -0
- data/lib/phrase/models/project_locales.rb +249 -0
- data/lib/phrase/models/project_locales1.rb +196 -0
- data/lib/phrase/models/project_short.rb +230 -0
- data/lib/phrase/models/project_update_parameters.rb +245 -0
- data/lib/phrase/models/release.rb +290 -0
- data/lib/phrase/models/release_create_parameters.rb +217 -0
- data/lib/phrase/models/release_preview.rb +290 -0
- data/lib/phrase/models/release_update_parameters.rb +217 -0
- data/lib/phrase/models/screenshot.rb +248 -0
- data/lib/phrase/models/screenshot_create_parameters.rb +215 -0
- data/lib/phrase/models/screenshot_marker.rb +239 -0
- data/lib/phrase/models/screenshot_marker_create_parameters.rb +205 -0
- data/lib/phrase/models/screenshot_marker_update_parameters.rb +205 -0
- data/lib/phrase/models/screenshot_update_parameters.rb +215 -0
- data/lib/phrase/models/space.rb +241 -0
- data/lib/phrase/models/space_create_parameters.rb +195 -0
- data/lib/phrase/models/space_update_parameters.rb +195 -0
- data/lib/phrase/models/spaces_projects_create_parameters.rb +195 -0
- data/lib/phrase/models/styleguide.rb +221 -0
- data/lib/phrase/models/styleguide_create_parameters.rb +315 -0
- data/lib/phrase/models/styleguide_details.rb +346 -0
- data/lib/phrase/models/styleguide_details1.rb +302 -0
- data/lib/phrase/models/styleguide_preview.rb +203 -0
- data/lib/phrase/models/styleguide_update_parameters.rb +315 -0
- data/lib/phrase/models/tag.rb +221 -0
- data/lib/phrase/models/tag_create_parameters.rb +205 -0
- data/lib/phrase/models/tag_with_stats.rb +240 -0
- data/lib/phrase/models/tag_with_stats1.rb +196 -0
- data/lib/phrase/models/tag_with_stats1_statistics.rb +221 -0
- data/lib/phrase/models/tag_with_stats1_statistics1.rb +203 -0
- data/lib/phrase/models/translation.rb +286 -0
- data/lib/phrase/models/translation_create_parameters.rb +265 -0
- data/lib/phrase/models/translation_details.rb +312 -0
- data/lib/phrase/models/translation_details1.rb +203 -0
- data/lib/phrase/models/translation_exclude_parameters.rb +195 -0
- data/lib/phrase/models/translation_include_parameters.rb +195 -0
- data/lib/phrase/models/translation_key.rb +268 -0
- data/lib/phrase/models/translation_key_details.rb +357 -0
- data/lib/phrase/models/translation_key_details1.rb +266 -0
- data/lib/phrase/models/translation_order.rb +340 -0
- data/lib/phrase/models/translation_review_parameters.rb +195 -0
- data/lib/phrase/models/translation_unverify_parameters.rb +195 -0
- data/lib/phrase/models/translation_update_parameters.rb +245 -0
- data/lib/phrase/models/translation_verify_parameters.rb +195 -0
- data/lib/phrase/models/translation_version.rb +257 -0
- data/lib/phrase/models/translation_version_with_user.rb +274 -0
- data/lib/phrase/models/translation_version_with_user1.rb +194 -0
- data/lib/phrase/models/translations_exclude_parameters.rb +225 -0
- data/lib/phrase/models/translations_include_parameters.rb +225 -0
- data/lib/phrase/models/translations_review_parameters.rb +205 -0
- data/lib/phrase/models/translations_search_parameters.rb +225 -0
- data/lib/phrase/models/translations_unverify_parameters.rb +225 -0
- data/lib/phrase/models/translations_verify_parameters.rb +225 -0
- data/lib/phrase/models/upload.rb +257 -0
- data/lib/phrase/models/upload_create_parameters.rb +339 -0
- data/lib/phrase/models/upload_summary.rb +257 -0
- data/lib/phrase/models/user.rb +248 -0
- data/lib/phrase/models/user_preview.rb +212 -0
- data/lib/phrase/models/webhook.rb +250 -0
- data/lib/phrase/models/webhook_create_parameters.rb +225 -0
- data/lib/phrase/models/webhook_update_parameters.rb +225 -0
- data/lib/phrase/response.rb +41 -0
- data/lib/phrase/version.rb +1 -1
- data/phrase.gemspec +27 -27
- data/spec/api/accounts_api_spec.rb +50 -0
- data/spec/api/authorizations_api_spec.rb +90 -0
- data/spec/api/bitbucket_sync_api_spec.rb +64 -0
- data/spec/api/blacklisted_keys_api_spec.rb +95 -0
- data/spec/api/branches_api_spec.rb +124 -0
- data/spec/api/comments_api_spec.rb +151 -0
- data/spec/api/distributions_api_spec.rb +95 -0
- data/spec/api/formats_api_spec.rb +35 -0
- data/spec/api/git_lab_sync_api_spec.rb +125 -0
- data/spec/api/glossary_api_spec.rb +95 -0
- data/spec/api/glossary_term_translations_api_spec.rb +72 -0
- data/spec/api/glossary_terms_api_spec.rb +100 -0
- data/spec/api/invitations_api_spec.rb +109 -0
- data/spec/api/job_locales_api_spec.rb +135 -0
- data/spec/api/jobs_api_spec.rb +177 -0
- data/spec/api/keys_api_spec.rb +162 -0
- data/spec/api/locales_api_spec.rb +126 -0
- data/spec/api/members_api_spec.rb +81 -0
- data/spec/api/orders_api_spec.rb +98 -0
- data/spec/api/projects_api_spec.rb +90 -0
- data/spec/api/releases_api_spec.rb +115 -0
- data/spec/api/screenshot_markers_api_spec.rb +98 -0
- data/spec/api/screenshots_api_spec.rb +95 -0
- data/spec/api/spaces_api_spec.rb +141 -0
- data/spec/api/style_guides_api_spec.rb +95 -0
- data/spec/api/tags_api_spec.rb +83 -0
- data/spec/api/translations_api_spec.rb +287 -0
- data/spec/api/uploads_api_spec.rb +80 -0
- data/spec/api/users_api_spec.rb +35 -0
- data/spec/api/versions_history_api_spec.rb +56 -0
- data/spec/api/webhooks_api_spec.rb +109 -0
- data/spec/api_client_spec.rb +214 -0
- data/spec/configuration_spec.rb +30 -0
- data/spec/models/account_details1_spec.rb +29 -0
- data/spec/models/account_details_spec.rb +59 -0
- data/spec/models/account_spec.rb +53 -0
- data/spec/models/affected_count_spec.rb +29 -0
- data/spec/models/affected_resources_spec.rb +29 -0
- data/spec/models/authorization_create_parameters_spec.rb +41 -0
- data/spec/models/authorization_spec.rb +71 -0
- data/spec/models/authorization_update_parameters_spec.rb +41 -0
- data/spec/models/authorization_with_token1_spec.rb +29 -0
- data/spec/models/authorization_with_token_spec.rb +77 -0
- data/spec/models/bitbucket_sync_export_parameters_spec.rb +29 -0
- data/spec/models/bitbucket_sync_export_response_spec.rb +29 -0
- data/spec/models/bitbucket_sync_import_parameters_spec.rb +29 -0
- data/spec/models/bitbucket_sync_spec.rb +59 -0
- data/spec/models/blacklisted_key_create_parameters_spec.rb +29 -0
- data/spec/models/blacklisted_key_spec.rb +47 -0
- data/spec/models/blacklisted_key_update_parameters_spec.rb +29 -0
- data/spec/models/branch_create_parameters_spec.rb +29 -0
- data/spec/models/branch_merge_parameters_spec.rb +29 -0
- data/spec/models/branch_spec.rb +65 -0
- data/spec/models/branch_update_parameters_spec.rb +29 -0
- data/spec/models/comment_create_parameters_spec.rb +35 -0
- data/spec/models/comment_mark_read_parameters_spec.rb +29 -0
- data/spec/models/comment_spec.rb +53 -0
- data/spec/models/comment_update_parameters_spec.rb +35 -0
- data/spec/models/distribution_create_parameters_spec.rb +65 -0
- data/spec/models/distribution_preview_spec.rb +65 -0
- data/spec/models/distribution_spec.rb +65 -0
- data/spec/models/distribution_update_parameters_spec.rb +65 -0
- data/spec/models/format_spec.rb +83 -0
- data/spec/models/gitlab_sync_export_parameters_spec.rb +29 -0
- data/spec/models/gitlab_sync_export_spec.rb +35 -0
- data/spec/models/gitlab_sync_history_spec.rb +53 -0
- data/spec/models/gitlab_sync_import_parameters_spec.rb +29 -0
- data/spec/models/gitlab_sync_spec.rb +89 -0
- data/spec/models/glossary_create_parameters_spec.rb +41 -0
- data/spec/models/glossary_spec.rb +53 -0
- data/spec/models/glossary_term_create_parameters_spec.rb +47 -0
- data/spec/models/glossary_term_spec.rb +71 -0
- data/spec/models/glossary_term_translation_create_parameters_spec.rb +35 -0
- data/spec/models/glossary_term_translation_spec.rb +53 -0
- data/spec/models/glossary_term_translation_update_parameters_spec.rb +35 -0
- data/spec/models/glossary_term_update_parameters_spec.rb +47 -0
- data/spec/models/glossary_update_parameters_spec.rb +41 -0
- data/spec/models/invitation_create_parameters_spec.rb +53 -0
- data/spec/models/invitation_spec.rb +83 -0
- data/spec/models/invitation_update_parameters_spec.rb +47 -0
- data/spec/models/job_complete_parameters_spec.rb +29 -0
- data/spec/models/job_create_parameters_spec.rb +59 -0
- data/spec/models/job_details1_spec.rb +47 -0
- data/spec/models/job_details_spec.rb +89 -0
- data/spec/models/job_keys_create_parameters_spec.rb +35 -0
- data/spec/models/job_locale_complete_parameters_spec.rb +29 -0
- data/spec/models/job_locale_reopen_parameters_spec.rb +29 -0
- data/spec/models/job_locale_spec.rb +47 -0
- data/spec/models/job_locale_update_parameters_spec.rb +41 -0
- data/spec/models/job_locales_create_parameters_spec.rb +41 -0
- data/spec/models/job_preview_spec.rb +41 -0
- data/spec/models/job_reopen_parameters_spec.rb +29 -0
- data/spec/models/job_spec.rb +65 -0
- data/spec/models/job_start_parameters_spec.rb +29 -0
- data/spec/models/job_update_parameters_spec.rb +47 -0
- data/spec/models/key_create_parameters_spec.rb +113 -0
- data/spec/models/key_preview_spec.rb +41 -0
- data/spec/models/key_update_parameters_spec.rb +113 -0
- data/spec/models/keys_search_parameters_spec.rb +53 -0
- data/spec/models/keys_tag_parameters_spec.rb +47 -0
- data/spec/models/keys_untag_parameters_spec.rb +47 -0
- data/spec/models/locale_create_parameters_spec.rb +83 -0
- data/spec/models/locale_details1_spec.rb +29 -0
- data/spec/models/locale_details_spec.rb +89 -0
- data/spec/models/locale_preview_spec.rb +41 -0
- data/spec/models/locale_spec.rb +83 -0
- data/spec/models/locale_statistics_spec.rb +65 -0
- data/spec/models/locale_update_parameters_spec.rb +83 -0
- data/spec/models/member_spec.rb +53 -0
- data/spec/models/member_update_parameters_spec.rb +47 -0
- data/spec/models/order_confirm_parameters_spec.rb +29 -0
- data/spec/models/order_create_parameters_spec.rb +107 -0
- data/spec/models/project_create_parameters_spec.rb +59 -0
- data/spec/models/project_details1_spec.rb +35 -0
- data/spec/models/project_details_spec.rb +77 -0
- data/spec/models/project_locales1_spec.rb +29 -0
- data/spec/models/project_locales_spec.rb +59 -0
- data/spec/models/project_short_spec.rb +53 -0
- data/spec/models/project_spec.rb +65 -0
- data/spec/models/project_update_parameters_spec.rb +59 -0
- data/spec/models/release_create_parameters_spec.rb +41 -0
- data/spec/models/release_preview_spec.rb +89 -0
- data/spec/models/release_spec.rb +89 -0
- data/spec/models/release_update_parameters_spec.rb +41 -0
- data/spec/models/screenshot_create_parameters_spec.rb +41 -0
- data/spec/models/screenshot_marker_create_parameters_spec.rb +35 -0
- data/spec/models/screenshot_marker_spec.rb +59 -0
- data/spec/models/screenshot_marker_update_parameters_spec.rb +35 -0
- data/spec/models/screenshot_spec.rb +65 -0
- data/spec/models/screenshot_update_parameters_spec.rb +41 -0
- data/spec/models/space_create_parameters_spec.rb +29 -0
- data/spec/models/space_spec.rb +59 -0
- data/spec/models/space_update_parameters_spec.rb +29 -0
- data/spec/models/spaces_projects_create_parameters_spec.rb +29 -0
- data/spec/models/styleguide_create_parameters_spec.rb +101 -0
- data/spec/models/styleguide_details1_spec.rb +101 -0
- data/spec/models/styleguide_details_spec.rb +125 -0
- data/spec/models/styleguide_preview_spec.rb +35 -0
- data/spec/models/styleguide_spec.rb +47 -0
- data/spec/models/styleguide_update_parameters_spec.rb +101 -0
- data/spec/models/tag_create_parameters_spec.rb +35 -0
- data/spec/models/tag_spec.rb +47 -0
- data/spec/models/tag_with_stats1_spec.rb +29 -0
- data/spec/models/tag_with_stats1_statistics1_spec.rb +35 -0
- data/spec/models/tag_with_stats1_statistics_spec.rb +47 -0
- data/spec/models/tag_with_stats_spec.rb +53 -0
- data/spec/models/translation_create_parameters_spec.rb +71 -0
- data/spec/models/translation_details1_spec.rb +35 -0
- data/spec/models/translation_details_spec.rb +101 -0
- data/spec/models/translation_exclude_parameters_spec.rb +29 -0
- data/spec/models/translation_include_parameters_spec.rb +29 -0
- data/spec/models/translation_key_details1_spec.rb +77 -0
- data/spec/models/translation_key_details_spec.rb +131 -0
- data/spec/models/translation_key_spec.rb +77 -0
- data/spec/models/translation_order_spec.rb +125 -0
- data/spec/models/translation_review_parameters_spec.rb +29 -0
- data/spec/models/translation_spec.rb +89 -0
- data/spec/models/translation_unverify_parameters_spec.rb +29 -0
- data/spec/models/translation_update_parameters_spec.rb +59 -0
- data/spec/models/translation_verify_parameters_spec.rb +29 -0
- data/spec/models/translation_version_spec.rb +71 -0
- data/spec/models/translation_version_with_user1_spec.rb +29 -0
- data/spec/models/translation_version_with_user_spec.rb +77 -0
- data/spec/models/translations_exclude_parameters_spec.rb +47 -0
- data/spec/models/translations_include_parameters_spec.rb +47 -0
- data/spec/models/translations_review_parameters_spec.rb +35 -0
- data/spec/models/translations_search_parameters_spec.rb +47 -0
- data/spec/models/translations_unverify_parameters_spec.rb +47 -0
- data/spec/models/translations_verify_parameters_spec.rb +47 -0
- data/spec/models/upload_create_parameters_spec.rb +113 -0
- data/spec/models/upload_spec.rb +71 -0
- data/spec/models/upload_summary_spec.rb +71 -0
- data/spec/models/user_preview_spec.rb +41 -0
- data/spec/models/user_spec.rb +65 -0
- data/spec/models/webhook_create_parameters_spec.rb +47 -0
- data/spec/models/webhook_spec.rb +65 -0
- data/spec/models/webhook_update_parameters_spec.rb +47 -0
- data/spec/spec_helper.rb +99 -0
- metadata +759 -190
- data/.gitignore +0 -25
- data/.travis.yml +0 -6
- data/Guardfile +0 -29
- data/bin/phrase +0 -8
- data/cacert.pem +0 -3366
- data/lib/ext/all.rb +0 -5
- data/lib/ext/hash.rb +0 -8
- data/lib/ext/object.rb +0 -130
- data/lib/ext/try.rb +0 -57
- data/lib/generators/phrase/install_generator.rb +0 -37
- data/lib/generators/templates/README +0 -11
- data/lib/generators/templates/phrase.rb +0 -21
- data/lib/phrase/adapters/fast_gettext.rb +0 -25
- data/lib/phrase/adapters/i18n.rb +0 -12
- data/lib/phrase/api.rb +0 -7
- data/lib/phrase/api/client.rb +0 -308
- data/lib/phrase/api/client/http.rb +0 -56
- data/lib/phrase/api/config.rb +0 -34
- data/lib/phrase/api/exceptions.rb +0 -9
- data/lib/phrase/api/query_params.rb +0 -22
- data/lib/phrase/backend.rb +0 -7
- data/lib/phrase/backend/base.rb +0 -6
- data/lib/phrase/backend/phrase_service.rb +0 -163
- data/lib/phrase/cache.rb +0 -34
- data/lib/phrase/config.rb +0 -94
- data/lib/phrase/delegate.rb +0 -36
- data/lib/phrase/delegate/fast_gettext.rb +0 -27
- data/lib/phrase/delegate/i18n.rb +0 -166
- data/lib/phrase/engine.rb +0 -17
- data/lib/phrase/formats.rb +0 -176
- data/lib/phrase/formats/angular_translate.rb +0 -19
- data/lib/phrase/formats/csv.rb +0 -19
- data/lib/phrase/formats/custom.rb +0 -40
- data/lib/phrase/formats/gettext.rb +0 -27
- data/lib/phrase/formats/gettext_template.rb +0 -19
- data/lib/phrase/formats/go_i18n.rb +0 -23
- data/lib/phrase/formats/ini.rb +0 -19
- data/lib/phrase/formats/json.rb +0 -19
- data/lib/phrase/formats/laravel.rb +0 -19
- data/lib/phrase/formats/mozilla_properties.rb +0 -8
- data/lib/phrase/formats/nested_json.rb +0 -19
- data/lib/phrase/formats/node_json.rb +0 -23
- data/lib/phrase/formats/php_array.rb +0 -19
- data/lib/phrase/formats/play_properties.rb +0 -15
- data/lib/phrase/formats/plist.rb +0 -19
- data/lib/phrase/formats/properties.rb +0 -19
- data/lib/phrase/formats/properties_xml.rb +0 -19
- data/lib/phrase/formats/qt_phrase_book.rb +0 -19
- data/lib/phrase/formats/qt_translation_source.rb +0 -19
- data/lib/phrase/formats/resx.rb +0 -19
- data/lib/phrase/formats/resx_windowsphone.rb +0 -19
- data/lib/phrase/formats/simple_json.rb +0 -19
- data/lib/phrase/formats/strings.rb +0 -45
- data/lib/phrase/formats/stringsdict.rb +0 -15
- data/lib/phrase/formats/tmx.rb +0 -19
- data/lib/phrase/formats/windows8_resource.rb +0 -19
- data/lib/phrase/formats/xliff.rb +0 -19
- data/lib/phrase/formats/xml.rb +0 -49
- data/lib/phrase/formats/yaml.rb +0 -19
- data/lib/phrase/formats/yaml_symfony.rb +0 -19
- data/lib/phrase/formats/yaml_symfony2.rb +0 -8
- data/lib/phrase/hash_flattener.rb +0 -21
- data/lib/phrase/tool.rb +0 -46
- data/lib/phrase/tool/commands.rb +0 -56
- data/lib/phrase/tool/commands/base.rb +0 -73
- data/lib/phrase/tool/commands/init.rb +0 -51
- data/lib/phrase/tool/commands/pull.rb +0 -109
- data/lib/phrase/tool/commands/push.rb +0 -163
- data/lib/phrase/tool/commands/show_help.rb +0 -26
- data/lib/phrase/tool/commands/show_version.rb +0 -17
- data/lib/phrase/tool/commands/tags.rb +0 -29
- data/lib/phrase/tool/config.rb +0 -122
- data/lib/phrase/tool/encoding_detector.rb +0 -17
- data/lib/phrase/tool/locale.rb +0 -41
- data/lib/phrase/tool/options.rb +0 -32
- data/lib/phrase/tool/options_factory.rb +0 -150
- data/lib/phrase/tool/tag_validator.rb +0 -9
- data/lib/phrase/view_helpers.rb +0 -19
data/lib/ext/all.rb
DELETED
data/lib/ext/hash.rb
DELETED
data/lib/ext/object.rb
DELETED
@@ -1,130 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
class Object
|
4
|
-
# An object is blank if it's false, empty, or a whitespace string.
|
5
|
-
# For example, "", " ", +nil+, [], and {} are all blank.
|
6
|
-
#
|
7
|
-
# This simplifies:
|
8
|
-
#
|
9
|
-
# if address.nil? || address.empty?
|
10
|
-
#
|
11
|
-
# ...to:
|
12
|
-
#
|
13
|
-
# if address.blank?
|
14
|
-
def blank?
|
15
|
-
respond_to?(:empty?) ? empty? : !self
|
16
|
-
end
|
17
|
-
|
18
|
-
# An object is present if it's not <tt>blank?</tt>.
|
19
|
-
def present?
|
20
|
-
!blank?
|
21
|
-
end
|
22
|
-
|
23
|
-
# Returns object if it's <tt>present?</tt> otherwise returns +nil+.
|
24
|
-
# <tt>object.presence</tt> is equivalent to <tt>object.present? ? object : nil</tt>.
|
25
|
-
#
|
26
|
-
# This is handy for any representation of objects where blank is the same
|
27
|
-
# as not present at all. For example, this simplifies a common check for
|
28
|
-
# HTTP POST/query parameters:
|
29
|
-
#
|
30
|
-
# state = params[:state] if params[:state].present?
|
31
|
-
# country = params[:country] if params[:country].present?
|
32
|
-
# region = state || country || 'US'
|
33
|
-
#
|
34
|
-
# ...becomes:
|
35
|
-
#
|
36
|
-
# region = params[:state].presence || params[:country].presence || 'US'
|
37
|
-
def presence
|
38
|
-
self if present?
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
class NilClass
|
43
|
-
# +nil+ is blank:
|
44
|
-
#
|
45
|
-
# nil.blank? # => true
|
46
|
-
#
|
47
|
-
def blank?
|
48
|
-
true
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
class FalseClass
|
53
|
-
# +false+ is blank:
|
54
|
-
#
|
55
|
-
# false.blank? # => true
|
56
|
-
#
|
57
|
-
def blank?
|
58
|
-
true
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
class TrueClass
|
63
|
-
# +true+ is not blank:
|
64
|
-
#
|
65
|
-
# true.blank? # => false
|
66
|
-
#
|
67
|
-
def blank?
|
68
|
-
false
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
class Array
|
73
|
-
# An array is blank if it's empty:
|
74
|
-
#
|
75
|
-
# [].blank? # => true
|
76
|
-
# [1,2,3].blank? # => false
|
77
|
-
#
|
78
|
-
alias_method :blank?, :empty?
|
79
|
-
end
|
80
|
-
|
81
|
-
class Hash
|
82
|
-
# A hash is blank if it's empty:
|
83
|
-
#
|
84
|
-
# {}.blank? # => true
|
85
|
-
# {:key => 'value'}.blank? # => false
|
86
|
-
#
|
87
|
-
alias_method :blank?, :empty?
|
88
|
-
end
|
89
|
-
|
90
|
-
class String
|
91
|
-
if defined?(Encoding) && "".respond_to?(:encode)
|
92
|
-
def encoding_aware?
|
93
|
-
true
|
94
|
-
end
|
95
|
-
else
|
96
|
-
def encoding_aware?
|
97
|
-
false
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
# 0x3000: fullwidth whitespace
|
102
|
-
NON_WHITESPACE_REGEXP = %r![^\s#{[0x3000].pack("U")}]!
|
103
|
-
|
104
|
-
# A string is blank if it's empty or contains whitespaces only:
|
105
|
-
#
|
106
|
-
# "".blank? # => true
|
107
|
-
# " ".blank? # => true
|
108
|
-
# " ".blank? # => true
|
109
|
-
# " something here ".blank? # => false
|
110
|
-
#
|
111
|
-
def blank?
|
112
|
-
# 1.8 does not takes [:space:] properly
|
113
|
-
if encoding_aware?
|
114
|
-
self !~ /[^[:space:]]/
|
115
|
-
else
|
116
|
-
self !~ NON_WHITESPACE_REGEXP
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
class Numeric #:nodoc:
|
122
|
-
# No number is blank:
|
123
|
-
#
|
124
|
-
# 1.blank? # => false
|
125
|
-
# 0.blank? # => false
|
126
|
-
#
|
127
|
-
def blank?
|
128
|
-
false
|
129
|
-
end
|
130
|
-
end
|
data/lib/ext/try.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
class Object
|
2
|
-
# Invokes the method identified by the symbol +method+, passing it any arguments
|
3
|
-
# and/or the block specified, just like the regular Ruby <tt>Object#send</tt> does.
|
4
|
-
#
|
5
|
-
# *Unlike* that method however, a +NoMethodError+ exception will *not* be raised
|
6
|
-
# and +nil+ will be returned instead, if the receiving object is a +nil+ object or NilClass.
|
7
|
-
#
|
8
|
-
# If try is called without a method to call, it will yield any given block with the object.
|
9
|
-
#
|
10
|
-
# Please also note that +try+ is defined on +Object+, therefore it won't work with
|
11
|
-
# subclasses of +BasicObject+. For example, using try with +SimpleDelegator+ will
|
12
|
-
# delegate +try+ to target instead of calling it on delegator itself.
|
13
|
-
#
|
14
|
-
# ==== Examples
|
15
|
-
#
|
16
|
-
# Without +try+
|
17
|
-
# @person && @person.name
|
18
|
-
# or
|
19
|
-
# @person ? @person.name : nil
|
20
|
-
#
|
21
|
-
# With +try+
|
22
|
-
# @person.try(:name)
|
23
|
-
#
|
24
|
-
# +try+ also accepts arguments and/or a block, for the method it is trying
|
25
|
-
# Person.try(:find, 1)
|
26
|
-
# @people.try(:collect) {|p| p.name}
|
27
|
-
#
|
28
|
-
# Without a method argument try will yield to the block unless the receiver is nil.
|
29
|
-
# @person.try { |p| "#{p.first_name} #{p.last_name}" }
|
30
|
-
#--
|
31
|
-
# +try+ behaves like +Object#send+, unless called on +NilClass+.
|
32
|
-
def try(*a, &b)
|
33
|
-
if a.empty? && block_given?
|
34
|
-
yield self
|
35
|
-
else
|
36
|
-
__send__(*a, &b)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
class NilClass
|
42
|
-
# Calling +try+ on +nil+ always returns +nil+.
|
43
|
-
# It becomes specially helpful when navigating through associations that may return +nil+.
|
44
|
-
#
|
45
|
-
# === Examples
|
46
|
-
#
|
47
|
-
# nil.try(:name) # => nil
|
48
|
-
#
|
49
|
-
# Without +try+
|
50
|
-
# @person && !@person.children.blank? && @person.children.first.name
|
51
|
-
#
|
52
|
-
# With +try+
|
53
|
-
# @person.try(:children).try(:first).try(:name)
|
54
|
-
def try(*args)
|
55
|
-
nil
|
56
|
-
end
|
57
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
require "phrase/tool"
|
4
|
-
|
5
|
-
module Phrase
|
6
|
-
module Generators
|
7
|
-
class InstallGenerator < Rails::Generators::Base
|
8
|
-
source_root File.expand_path("../../templates", __FILE__)
|
9
|
-
|
10
|
-
desc "Creates a PhraseApp initializer for your application."
|
11
|
-
class_option :auth_token, type: :string, desc: "Your PhraseApp project authentication token", required: true
|
12
|
-
class_option :default_locale, type: :string, desc: "The name of yout default (source) locale, usually 'en'", required: false, default: "en"
|
13
|
-
|
14
|
-
def copy_initializer
|
15
|
-
template "phrase.rb", "config/initializers/phrase.rb"
|
16
|
-
end
|
17
|
-
|
18
|
-
def init_phrase
|
19
|
-
# It is probably preferred to just invoke phrase init via #run
|
20
|
-
# but this version can be mocked so much better via VCR
|
21
|
-
tool = Phrase::Tool.new(["init", "--secret=#{options[:auth_token]}", "--default-locale=#{options[:default_locale]}"])
|
22
|
-
tool.run
|
23
|
-
end
|
24
|
-
|
25
|
-
def set_locale_load_path
|
26
|
-
application(nil, env: "production") do
|
27
|
-
"# Uncomment the new i18n load path setting if you have prepared your locale files to be served from PhraseApp\n" <<
|
28
|
-
" # config.i18n.load_path = Dir[Rails.root.join('phrase', 'locales', '*.{yml}').to_s]\n"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def show_readme
|
33
|
-
readme "README" if behavior == :invoke
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
===============================================================================
|
2
|
-
Welcome to PhraseApp
|
3
|
-
|
4
|
-
Your smart companion for becoming a global player.
|
5
|
-
|
6
|
-
The translation management software for multilingual websites, mobile and desktop applications.
|
7
|
-
|
8
|
-
Login: https://phraseapp.com/account/login
|
9
|
-
Support: https://phraseapp.com/support
|
10
|
-
Documentation: https://phraseapp.com/docs
|
11
|
-
===============================================================================
|
@@ -1,21 +0,0 @@
|
|
1
|
-
Phrase.configure do |config|
|
2
|
-
# Enable or disable the PhraseApp context editor in general
|
3
|
-
config.enabled = true
|
4
|
-
|
5
|
-
# Fetch your project auth token after creating your first project
|
6
|
-
# in the PhraseApp translation center.
|
7
|
-
config.auth_token = "<%= options[:auth_token] %>"
|
8
|
-
|
9
|
-
# Configure an array of key names that should not be handled
|
10
|
-
# with PhraseApp. This is useful when a key causes problems
|
11
|
-
# (Such as keys that are used by Rails internally)
|
12
|
-
config.ignored_keys = ["number.*", "breadcrumb.*"]
|
13
|
-
|
14
|
-
# PhraseApp uses decorators to generate a unique identification key
|
15
|
-
# in context of your document. However, this might result in conflicts
|
16
|
-
# with other libraries (e.g. client-side template engines) that use a similar syntax.
|
17
|
-
# If you encounter this problem, you might want to change the phrase decorator.
|
18
|
-
# More information: https://phraseapp.com/docs/installation/phrase-gem
|
19
|
-
# config.prefix = "{{__"
|
20
|
-
# config.suffix = "__}}"
|
21
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
require 'phrase/delegate/fast_gettext'
|
4
|
-
|
5
|
-
module FastGettext
|
6
|
-
module Translation
|
7
|
-
def __with_phrase(*args)
|
8
|
-
Phrase::Delegate::FastGettext.new(:_, *args)
|
9
|
-
end
|
10
|
-
alias_method :__without_phrase, :_
|
11
|
-
alias_method :_, :__with_phrase
|
12
|
-
|
13
|
-
def n__with_phrase(*args)
|
14
|
-
Phrase::Delegate::FastGettext.new(:n_, *args)
|
15
|
-
end
|
16
|
-
alias_method :n__without_phrase, :n_
|
17
|
-
alias_method :n_, :n__with_phrase
|
18
|
-
|
19
|
-
def s__with_phrase(*args)
|
20
|
-
Phrase::Delegate::FastGettext.new(:s_, *args)
|
21
|
-
end
|
22
|
-
alias_method :s__without_phrase, :s_
|
23
|
-
alias_method :s_, :s__with_phrase
|
24
|
-
end
|
25
|
-
end if defined? FastGettext::Translation
|
data/lib/phrase/adapters/i18n.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
module I18n
|
4
|
-
class << self
|
5
|
-
def translate_with_phrase(*args)
|
6
|
-
Phrase.backend.translate(*args)
|
7
|
-
end
|
8
|
-
alias_method :translate_without_phrase, :translate
|
9
|
-
alias_method :translate, :translate_with_phrase
|
10
|
-
alias_method :t, :translate
|
11
|
-
end
|
12
|
-
end if defined?(I18n)
|
data/lib/phrase/api.rb
DELETED
data/lib/phrase/api/client.rb
DELETED
@@ -1,308 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
require 'cgi'
|
4
|
-
require 'json'
|
5
|
-
require 'net/http'
|
6
|
-
require 'net/https'
|
7
|
-
require 'phrase'
|
8
|
-
require 'phrase/api'
|
9
|
-
require 'phrase/api/client/http'
|
10
|
-
|
11
|
-
class Phrase::Api::Client
|
12
|
-
|
13
|
-
# Mixin Factory in order to recognize http_proxy settings in Ruby 1.9.X
|
14
|
-
include Phrase::Api::Client::Http
|
15
|
-
|
16
|
-
METHOD_GET = :get
|
17
|
-
METHOD_POST = :post
|
18
|
-
METHOD_PUT = :put
|
19
|
-
METHOD_DELETE = :delete
|
20
|
-
|
21
|
-
attr_reader :auth_token, :project_auth_token
|
22
|
-
|
23
|
-
def initialize(auth_token, project_auth_token=nil)
|
24
|
-
raise "No auth token specified!" if (auth_token.nil? or auth_token.blank?)
|
25
|
-
@auth_token = auth_token
|
26
|
-
@project_auth_token = project_auth_token
|
27
|
-
end
|
28
|
-
|
29
|
-
def fetch_locales
|
30
|
-
result = perform_api_request("/locales", :get)
|
31
|
-
parsed(result).map do |locale|
|
32
|
-
{id: locale['id'], name: locale['name'], code: locale['code'], is_default: locale['is_default']}
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def fetch_translations(params = {})
|
37
|
-
result = perform_api_request("/translations", :get, params)
|
38
|
-
parsed(result)
|
39
|
-
end
|
40
|
-
|
41
|
-
def fetch_blacklisted_keys
|
42
|
-
result = perform_api_request("/blacklisted_keys", :get)
|
43
|
-
blacklisted_keys = []
|
44
|
-
parsed(result).map do |blacklisted_key|
|
45
|
-
blacklisted_keys << blacklisted_key['name']
|
46
|
-
end
|
47
|
-
blacklisted_keys
|
48
|
-
end
|
49
|
-
|
50
|
-
def translate(key)
|
51
|
-
raise "You must specify a key" if key.nil? or key.blank?
|
52
|
-
keys = {}
|
53
|
-
result = parsed(perform_api_request("/translation_keys/translate", :get, {:key => key}))
|
54
|
-
keys = extract_structured_object(result["translate"]) if result["translate"]
|
55
|
-
keys
|
56
|
-
end
|
57
|
-
|
58
|
-
def find_keys_by_name(key_names=[])
|
59
|
-
parsed(perform_api_request("/translation_keys", :get, {:key_names => key_names}))
|
60
|
-
end
|
61
|
-
|
62
|
-
def fetch_translation_keys(opts = {})
|
63
|
-
parsed(perform_api_request("/translation_keys", :get, opts))
|
64
|
-
end
|
65
|
-
|
66
|
-
def create_locale(name)
|
67
|
-
raise "You must specify a name" if name.nil? or name.blank?
|
68
|
-
|
69
|
-
begin
|
70
|
-
perform_api_request("/locales", :post, {
|
71
|
-
"locale[name]" => name
|
72
|
-
})
|
73
|
-
rescue Phrase::Api::Exceptions::ServerError => e
|
74
|
-
raise "Locale #{name} could not be created (Maybe it already exists)"
|
75
|
-
end
|
76
|
-
true
|
77
|
-
end
|
78
|
-
|
79
|
-
def make_locale_default(name)
|
80
|
-
raise "You must specify a name" if name.nil? or name.blank?
|
81
|
-
|
82
|
-
begin
|
83
|
-
perform_api_request("/locales/#{name}/make_default", :put)
|
84
|
-
rescue Phrase::Api::Exceptions::ServerError => e
|
85
|
-
raise "Locale #{name} could not be made the default locale"
|
86
|
-
end
|
87
|
-
true
|
88
|
-
end
|
89
|
-
|
90
|
-
def download_translations_for_locale(name, format, tag=nil, updated_since=nil, include_empty_translations=nil, convert_emoji=nil, encoding=nil, skip_unverified_translations=nil)
|
91
|
-
raise "You must specify a name" if name.nil? || name.blank?
|
92
|
-
raise "You must specify a format" if format.nil? || format.blank?
|
93
|
-
|
94
|
-
begin
|
95
|
-
params = {
|
96
|
-
format: format,
|
97
|
-
locale: name,
|
98
|
-
tag: tag,
|
99
|
-
updated_since: updated_since,
|
100
|
-
include_empty_translations: include_empty_translations ? "1" : nil,
|
101
|
-
convert_emoji: convert_emoji ? "1" : nil,
|
102
|
-
encoding: encoding,
|
103
|
-
skip_unverified_translations: skip_unverified_translations ? "1" : nil
|
104
|
-
}
|
105
|
-
|
106
|
-
content = perform_api_request("/translations/download", :get, params)
|
107
|
-
return content.force_encoding("UTF-8")
|
108
|
-
rescue Phrase::Api::Exceptions::ServerError => e
|
109
|
-
raise "Translations #{name} could not be downloaded"
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
def upload(filename, file_content, tags=[], locale=nil, format=nil, update_translations=false, skip_unverification=false, skip_upload_tags=false, convert_emoji=false)
|
114
|
-
begin
|
115
|
-
params = {
|
116
|
-
"file_format" => format,
|
117
|
-
"filename" => filename,
|
118
|
-
"file_content" => file_content,
|
119
|
-
"tags[]" => tags,
|
120
|
-
"update_translations" => update_translations ? "1" : "0",
|
121
|
-
"skip_unverification" => skip_unverification ? "1" : "0",
|
122
|
-
"skip_upload_tags" => skip_upload_tags ? "1" : "0",
|
123
|
-
"convert_emoji" => convert_emoji ? "1" : "0"
|
124
|
-
}
|
125
|
-
params["locale_name"] = locale unless locale.nil?
|
126
|
-
perform_api_request("/translation_keys/upload", :post, params)
|
127
|
-
rescue Phrase::Api::Exceptions::ServerError => e
|
128
|
-
raise "File #{filename} could not be uploaded (#{e})"
|
129
|
-
end
|
130
|
-
true
|
131
|
-
end
|
132
|
-
|
133
|
-
def list_tags
|
134
|
-
result = perform_api_request("/tags", :get)
|
135
|
-
parsed(result)
|
136
|
-
end
|
137
|
-
|
138
|
-
def delete_translation_key(id, params={})
|
139
|
-
result = perform_api_request("/translation_keys/#{id}", :delete)
|
140
|
-
parsed(result)['success'] == true
|
141
|
-
end
|
142
|
-
|
143
|
-
def delete_multiple_translation_keys(ids, params={})
|
144
|
-
result = perform_api_request("/translation_keys/destroy_multiple", :delete, :'ids[]' => ids)
|
145
|
-
parsed(result)['success'] == true
|
146
|
-
end
|
147
|
-
|
148
|
-
def create_session(email, password)
|
149
|
-
params = {
|
150
|
-
email: email,
|
151
|
-
password: password
|
152
|
-
}
|
153
|
-
result = perform_api_request("/sessions", :post, params)
|
154
|
-
parsed(result)["auth_token"]
|
155
|
-
end
|
156
|
-
|
157
|
-
def destroy_session
|
158
|
-
result = perform_api_request("/sessions", :delete)
|
159
|
-
parsed(result)["success"]
|
160
|
-
end
|
161
|
-
|
162
|
-
private
|
163
|
-
def extract_structured_object(translation)
|
164
|
-
if translation.is_a?(Hash)
|
165
|
-
symbolize_keys(translation)
|
166
|
-
else
|
167
|
-
translation
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
def symbolize_keys(hash)
|
172
|
-
hash.symbolize_keys!
|
173
|
-
hash.each do |key, value|
|
174
|
-
if value.is_a?(Hash)
|
175
|
-
hash[key] = symbolize_keys(value)
|
176
|
-
end
|
177
|
-
end
|
178
|
-
hash
|
179
|
-
end
|
180
|
-
|
181
|
-
def display_api_error(response)
|
182
|
-
error_message = api_error_message(response)
|
183
|
-
$stderr.puts error_message
|
184
|
-
$stderr.puts error_message
|
185
|
-
end
|
186
|
-
|
187
|
-
def api_error_message(response)
|
188
|
-
message = ""
|
189
|
-
begin
|
190
|
-
error = parsed(response.body)["error"]
|
191
|
-
if error.class == String
|
192
|
-
message = error
|
193
|
-
elsif error.class == Hash
|
194
|
-
error.each_pair do |field, messages|
|
195
|
-
messages.each do |msg|
|
196
|
-
message << "#{msg}"
|
197
|
-
end
|
198
|
-
end
|
199
|
-
else
|
200
|
-
message = parsed(response.body)["message"]
|
201
|
-
end
|
202
|
-
rescue JSON::ParserError
|
203
|
-
end
|
204
|
-
message = "Unknown Error" if message.blank?
|
205
|
-
"Error: #{message} (#{response.code})"
|
206
|
-
end
|
207
|
-
|
208
|
-
def perform_api_request(endpoint, method=METHOD_GET, params={})
|
209
|
-
request = case method
|
210
|
-
when METHOD_GET
|
211
|
-
get_request(endpoint, params)
|
212
|
-
when METHOD_POST
|
213
|
-
post_request(endpoint, params)
|
214
|
-
when METHOD_PUT
|
215
|
-
put_request(endpoint, params)
|
216
|
-
when METHOD_DELETE
|
217
|
-
delete_request(endpoint, params)
|
218
|
-
else
|
219
|
-
raise "Invalid Request Method: #{method}"
|
220
|
-
end
|
221
|
-
response = perform_request_with_retry(request, Phrase::Api::Config.api_max_retries)
|
222
|
-
code = response.code.to_i
|
223
|
-
|
224
|
-
if (code == 200)
|
225
|
-
return response.body
|
226
|
-
else
|
227
|
-
error_message = api_error_message(response)
|
228
|
-
raise Phrase::Api::Exceptions::Unauthorized.new(error_message) if (code == 401)
|
229
|
-
raise Phrase::Api::Exceptions::ServerError.new(error_message)
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
|
-
def perform_request_with_retry(request, retries)
|
234
|
-
response = nil
|
235
|
-
|
236
|
-
retries.times do |i|
|
237
|
-
response = http_client.request(request)
|
238
|
-
break unless should_retry?(request, response)
|
239
|
-
sleep(1 + i + rand * 5)
|
240
|
-
end
|
241
|
-
|
242
|
-
response
|
243
|
-
end
|
244
|
-
|
245
|
-
def should_retry?(request, response)
|
246
|
-
request.method.to_s.downcase == METHOD_GET.to_s && response.code.to_i == 502
|
247
|
-
end
|
248
|
-
|
249
|
-
def get_request(endpoint, params={})
|
250
|
-
params = params.merge(auth_token: @auth_token)
|
251
|
-
params = params.merge(project_auth_token: @project_auth_token) if @project_auth_token.present?
|
252
|
-
request = Net::HTTP::Get.new("#{api_path_for(endpoint)}?#{query_for_params(params)}")
|
253
|
-
request
|
254
|
-
end
|
255
|
-
|
256
|
-
def post_request(endpoint, params={})
|
257
|
-
request = Net::HTTP::Post.new("#{api_path_for(endpoint)}")
|
258
|
-
params = params.merge(auth_token: @auth_token)
|
259
|
-
params = params.merge(project_auth_token: @project_auth_token) if @project_auth_token.present?
|
260
|
-
set_form_data(request, params)
|
261
|
-
request
|
262
|
-
end
|
263
|
-
|
264
|
-
def put_request(endpoint, params={})
|
265
|
-
request = Net::HTTP::Put.new("#{api_path_for(endpoint)}")
|
266
|
-
params = params.merge(auth_token: @auth_token)
|
267
|
-
params = params.merge(project_auth_token: @project_auth_token) if @project_auth_token.present?
|
268
|
-
set_form_data(request, params)
|
269
|
-
request
|
270
|
-
end
|
271
|
-
|
272
|
-
def delete_request(endpoint, params={})
|
273
|
-
request = Net::HTTP::Delete.new("#{api_path_for(endpoint)}")
|
274
|
-
params = params.merge(auth_token: @auth_token)
|
275
|
-
params = params.merge(project_auth_token: @project_auth_token) if @project_auth_token.present?
|
276
|
-
set_form_data(request, params)
|
277
|
-
request
|
278
|
-
end
|
279
|
-
|
280
|
-
def api_path_for(endpoint)
|
281
|
-
"#{Phrase::Api::Config.api_path_prefix}#{endpoint}"
|
282
|
-
end
|
283
|
-
|
284
|
-
# Support for arrays in POST data
|
285
|
-
# http://blog.assimov.net/blog/2010/06/01/postput-arrays-with-ruby-nethttp-set_form_data/
|
286
|
-
def set_form_data(request, params, separator='&')
|
287
|
-
request.body = params.map do |key, value|
|
288
|
-
if value.instance_of?(Array)
|
289
|
-
value.map {|value_item| "#{escaped(key.to_s)}=#{escaped(value_item.to_s)}"}.join(separator)
|
290
|
-
else
|
291
|
-
"#{escaped(key.to_s)}=#{escaped(value.to_s)}"
|
292
|
-
end
|
293
|
-
end.join(separator)
|
294
|
-
request.content_type = 'application/x-www-form-urlencoded'
|
295
|
-
end
|
296
|
-
|
297
|
-
def parsed(raw_data)
|
298
|
-
JSON.parse(raw_data)
|
299
|
-
end
|
300
|
-
|
301
|
-
def escaped(value)
|
302
|
-
CGI::escape(value)
|
303
|
-
end
|
304
|
-
|
305
|
-
def query_for_params(params)
|
306
|
-
Phrase::Api::QueryParams.encode(params)
|
307
|
-
end
|
308
|
-
end
|