phrase 4.27.0 → 4.29.0

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +6 -3
  4. data/docs/JobTemplateCreateParameters.md +3 -1
  5. data/docs/JobTemplateUpdateParameters.md +3 -1
  6. data/docs/KeyCreateParameters.md +1 -1
  7. data/docs/KeyUpdateParameters.md +1 -1
  8. data/docs/MachineTranslationSettingsUpdateParameters.md +1 -1
  9. data/docs/MemberUpdateParameters.md +2 -2
  10. data/docs/MembersApi.md +71 -1
  11. data/docs/OrganizationJobTemplateCreateParameters.md +3 -1
  12. data/docs/OrganizationJobTemplateUpdateParameters.md +3 -1
  13. data/docs/ProjectCreateParameters.md +2 -2
  14. data/docs/ProjectDetails.md +2 -0
  15. data/docs/ProjectMember.md +27 -0
  16. data/docs/ProjectUpdateParameters.md +2 -2
  17. data/docs/ProjectsApi.md +1 -1
  18. data/docs/ScreenshotUpdateParameters.md +1 -1
  19. data/docs/SpacesApi.md +3 -1
  20. data/docs/SupportedLanguagesApi.md +62 -0
  21. data/lib/phrase/api/members_api.rb +80 -2
  22. data/lib/phrase/api/projects_api.rb +2 -2
  23. data/lib/phrase/api/spaces_api.rb +3 -0
  24. data/lib/phrase/api/supported_languages_api.rb +67 -0
  25. data/lib/phrase/models/job_template_create_parameters.rb +14 -4
  26. data/lib/phrase/models/job_template_update_parameters.rb +14 -4
  27. data/lib/phrase/models/machine_translation_settings_update_parameters.rb +1 -1
  28. data/lib/phrase/models/member_update_parameters.rb +2 -2
  29. data/lib/phrase/models/organization_job_template_create_parameters.rb +14 -4
  30. data/lib/phrase/models/organization_job_template_update_parameters.rb +14 -4
  31. data/lib/phrase/models/project_create_parameters.rb +13 -1
  32. data/lib/phrase/models/project_details.rb +44 -1
  33. data/lib/phrase/models/project_member.rb +241 -0
  34. data/lib/phrase/models/project_update_parameters.rb +13 -1
  35. data/lib/phrase/version.rb +1 -1
  36. data/lib/phrase.rb +2 -0
  37. data/spec/api/members_api_spec.rb +18 -1
  38. data/spec/api/projects_api_spec.rb +1 -1
  39. data/spec/api/spaces_api_spec.rb +1 -0
  40. data/spec/api/supported_languages_api_spec.rb +34 -0
  41. data/spec/models/job_template_create_parameters_spec.rb +6 -0
  42. data/spec/models/job_template_update_parameters_spec.rb +6 -0
  43. data/spec/models/organization_job_template_create_parameters_spec.rb +6 -0
  44. data/spec/models/organization_job_template_update_parameters_spec.rb +6 -0
  45. data/spec/models/project_create_parameters_spec.rb +4 -0
  46. data/spec/models/project_details_spec.rb +10 -0
  47. data/spec/models/project_member_spec.rb +59 -0
  48. data/spec/models/project_update_parameters_spec.rb +4 -0
  49. metadata +10 -2
