Sha256: 47482465a087298304bb2f514fb4ac2107d8b4c82255e235089b13113d1893c9
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
require 'faraday' require 'active_support/core_ext/object' module I18n module Migrations module Backends class CrowdTranslateClient def initialize token = ENV['CROWD_TRANSLATE_API_TOKEN'] raise("You must define CROWD_TRANSLATE_API_TOKEN in order to talk to Crowd Translate") unless token.present? server = ENV['CROWD_TRANSLATE_SERVER'] || 'https://crowd-translate.herokuapp.com' @faraday = Faraday.new( url: "#{server}/api/v1", headers: { 'X-CrowdTranslateApiToken' => token }, ) end def get_locale_file(locale_code) get("locales/#{locale_code}.yml") end def get_migration_versions JSON.parse(get('migrations.json')) end def put_migration(version:, ruby_file:) put("migrations/#{version}.json", migration: { ruby_file: ruby_file }) end def put_locale(locale_code, name:, yaml_file:, yaml_notes_file:) put("locales/#{locale_code}", locale: { name: name, yaml_file: yaml_file, yaml_notes_file: yaml_notes_file }) end private def get(path) puts "GET #{path}".bold parse_response @faraday.get path end def put(path, params = {}) puts "PUT #{path} #{params.to_s[0..50]}#{'...' if params.to_s.length > 50}".bold parse_response @faraday.put path, params end def parse_response(response) if response.success? response.body else error = begin JSON.parse(response.body)['error'] rescue response.body end raise error end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
i18n-migrations-1.2.4 | lib/i18n/migrations/backends/crowd_translate_client.rb |