transifex-interface-ruby 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +6 -14
- data/.gitignore +17 -17
- data/.rspec +2 -0
- data/Gemfile +4 -4
- data/LICENSE.txt +22 -22
- data/README.md +517 -513
- data/Rakefile +1 -1
- data/lib/transifex.rb +84 -87
- data/lib/transifex/crud_requests.rb +43 -33
- data/lib/transifex/errors.rb +4 -4
- data/lib/transifex/project_components/language.rb +1 -1
- data/lib/transifex/project_components/language_components/coordinators.rb +4 -6
- data/lib/transifex/project_components/language_components/reviewers.rb +5 -8
- data/lib/transifex/project_components/language_components/translators.rb +6 -9
- data/lib/transifex/project_components/languages.rb +1 -1
- data/lib/transifex/resource.rb +1 -1
- data/lib/transifex/resource_components/content.rb +1 -1
- data/lib/transifex/resource_components/source.rb +1 -1
- data/lib/transifex/resource_components/stats.rb +1 -1
- data/lib/transifex/resource_components/translation.rb +1 -1
- data/lib/transifex/resource_components/translation_components/string.rb +1 -1
- data/lib/transifex/resource_components/translation_components/strings.rb +1 -1
- data/lib/transifex/resources.rb +1 -1
- data/lib/transifex/version.rb +3 -3
- data/spec/cassettes/fetch_formats.yml +121 -0
- data/spec/cassettes/language/fetch_language_info.yml +58 -0
- data/spec/cassettes/language/fetch_languages_info.yml +58 -0
- data/spec/cassettes/project/components/create_language.yml +95 -0
- data/spec/cassettes/project/components/create_language_non_existing_coordinator.yml +48 -0
- data/spec/cassettes/project/components/create_language_without_coordinator.yml +48 -0
- data/spec/cassettes/project/components/fetch_languages.yml +53 -0
- data/spec/cassettes/project/delete_project.yml +108 -0
- data/spec/cassettes/project/fetch_private_project_info.yml +59 -0
- data/spec/cassettes/project/fetch_with_details_private_project_info.yml +66 -0
- data/spec/cassettes/project/language/delete_language.yml +140 -0
- data/spec/cassettes/project/language/fetch_coordinators.yml +56 -0
- data/spec/cassettes/project/language/fetch_language_info.yml +52 -0
- data/spec/cassettes/project/language/fetch_reviewers.yml +56 -0
- data/spec/cassettes/project/language/fetch_translators.yml +54 -0
- data/spec/cassettes/project/language/fetch_with_details_language_info.yml +54 -0
- data/spec/cassettes/project/language/update_coordinators.yml +104 -0
- data/spec/cassettes/project/language/update_language.yml +100 -0
- data/spec/cassettes/project/language/update_non_existing_coordinator.yml +48 -0
- data/spec/cassettes/project/language/update_non_existing_language.yml +49 -0
- data/spec/cassettes/project/language/update_non_existing_reviewer.yml +101 -0
- data/spec/cassettes/project/language/update_non_existing_translator.yml +101 -0
- data/spec/cassettes/project/language/update_reviewers.yml +157 -0
- data/spec/cassettes/project/language/update_translators.yml +157 -0
- data/spec/cassettes/project/update_non_existing_attribute_private_project.yml +54 -0
- data/spec/cassettes/project/update_private_project.yml +120 -0
- data/spec/cassettes/project/update_with_missing_params_private_project.yml +54 -0
- data/spec/cassettes/projects/create_private_project.yml +111 -0
- data/spec/cassettes/projects/create_public_project.yml +111 -0
- data/spec/cassettes/projects/create_used_slug_project.yml +55 -0
- data/spec/cassettes/projects/fetch_projects.yml +61 -0
- data/spec/cassettes/resource/delete_not_existing_resource.yml +55 -0
- data/spec/cassettes/resource/delete_resource.yml +160 -0
- data/spec/cassettes/resource/fetch_all_languages_stats.yml +66 -0
- data/spec/cassettes/resource/fetch_content_as_file.yml +56 -0
- data/spec/cassettes/resource/fetch_content_as_hash.yml +58 -0
- data/spec/cassettes/resource/fetch_language_stats.yml +61 -0
- data/spec/cassettes/resource/fetch_not_existing_resource.yml +55 -0
- data/spec/cassettes/resource/fetch_resource_info.yml +59 -0
- data/spec/cassettes/resource/fetch_source_string_metadata.yml +52 -0
- data/spec/cassettes/resource/fetch_translations.yml +57 -0
- data/spec/cassettes/resource/fetch_updated_resource_info.yml +60 -0
- data/spec/cassettes/resource/fetch_updated_source_string_metadata.yml +52 -0
- data/spec/cassettes/resource/fetch_with_details_resource_info.yml +65 -0
- data/spec/cassettes/resource/fetch_with_file_and_mode_translations.yml +56 -0
- data/spec/cassettes/resource/fetch_with_file_translations.yml +56 -0
- data/spec/cassettes/resource/update_content_json.yml +115 -0
- data/spec/cassettes/resource/update_content_with_wrong_mimetype.yml +59 -0
- data/spec/cassettes/resource/update_content_yml.yml +114 -0
- data/spec/cassettes/resource/update_not_existing_resource.yml +55 -0
- data/spec/cassettes/resource/update_resource_info.yml +114 -0
- data/spec/cassettes/resource/update_source_language.yml +54 -0
- data/spec/cassettes/resource/update_source_string_metadata.yml +100 -0
- data/spec/cassettes/resource/update_translation_for_language.yml +62 -0
- data/spec/cassettes/resources/create_from_file.yml +55 -0
- data/spec/cassettes/resources/create_from_string.yml +54 -0
- data/spec/cassettes/resources/fetch_as_array.yml +62 -0
- data/spec/cassettes/resources/non_existing_project.yml +55 -0
- data/spec/cassettes/translation/fetch_string.yml +55 -0
- data/spec/cassettes/translation/fetch_strings.yml +54 -0
- data/spec/cassettes/translation/fetch_with_details_and_context_strings.yml +51 -0
- data/spec/cassettes/translation/fetch_with_details_and_key_strings.yml +56 -0
- data/spec/cassettes/translation/fetch_with_details_strings.yml +56 -0
- data/spec/cassettes/translation/update_multiple_translation_strings.yml +107 -0
- data/spec/cassettes/translation/update_single_translation_strings.yml +104 -0
- data/spec/cassettes/translation/update_string.yml +104 -0
- data/spec/lib/transifex/coordinators_spec.rb +22 -16
- data/spec/lib/transifex/formats_spec.rb +8 -8
- data/spec/lib/transifex/language_spec.rb +9 -10
- data/spec/lib/transifex/languages_spec.rb +8 -8
- data/spec/lib/transifex/project_language_spec.rb +41 -28
- data/spec/lib/transifex/project_languages_spec.rb +34 -18
- data/spec/lib/transifex/project_spec.rb +46 -73
- data/spec/lib/transifex/projects_spec.rb +72 -37
- data/spec/lib/transifex/resource_content_spec.rb +41 -24
- data/spec/lib/transifex/resource_source_spec.rb +21 -19
- data/spec/lib/transifex/resource_spec.rb +69 -41
- data/spec/lib/transifex/resources_spec.rb +42 -34
- data/spec/lib/transifex/reviewers_spec.rb +23 -17
- data/spec/lib/transifex/stats_spec.rb +20 -24
- data/spec/lib/transifex/translation_spec.rb +60 -38
- data/spec/lib/transifex/translation_string_spec.rb +26 -20
- data/spec/lib/transifex/translation_strings_spec.rb +65 -43
- data/spec/lib/transifex/translators_spec.rb +23 -17
- data/spec/lib/transifex_spec.rb +15 -0
- data/spec/lib/yaml/eo.yml +3 -0
- data/spec/spec_helper.rb +19 -83
- data/spec/support/client_helper.rb +8 -0
- data/spec/support/content_helper.rb +346 -0
- data/transifex-interface-ruby.gemspec +28 -25
- metadata +198 -21
- data/spec/lib/transifex/configuration_spec.rb +0 -17
- data/spec/lib/yaml/resource_translation_default_content_test.yml +0 -4
- data/spec/lib/yaml/resource_translation_reviewed_content_test.yml +0 -9
data/Rakefile
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require "bundler/gem_tasks"
|
1
|
+
require "bundler/gem_tasks"
|
data/lib/transifex.rb
CHANGED
@@ -1,87 +1,84 @@
|
|
1
|
-
require 'net/http'
|
2
|
-
require 'multi_json'
|
3
|
-
require 'yaml'
|
4
|
-
require 'uri'
|
5
|
-
require 'digest/md5'
|
6
|
-
|
7
|
-
require "transifex/version"
|
8
|
-
require "transifex/resource_components/translation_components/utilities"
|
9
|
-
require "transifex/crud_requests"
|
10
|
-
require "transifex/errors"
|
11
|
-
require "transifex/formats"
|
12
|
-
require "transifex/project"
|
13
|
-
require "transifex/projects"
|
14
|
-
require "transifex/json"
|
15
|
-
require "transifex/languages"
|
16
|
-
require "transifex/language"
|
17
|
-
require "transifex/project_components/language"
|
18
|
-
require "transifex/project_components/language_components/coordinators"
|
19
|
-
require "transifex/project_components/language_components/reviewers"
|
20
|
-
require "transifex/project_components/language_components/translators"
|
21
|
-
require "transifex/project_components/languages"
|
22
|
-
require "transifex/resource"
|
23
|
-
require "transifex/resource_components/content"
|
24
|
-
require "transifex/resource_components/source"
|
25
|
-
require "transifex/resource_components/stats"
|
26
|
-
require "transifex/resource_components/translation"
|
27
|
-
require "transifex/resource_components/translation_components/string"
|
28
|
-
require "transifex/resource_components/translation_components/strings"
|
29
|
-
require "transifex/resources"
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
}
|
86
|
-
end
|
87
|
-
end
|
1
|
+
require 'net/http'
|
2
|
+
require 'multi_json'
|
3
|
+
require 'yaml'
|
4
|
+
require 'uri'
|
5
|
+
require 'digest/md5'
|
6
|
+
|
7
|
+
require "transifex/version"
|
8
|
+
require "transifex/resource_components/translation_components/utilities"
|
9
|
+
require "transifex/crud_requests"
|
10
|
+
require "transifex/errors"
|
11
|
+
require "transifex/formats"
|
12
|
+
require "transifex/project"
|
13
|
+
require "transifex/projects"
|
14
|
+
require "transifex/json"
|
15
|
+
require "transifex/languages"
|
16
|
+
require "transifex/language"
|
17
|
+
require "transifex/project_components/language"
|
18
|
+
require "transifex/project_components/language_components/coordinators"
|
19
|
+
require "transifex/project_components/language_components/reviewers"
|
20
|
+
require "transifex/project_components/language_components/translators"
|
21
|
+
require "transifex/project_components/languages"
|
22
|
+
require "transifex/resource"
|
23
|
+
require "transifex/resource_components/content"
|
24
|
+
require "transifex/resource_components/source"
|
25
|
+
require "transifex/resource_components/stats"
|
26
|
+
require "transifex/resource_components/translation"
|
27
|
+
require "transifex/resource_components/translation_components/string"
|
28
|
+
require "transifex/resource_components/translation_components/strings"
|
29
|
+
require "transifex/resources"
|
30
|
+
|
31
|
+
module Transifex
|
32
|
+
class << self
|
33
|
+
attr_accessor :configuration
|
34
|
+
|
35
|
+
def configure
|
36
|
+
self.configuration ||= Configuration.new
|
37
|
+
yield configuration
|
38
|
+
end
|
39
|
+
|
40
|
+
def build_request_url(url='')
|
41
|
+
URI(self.configuration.root_url + url)
|
42
|
+
end
|
43
|
+
|
44
|
+
def query_api(method, url, params={})
|
45
|
+
uri = build_request_url(url)
|
46
|
+
|
47
|
+
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
48
|
+
req = Net::HTTP::const_get(method.capitalize).new(uri.request_uri, request_headers)
|
49
|
+
req.basic_auth self.configuration.client_login, self.configuration.client_secret
|
50
|
+
req.body = Transifex::JSON.dump(params)
|
51
|
+
http.request req
|
52
|
+
end
|
53
|
+
|
54
|
+
begin
|
55
|
+
data = Transifex::JSON.load(res.body.nil? ? '' : res.body)
|
56
|
+
rescue
|
57
|
+
data = res.body
|
58
|
+
end
|
59
|
+
|
60
|
+
unless (res.is_a? Net::HTTPOK) || (res.is_a? Net::HTTPCreated) || (res.is_a? Net::HTTPNoContent)
|
61
|
+
error = TransifexError.new(uri, res.code, data)
|
62
|
+
raise error
|
63
|
+
end
|
64
|
+
|
65
|
+
data
|
66
|
+
end
|
67
|
+
|
68
|
+
def request_headers
|
69
|
+
request_headers = {
|
70
|
+
'Content-Type' => 'application/json',
|
71
|
+
'Accept' => 'application/json',
|
72
|
+
'User-Agent' => "Transifex-interface-ruby/#{Transifex::VERSION}"
|
73
|
+
}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
class Configuration
|
78
|
+
attr_accessor :client_login, :client_secret, :root_url
|
79
|
+
|
80
|
+
def root_url
|
81
|
+
@root_url ||= "https://www.transifex.com/api/2"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module Transifex
|
2
2
|
module CrudRequests
|
3
|
-
class << self
|
3
|
+
class << self
|
4
4
|
def generate_url(object, params = {})
|
5
5
|
class_name_string = object.class.name.split("::").last.downcase.to_s
|
6
6
|
url = ""
|
7
|
-
if object.class.respond_to?(:
|
8
|
-
object.class.
|
9
|
-
end
|
7
|
+
if object.class.respond_to?(:authors)
|
8
|
+
object.class.authors.map{|author| url += "/" + author.to_s + "/" + object.instance_variable_get("@" + author.to_s + "_slug")}
|
9
|
+
end
|
10
10
|
url += "/" + class_name_string
|
11
11
|
url += "/" + object.instance_variable_get("@" + class_name_string + "_slug") if object.instance_variable_defined?("@" + class_name_string + "_slug")
|
12
|
-
params.each do |param|
|
12
|
+
params.each do |param|
|
13
13
|
url = add_param(url, param[0], param[1])
|
14
14
|
end
|
15
15
|
url
|
@@ -17,7 +17,7 @@ module Transifex
|
|
17
17
|
|
18
18
|
def add_param(url, param_name, param_value)
|
19
19
|
uri = URI(url)
|
20
|
-
params = URI.decode_www_form(uri.query ||
|
20
|
+
params = URI.decode_www_form(uri.query || "") << [param_name, param_value]
|
21
21
|
uri.query = URI.encode_www_form(params)
|
22
22
|
uri.to_s
|
23
23
|
end
|
@@ -26,12 +26,12 @@ module Transifex
|
|
26
26
|
module Fetch
|
27
27
|
module InstanceMethods
|
28
28
|
def fetch(options = {})
|
29
|
-
url = CrudRequests.generate_url(self, options)
|
29
|
+
url = CrudRequests.generate_url(self, options)
|
30
30
|
Transifex.query_api(:get, url)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
def self.included(receiver)
|
34
|
-
receiver.send(:include, InstanceMethods)
|
34
|
+
receiver.send(:include, InstanceMethods)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
module Create
|
@@ -40,7 +40,7 @@ module Transifex
|
|
40
40
|
missing_keys = self.class::CREATE_REQUIRED_PARAMS - params.keys
|
41
41
|
raise MissingParametersError.new(missing_keys) unless (missing_keys == [:repository_url] || missing_keys == [:private]) || missing_keys.empty?
|
42
42
|
if params[:repository_url] && !params[:repository_url].empty? && params[:repository_url].match(/^(http|https|ftp):\/\/[a-zA-Z]+\.[a-zA-Z]+\.[a-zA-Z]+/).nil?
|
43
|
-
raise ParametersFormatError.new(:repository_url, "http|https|ftp://x.x.x")
|
43
|
+
raise ParametersFormatError.new(:repository_url, "http|https|ftp://x.x.x")
|
44
44
|
end
|
45
45
|
unless options[:trad_from_file].nil?
|
46
46
|
if params[:i18n_type] == "YAML"
|
@@ -54,46 +54,56 @@ module Transifex
|
|
54
54
|
url = CrudRequests.generate_url(self)
|
55
55
|
Transifex.query_api(:post, url, params)
|
56
56
|
end
|
57
|
-
end
|
58
|
-
|
57
|
+
end
|
58
|
+
|
59
59
|
def self.included(receiver)
|
60
|
-
receiver.send(:include, InstanceMethods)
|
60
|
+
receiver.send(:include, InstanceMethods)
|
61
61
|
end
|
62
|
-
end
|
62
|
+
end
|
63
63
|
module Update
|
64
64
|
module InstanceMethods
|
65
|
-
def update(params = {}, options = {})
|
66
|
-
if params.is_a?(Hash) && params[:i18n_type]
|
67
|
-
if
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
65
|
+
def update(params = {}, options = {})
|
66
|
+
if params.is_a?(Hash) && params[:i18n_type]
|
67
|
+
if options[:trad_from_file]
|
68
|
+
case params[:i18n_type]
|
69
|
+
when "YML"
|
70
|
+
params[:content] = YAML::load_file(params[:content]).to_yaml
|
71
|
+
else
|
72
|
+
file = File.open(params[:content], "rb")
|
73
|
+
params[:content] = file.read
|
74
|
+
file.close
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
if params[:i18n_type] == "KEYVALUEJSON"
|
79
|
+
params[:content] = params[:content].to_json
|
73
80
|
end
|
81
|
+
|
74
82
|
# Deal with accents
|
75
|
-
params[:content] = params[:content].force_encoding(
|
76
|
-
end
|
83
|
+
params[:content] = params[:content].force_encoding("UTF-8")
|
84
|
+
end
|
85
|
+
|
77
86
|
url = CrudRequests.generate_url(self)
|
87
|
+
|
78
88
|
Transifex.query_api(:put, url, params)
|
79
89
|
end
|
80
|
-
end
|
81
|
-
|
90
|
+
end
|
91
|
+
|
82
92
|
def self.included(receiver)
|
83
|
-
receiver.send(:include, InstanceMethods)
|
93
|
+
receiver.send(:include, InstanceMethods)
|
84
94
|
end
|
85
95
|
end
|
86
96
|
module Delete
|
87
97
|
module InstanceMethods
|
88
|
-
def delete(params = {}, options = {})
|
98
|
+
def delete(params = {}, options = {})
|
89
99
|
url = CrudRequests.generate_url(self)
|
90
100
|
Transifex.query_api(:delete, url, params)
|
91
101
|
end
|
92
|
-
end
|
93
|
-
|
102
|
+
end
|
103
|
+
|
94
104
|
def self.included(receiver)
|
95
|
-
receiver.send(:include, InstanceMethods)
|
105
|
+
receiver.send(:include, InstanceMethods)
|
96
106
|
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/lib/transifex/errors.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
module Transifex
|
2
|
-
|
3
2
|
class Error < StandardError
|
4
3
|
end
|
5
4
|
|
6
5
|
class MissingParametersError < Error
|
7
6
|
def initialize(*missing_attributes)
|
8
|
-
super("The following attributes are missing:" + missing_attributes.join(
|
7
|
+
super("The following attributes are missing: " + missing_attributes.join(", "))
|
9
8
|
end
|
10
9
|
end
|
11
10
|
|
@@ -14,12 +13,13 @@ module Transifex
|
|
14
13
|
super("The following parameter: " + parameter.to_s + " must follow the format: " + format_expected)
|
15
14
|
end
|
16
15
|
end
|
17
|
-
|
16
|
+
|
18
17
|
class TransifexError < Error
|
19
18
|
attr_reader :request_url, :code, :details
|
19
|
+
|
20
20
|
def initialize(request_url, code, details)
|
21
21
|
@request_url, @code, @details = request_url, code, details
|
22
22
|
super(details) if details
|
23
23
|
end
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end
|
@@ -14,16 +14,14 @@ module Transifex
|
|
14
14
|
@language_slug = language_code
|
15
15
|
end
|
16
16
|
|
17
|
-
def self.
|
17
|
+
def self.authors
|
18
18
|
[:project, :language]
|
19
19
|
end
|
20
20
|
|
21
|
-
def update(
|
22
|
-
|
23
|
-
params[:coordinators] = coordinators_list
|
24
|
-
super(params, options)
|
21
|
+
def update(coordinators = [], options = {})
|
22
|
+
super({"coordinators" => coordinators}, options)
|
25
23
|
end
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
29
|
-
end
|
27
|
+
end
|
@@ -14,20 +14,17 @@ module Transifex
|
|
14
14
|
@language_slug = language_code
|
15
15
|
end
|
16
16
|
|
17
|
-
def self.
|
17
|
+
def self.authors
|
18
18
|
[:project, :language]
|
19
19
|
end
|
20
20
|
|
21
|
-
def update(
|
21
|
+
def update(reviewers = [], options = {})
|
22
22
|
# Transifex needs coordinators list to be passed also when updating reviewers list. Strange
|
23
23
|
# Fetch the current coordinators list and add it to the params as a workaround.
|
24
|
-
|
25
|
-
|
26
|
-
params[:coordinators] = fetched_language_infos["coordinators"]
|
27
|
-
params[:reviewers] = reviewers_list
|
28
|
-
super(params, options)
|
24
|
+
coordinators = Transifex::Project.new(@project_slug).language(@language_slug).coordinators.fetch
|
25
|
+
super(coordinators.merge({"reviewers" => reviewers}), options)
|
29
26
|
end
|
30
27
|
end
|
31
28
|
end
|
32
29
|
end
|
33
|
-
end
|
30
|
+
end
|
@@ -14,20 +14,17 @@ module Transifex
|
|
14
14
|
@language_slug = language_code
|
15
15
|
end
|
16
16
|
|
17
|
-
def self.
|
17
|
+
def self.authors
|
18
18
|
[:project, :language]
|
19
19
|
end
|
20
|
-
|
21
|
-
def update(
|
20
|
+
|
21
|
+
def update(translators = {}, options = {})
|
22
22
|
# Transifex needs coordinators list to be passed also when updating reviewers list. Strange
|
23
23
|
# Fetch the current coordinators list and add it to the params as a workaround.
|
24
|
-
|
25
|
-
|
26
|
-
params[:coordinators] = fetched_language_infos["coordinators"]
|
27
|
-
params[:translators] = translators_list
|
28
|
-
super(params, options)
|
24
|
+
coordinators = Transifex::Project.new(@project_slug).language(@language_slug).coordinators.fetch
|
25
|
+
super(coordinators.merge({"translators" => translators}), options)
|
29
26
|
end
|
30
27
|
end
|
31
28
|
end
|
32
29
|
end
|
33
|
-
end
|
30
|
+
end
|
data/lib/transifex/resource.rb
CHANGED