@@ -0,0 +1,241 @@
1
+ require 'date'
2
+
3
+ module Phrase
4
+ class ProjectMember
5
+ attr_accessor :id
6
+
7
+ attr_accessor :username
8
+
9
+ attr_accessor :name
10
+
11
+ attr_accessor :position
12
+
13
+ attr_accessor :created_at
14
+
15
+ attr_accessor :updated_at
16
+
17
+ # Attribute mapping from ruby-style variable name to JSON key.
18
+ def self.attribute_map
19
+ {
20
+ :'id' => :'id',
21
+ :'username' => :'username',
22
+ :'name' => :'name',
23
+ :'position' => :'position',
24
+ :'created_at' => :'created_at',
25
+ :'updated_at' => :'updated_at'
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.openapi_types
31
+ {
32
+ :'id' => :'String',
33
+ :'username' => :'String',
34
+ :'name' => :'String',
35
+ :'position' => :'String',
36
+ :'created_at' => :'DateTime',
37
+ :'updated_at' => :'DateTime'
38
+ }
39
+ end
40
+
41
+ # List of attributes with nullable: true
42
+ def self.openapi_nullable
43
+ Set.new([
44
+ ])
45
+ end
46
+
47
+ # Initializes the object
48
+ # @param [Hash] attributes Model attributes in the form of hash
49
+ def initialize(attributes = {})
50
+ if (!attributes.is_a?(Hash))
51
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Phrase::ProjectMember` initialize method"
52
+ end
53
+
54
+ # check to see if the attribute exists and convert string to symbol for hash key
55
+ attributes = attributes.each_with_object({}) { |(k, v), h|
56
+ if (!self.class.attribute_map.key?(k.to_sym))
57
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Phrase::ProjectMember`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
58
+ end
59
+ h[k.to_sym] = v
60
+ }
61
+
62
+ if attributes.key?(:'id')
63
+ self.id = attributes[:'id']
64
+ end
65
+
66
+ if attributes.key?(:'username')
67
+ self.username = attributes[:'username']
68
+ end
69
+
70
+ if attributes.key?(:'name')
71
+ self.name = attributes[:'name']
72
+ end
73
+
74
+ if attributes.key?(:'position')
75
+ self.position = attributes[:'position']
76
+ end
77
+
78
+ if attributes.key?(:'created_at')
79
+ self.created_at = attributes[:'created_at']
80
+ end
81
+
82
+ if attributes.key?(:'updated_at')
83
+ self.updated_at = attributes[:'updated_at']
84
+ end
85
+ end
86
+
87
+ # Show invalid properties with the reasons. Usually used together with valid?
88
+ # @return Array for valid properties with the reasons
89
+ def list_invalid_properties
90
+ invalid_properties = Array.new
91
+ invalid_properties
92
+ end
93
+
94
+ # Check to see if the all the properties in the model are valid
95
+ # @return true if the model is valid
96
+ def valid?
97
+ true
98
+ end
99
+
100
+ # Checks equality by comparing each attribute.
101
+ # @param [Object] Object to be compared
102
+ def ==(o)
103
+ return true if self.equal?(o)
104
+ self.class == o.class &&
105
+ id == o.id &&
106
+ username == o.username &&
107
+ name == o.name &&
108
+ position == o.position &&
109
+ created_at == o.created_at &&
110
+ updated_at == o.updated_at
111
+ end
112
+
113
+ # @see the `==` method
114
+ # @param [Object] Object to be compared
115
+ def eql?(o)
116
+ self == o
117
+ end
118
+
119
+ # Calculates hash code according to all attributes.
120
+ # @return [Integer] Hash code
121
+ def hash
122
+ [id, username, name, position, created_at, updated_at].hash
123
+ end
124
+
125
+ # Builds the object from hash
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ # @return [Object] Returns the model itself
128
+ def self.build_from_hash(attributes)
129
+ new.build_from_hash(attributes)
130
+ end
131
+
132
+ # Builds the object from hash
133
+ # @param [Hash] attributes Model attributes in the form of hash
134
+ # @return [Object] Returns the model itself
135
+ def build_from_hash(attributes)
136
+ return nil unless attributes.is_a?(Hash)
137
+ self.class.openapi_types.each_pair do |key, type|
138
+ if type =~ /\AArray<(.*)>/i
139
+ # check to ensure the input is an array given that the attribute
140
+ # is documented as an array but the input is not
141
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
142
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
143
+ end
144
+ elsif !attributes[self.class.attribute_map[key]].nil?
145
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
146
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
147
+ end
148
+
149
+ self
150
+ end
151
+
152
+ # Deserializes the data based on type
153
+ # @param string type Data type
154
+ # @param string value Value to be deserialized
155
+ # @return [Object] Deserialized data
156
+ def _deserialize(type, value)
157
+ case type.to_sym
158
+ when :DateTime
159
+ DateTime.parse(value)
160
+ when :Date
161
+ Date.parse(value)
162
+ when :Time
163
+ Time.parse(value)
164
+ when :String
165
+ value.to_s
166
+ when :Integer
167
+ value.to_i
168
+ when :Float
169
+ value.to_f
170
+ when :Boolean
171
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
172
+ true
173
+ else
174
+ false
175
+ end
176
+ when :Object
177
+ # generic object (usually a Hash), return directly
178
+ value
179
+ when /\AArray<(?<inner_type>.+)>\z/
180
+ inner_type = Regexp.last_match[:inner_type]
181
+ value.map { |v| _deserialize(inner_type, v) }
182
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
183
+ k_type = Regexp.last_match[:k_type]
184
+ v_type = Regexp.last_match[:v_type]
185
+ {}.tap do |hash|
186
+ value.each do |k, v|
187
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
188
+ end
189
+ end
190
+ else # model
191
+ Phrase.const_get(type).build_from_hash(value)
192
+ end
193
+ end
194
+
195
+ # Returns the string representation of the object
196
+ # @return [String] String presentation of the object
197
+ def to_s
198
+ to_hash.to_s
199
+ end
200
+
201
+ # to_body is an alias to to_hash (backward compatibility)
202
+ # @return [Hash] Returns the object in the form of hash
203
+ def to_body
204
+ to_hash
205
+ end
206
+
207
+ # Returns the object in the form of hash
208
+ # @return [Hash] Returns the object in the form of hash
209
+ def to_hash
210
+ hash = {}
211
+ self.class.attribute_map.each_pair do |attr, param|
212
+ value = self.send(attr)
213
+ if value.nil?
214
+ is_nullable = self.class.openapi_nullable.include?(attr)
215
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
216
+ end
217
+
218
+ hash[param] = _to_hash(value)
219
+ end
220
+ hash
221
+ end
222
+
223
+ # Outputs non-array value in the form of hash
224
+ # For object, use to_hash. Otherwise, just return the value
225
+ # @param [Object] value Any valid value
226
+ # @return [Hash] Returns the value in the form of hash
227
+ def _to_hash(value)
228
+ if value.is_a?(Array)
229
+ value.compact.map { |v| _to_hash(v) }
230
+ elsif value.is_a?(Hash)
231
+ {}.tap do |hash|
232
+ value.each { |k, v| hash[k] = _to_hash(v) }
233
+ end
234
+ elsif value.respond_to? :to_hash
235
+ value.to_hash
236
+ else
237
+ value
238
+ end
239
+ end
240
+ end
241
+ end
@@ -104,7 +104,7 @@ module Phrase
104
104
  # (Optional) Collation used when sorting translation keys alphabetically.
