Class: I18n::Migrations::Backends::CrowdTranslateBackend
- Inherits:
-
Object
- Object
- I18n::Migrations::Backends::CrowdTranslateBackend
- Defined in:
- lib/i18n/migrations/backends/crowd_translate_backend.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
Instance Method Summary collapse
-
#force_push(locale) ⇒ Object
this will replace everything about a locale, it will create a locale that does not yet exist.
-
#initialize(client: CrowdTranslateClient.new) ⇒ CrowdTranslateBackend
constructor
A new instance of CrowdTranslateBackend.
- #pull(locale) ⇒ Object
- #pull_from_crowd_translate(locale) ⇒ Object
- #push(locale, force: false) ⇒ Object
- #sync_migrations(migrations) ⇒ Object
Constructor Details
#initialize(client: CrowdTranslateClient.new) ⇒ CrowdTranslateBackend
Returns a new instance of CrowdTranslateBackend.
9 10 11 |
# File 'lib/i18n/migrations/backends/crowd_translate_backend.rb', line 9 def initialize(client: CrowdTranslateClient.new) @client = client end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
7 8 9 |
# File 'lib/i18n/migrations/backends/crowd_translate_backend.rb', line 7 def client @client end |
Instance Method Details
#force_push(locale) ⇒ Object
this will replace everything about a locale, it will create a locale that does not yet exist
27 28 29 30 31 32 33 34 |
# File 'lib/i18n/migrations/backends/crowd_translate_backend.rb', line 27 def force_push(locale) data, = locale.(parse: false) client.put_locale(locale.name, name: locale.name, yaml_file: data, yaml_metadata_file: ) end |
#pull(locale) ⇒ Object
13 14 15 16 |
# File 'lib/i18n/migrations/backends/crowd_translate_backend.rb', line 13 def pull(locale) pull_from_crowd_translate(locale) locale.migrate! end |
#pull_from_crowd_translate(locale) ⇒ Object
36 37 38 39 40 |
# File 'lib/i18n/migrations/backends/crowd_translate_backend.rb', line 36 def pull_from_crowd_translate(locale) data = client.get_locale_file(locale.name) locale.data_file.write(data) locale.write_remote_version(YAML::load(data)[locale.name]) end |
#push(locale, force: false) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/i18n/migrations/backends/crowd_translate_backend.rb', line 18 def push(locale, force: false) if force force_push(locale) end pull(locale) end |
#sync_migrations(migrations) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/i18n/migrations/backends/crowd_translate_backend.rb', line 42 def sync_migrations(migrations) local_versions = migrations.all_versions remote_versions = client.get_migration_versions if (extra_versions = remote_versions - local_versions).present? raise("You may not upload migrations to the server because it has migrations not found locally: " + "#{extra_versions.join(', ')}") end if (versions_to_add = local_versions - remote_versions).present? versions_to_add.each do |version| begin client.put_migration(version: version, ruby_file: migrations.get_migration(version: version)) rescue raise CrowdTranslateError, "... while updating migration: #{migrations.migration_file(version: version)}\n#{$!.}" end end end end |