Sha256: 85c997d3d4f6c9b50be502ed579b233b9f305fbf8f217952baf2c1c28212c383
Contents?: true
Size: 1.78 KB
Versions: 3
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_metadata_file:) put("locales/#{locale_code}", locale: { name: name, yaml_file: yaml_file, yaml_metadata_file: yaml_metadata_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
3 entries across 3 versions & 1 rubygems