105
105
  attr_accessor :translation_keys_sort_collation
106
106
 
107
- # (Optional) CLDR plural-rule version used by the project.
107
+ # (Optional) CLDR plural-rule version used by the project. Pass `legacy` for pre-CLDR pluralization behaviour, or a CLDR version string such as `cldr48`. Also used as the default version for the ICU skeleton endpoint (`POST /icu/skeleton`) when its own `cldr_version` parameter is omitted.
108
108
  attr_accessor :cldr_version
109
109
 
110
110
  class EnumAttributeValidator
@@ -391,6 +391,8 @@ module Phrase
391
391
  def valid?
392
392
  default_encoding_validator = EnumAttributeValidator.new('String', ["UTF-8", "UTF-16", "UTF-16BE", "UTF-16LE", "ISO-8859-1"])
393
393
  return false unless default_encoding_validator.valid?(@default_encoding)
394
+ translation_keys_sort_collation_validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
395
+ return false unless translation_keys_sort_collation_validator.valid?(@translation_keys_sort_collation)
394
396
  true
395
397
  end
396
398
 
@@ -404,6 +406,16 @@ module Phrase
404
406
  @default_encoding = default_encoding
405
407
  end
406
408
 
409
+ # Custom attribute writer method checking allowed values (enum).
410
+ # @param [Object] translation_keys_sort_collation Object to be assigned
411
+ def translation_keys_sort_collation=(translation_keys_sort_collation)
412
+ validator = EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
413
+ unless validator.valid?(translation_keys_sort_collation)
414
+ fail ArgumentError, "invalid value for \"translation_keys_sort_collation\", must be one of #{validator.allowable_values}."
415
+ end
416
+ @translation_keys_sort_collation = translation_keys_sort_collation
417
+ end
418
+
407
419
  # Checks equality by comparing each attribute.
408
420
  # @param [Object] Object to be compared
409
421
  def ==(o)
@@ -1,3 +1,3 @@
1
1
  module Phrase
2
- VERSION = '4.27.0'
2
+ VERSION = '4.29.0'
3
3
  end
data/lib/phrase.rb CHANGED
@@ -161,6 +161,7 @@ require 'phrase/models/project'
161
161
  require 'phrase/models/project_create_parameters'
162
162
  require 'phrase/models/project_details'
163
163
  require 'phrase/models/project_locales'
164
+ require 'phrase/models/project_member'
164
165
  require 'phrase/models/project_report'
165
166
  require 'phrase/models/project_short'
166
167
  require 'phrase/models/project_update_parameters'
@@ -303,6 +304,7 @@ require 'phrase/api/screenshots_api'
303
304
  require 'phrase/api/search_api'
304
305
  require 'phrase/api/spaces_api'
305
306
  require 'phrase/api/style_guides_api'
307
+ require 'phrase/api/supported_languages_api'
306
308
  require 'phrase/api/tags_api'
307
309
  require 'phrase/api/teams_api'
308
310
  require 'phrase/api/translations_api'
@@ -50,7 +50,7 @@ describe 'MembersApi' do
50
50
 
51
51
  # unit tests for member_update
52
52
  # Update a member
53
- # Update user permissions in the account. Developers and translators need &#x60;project_ids&#x60; and &#x60;locale_ids&#x60; assigned to access them. Access token scope must include &#x60;team.manage&#x60;.
53
+ # Update user permissions in the account. Developers and translators need &#x60;project_ids&#x60; and &#x60;locale_ids&#x60; assigned to access them. To grant account-wide language access instead of access scoped to specific projects, use &#x60;default_locale_codes&#x60;. Access token scope must include &#x60;team.manage&#x60;.
54
54
  # @param account_id Account ID
55
55
  # @param id ID
56
56
  # @param member_update_parameters
@@ -78,6 +78,23 @@ describe 'MembersApi' do
78
78
  end
79
79
  end
80
80
 
81
+ # unit tests for members_by_project
82
+ # List project members
83
+ # Get all members active in the project. Access token scope must include &#x60;read&#x60;.
84
+ # @param project_id Project ID
85
+ # @param [Hash] opts the optional parameters
86
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
87
+ # @option opts [String] :q Specify a query to search for members by name or email (including wildcards).
88
+ # @option opts [String] :job_id Filter members to those assigned to the job identified by this id.
89
+ # @option opts [Integer] :page Page number
90
+ # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
91
+ # @return [Array<ProjectMember>]
92
+ describe 'members_by_project test' do
93
+ it 'should work' do
94
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
95
+ end
96
+ end
97
+
81
98
  # unit tests for members_list
82
99
  # List members
83
100
  # Get all users active in the account. It also lists resources like projects and locales the member has access to. In case nothing is shown the default access from the role is used. Access token scope must include &#x60;team.manage&#x60;.
@@ -61,7 +61,7 @@ describe 'ProjectsApi' do
61
61
 
62
62
  # unit tests for project_update
63
63
  # Update a project
64
- # Update an existing project.
64
+ # Update an existing project, including its review workflow, pre-translation/autotranslate rules, and machine-translation configuration (see workflow, machine_translation_enabled, and the autotranslate_* fields below).
65
65
  # @param id ID
66
66
  # @param project_update_parameters
67
67
  # @param [Hash] opts the optional parameters
@@ -85,6 +85,7 @@ describe 'SpacesApi' do
85
85
  # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
86
86
  # @option opts [Integer] :page Page number
87
87
  # @option opts [Integer] :per_page Limit on the number of objects to be returned, between 1 and 100. 25 by default
88
+ # @option opts [String] :q Filter results by name. Supports the prefix-match syntax &#x60;name:&lt;value&gt;&#x60;, which returns only spaces whose names begin with &#x60;&lt;value&gt;&#x60;. Other query formats are ignored; omitting &#x60;q&#x60; returns all accessible spaces.
88
89
  # @return [Array<Space>]
89
90
  describe 'spaces_list test' do
90
91
  it 'should work' do
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+
4
+ # Unit tests for Phrase::SupportedLanguagesApi
5
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
6
+ # Please update as you see appropriate
7
+ describe 'SupportedLanguagesApi' do
8
+ before do
9
+ # run before each test
10
+ @api_instance = Phrase::SupportedLanguagesApi.new
11
+ end
12
+
13
+ after do
14
+ # run after each test
15
+ end
16
+
17
+ describe 'test an instance of SupportedLanguagesApi' do
18
+ it 'should create an instance of SupportedLanguagesApi' do
19
+ expect(@api_instance).to be_instance_of(Phrase::SupportedLanguagesApi)
20
+ end
21
+ end
22
+
23
+ # unit tests for languages_list
24
+ # List supported languages
25
+ # Returns all languages/locale codes that Phrase Strings recognizes, mapped to their human-readable display name. This endpoint does not require authentication.
26
+ # @param [Hash] opts the optional parameters
27
+ # @return [Hash<String, String>]
28
+ describe 'languages_list test' do
29
+ it 'should work' do
30
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
31
+ end
32
+ end
33
+
34
+ end
@@ -50,4 +50,10 @@ describe 'JobTemplateCreateParameters' do
50
50
  end
51
51
  end
52
52
 
53
+ describe 'test attribute "owner_id"' do
54
+ it 'should work' do
55
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
56
+ end
57
+ end
58
+
53
59
  end
@@ -50,4 +50,10 @@ describe 'JobTemplateUpdateParameters' do
50
50
  end
51
51
  end
52
52
 
53
+ describe 'test attribute "owner_id"' do
54
+ it 'should work' do
55
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
56
+ end
57
+ end
58
+
53
59
  end
@@ -38,4 +38,10 @@ describe 'OrganizationJobTemplateCreateParameters' do
38
38
  end
39
39
  end
40
40
 
41
+ describe 'test attribute "owner_id"' do
42
+ it 'should work' do
43
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
44
+ end
45
+ end
46
+
41
47
  end
@@ -38,4 +38,10 @@ describe 'OrganizationJobTemplateUpdateParameters' do
38
38
  end
39
39
  end
40
40
 
41
+ describe 'test attribute "owner_id"' do
42
+ it 'should work' do
43
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
44
+ end
45
+ end
46
+
41
47
  end
@@ -215,6 +215,10 @@ describe 'ProjectCreateParameters' do
215
215
  describe 'test attribute "translation_keys_sort_collation"' do
216
216
  it 'should work' do
217
217
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
218
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
219
+ # validator.allowable_values.each do |value|
220
+ # expect { @instance.translation_keys_sort_collation = value }.not_to raise_error
221
+ # end
218
222
  end
219
223
  end
220
224
 
@@ -200,6 +200,16 @@ describe 'ProjectDetails' do
200
200
  end
201
201
  end
202
202
 
203
+ describe 'test attribute "translation_keys_sort_collation"' do
204
+ it 'should work' do
205
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
206
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
207
+ # validator.allowable_values.each do |value|
208
+ # expect { @instance.translation_keys_sort_collation = value }.not_to raise_error
209
+ # end
210
+ end
211
+ end
212
+
203
213
  describe 'test attribute "job_locking_enabled"' do
204
214
  it 'should work' do
205
215
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
@@ -0,0 +1,59 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+ require 'date'
4
+
5
+ # Unit tests for Phrase::ProjectMember
6
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
7
+ # Please update as you see appropriate
8
+ describe 'ProjectMember' do
9
+ before do
10
+ # run before each test
11
+ @instance = Phrase::ProjectMember.new
12
+ end
13
+
14
+ after do
15
+ # run after each test
16
+ end
17
+
18
+ describe 'test an instance of ProjectMember' do
19
+ it 'should create an instance of ProjectMember' do
20
+ expect(@instance).to be_instance_of(Phrase::ProjectMember)
21
+ end
22
+ end
23
+ describe 'test attribute "id"' do
24
+ it 'should work' do
25
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
26
+ end
27
+ end
28
+
29
+ describe 'test attribute "username"' do
30
+ it 'should work' do
31
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
32
+ end
33
+ end
34
+
35
+ describe 'test attribute "name"' do
36
+ it 'should work' do
37
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
+ end
39
+ end
40
+
41
+ describe 'test attribute "position"' do
42
+ it 'should work' do
43
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
44
+ end
45
+ end
46
+
47
+ describe 'test attribute "created_at"' do
48
+ it 'should work' do
49
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
50
+ end
51
+ end
52
+
53
+ describe 'test attribute "updated_at"' do
54
+ it 'should work' do
55
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
56
+ end
57
+ end
58
+
59
+ end
@@ -225,6 +225,10 @@ describe 'ProjectUpdateParameters' do
225
225
  describe 'test attribute "translation_keys_sort_collation"' do
226
226
  it 'should work' do
227
227
  # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
228
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["general_ci", "unicode_ci"])
229
+ # validator.allowable_values.each do |value|
230
+ # expect { @instance.translation_keys_sort_collation = value }.not_to raise_error
231
+ # end
228
232
  end
229
233
  end
230
234
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrase
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.27.0
4
+ version: 4.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phrase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-14 00:00:00.000000000 Z
11
+ date: 2026-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -271,6 +271,7 @@ files:
271
271
  - docs/ProjectCreateParameters.md
272
272
  - docs/ProjectDetails.md
273
273
  - docs/ProjectLocales.md
274
+ - docs/ProjectMember.md
274
275
  - docs/ProjectReport.md
275
276
  - docs/ProjectShort.md
276
277
  - docs/ProjectUpdateParameters.md
@@ -322,6 +323,7 @@ files:
322
323
  - docs/StyleguidePreview.md
323
324
  - docs/StyleguideUpdateParameters.md
324
325
  - docs/Subscription.md
326
+ - docs/SupportedLanguagesApi.md
325
327
  - docs/Tag.md
326
328
  - docs/TagCreateParameters.md
327
329
  - docs/TagWithStats.md
@@ -435,6 +437,7 @@ files:
435
437
  - lib/phrase/api/search_api.rb
436
438
  - lib/phrase/api/spaces_api.rb
437
439
  - lib/phrase/api/style_guides_api.rb
440
+ - lib/phrase/api/supported_languages_api.rb
438
441
  - lib/phrase/api/tags_api.rb
439
442
  - lib/phrase/api/teams_api.rb
440
443
  - lib/phrase/api/translations_api.rb
@@ -601,6 +604,7 @@ files:
601
604
  - lib/phrase/models/project_create_parameters.rb
602
605
  - lib/phrase/models/project_details.rb
603
606
  - lib/phrase/models/project_locales.rb
607
+ - lib/phrase/models/project_member.rb
604
608
  - lib/phrase/models/project_report.rb
605
609
  - lib/phrase/models/project_short.rb
606
610
  - lib/phrase/models/project_update_parameters.rb
@@ -744,6 +748,7 @@ files:
744
748
  - spec/api/search_api_spec.rb
745
749
  - spec/api/spaces_api_spec.rb
746
750
  - spec/api/style_guides_api_spec.rb
751
+ - spec/api/supported_languages_api_spec.rb
747
752
  - spec/api/tags_api_spec.rb
748
753
  - spec/api/teams_api_spec.rb
749
754
  - spec/api/translations_api_spec.rb
@@ -908,6 +913,7 @@ files:
908
913
  - spec/models/project_create_parameters_spec.rb
909
914
  - spec/models/project_details_spec.rb
910
915
  - spec/models/project_locales_spec.rb
916
+ - spec/models/project_member_spec.rb
911
917
  - spec/models/project_report_spec.rb
912
918
  - spec/models/project_short_spec.rb
913
919
  - spec/models/project_spec.rb
@@ -1034,6 +1040,7 @@ test_files:
1034
1040
  - spec/api/machine_translation_api_spec.rb
1035
1041
  - spec/api/screenshot_markers_api_spec.rb
1036
1042
  - spec/api/comment_replies_api_spec.rb
1043
+ - spec/api/supported_languages_api_spec.rb
1037
1044
  - spec/api/job_comments_api_spec.rb
1038
1045
  - spec/api/screenshots_api_spec.rb
1039
1046
  - spec/api/orders_api_spec.rb
@@ -1122,6 +1129,7 @@ test_files:
1122
1129
  - spec/models/variable_create_parameters_spec.rb
1123
1130
  - spec/models/space_spec.rb
1124
1131
  - spec/models/document_delete422_response_errors_inner_spec.rb
1132
+ - spec/models/project_member_spec.rb
1125
1133
  - spec/models/space_update_parameters_spec.rb
1126
1134
  - spec/models/comment_spec.rb
1127
1135
  - spec/models/branch_create_parameters_spec.rb