pulp_ansible_client 0.21.7 → 0.22.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -15
  3. data/docs/{AnsibleCollection.md → AnsibleAnsibleCollectionDeprecated.md} +4 -2
  4. data/docs/AnsibleAnsibleCollectionDeprecatedResponse.md +25 -0
  5. data/docs/AnsibleCollectionVersion.md +2 -2
  6. data/docs/AnsibleCollectionVersionResponse.md +10 -10
  7. data/docs/AnsibleCollectionsApi.md +60 -0
  8. data/docs/AnsibleGitRemote.md +25 -25
  9. data/docs/AnsibleGitRemoteResponse.md +22 -22
  10. data/docs/AnsibleRoleResponse.md +5 -5
  11. data/docs/CollectionImportDetailResponse.md +2 -2
  12. data/docs/CollectionMetadataResponse.md +2 -2
  13. data/docs/CollectionSummaryResponse.md +2 -2
  14. data/docs/CollectionVersionDocsResponse.md +1 -1
  15. data/docs/CollectionVersionResponse.md +2 -2
  16. data/docs/ContentCollectionDeprecationsApi.md +10 -10
  17. data/docs/ContentCollectionVersionsApi.md +2 -2
  18. data/docs/Copy.md +1 -1
  19. data/docs/{PaginatedGalaxyCollectionVersionResponseList.md → PaginatedansibleAnsibleCollectionDeprecatedResponseList.md} +5 -5
  20. data/docs/PatchedansibleGitRemote.md +25 -25
  21. data/docs/VersionsApi.md +0 -55
  22. data/lib/pulp_ansible_client/api/ansible_collections_api.rb +68 -0
  23. data/lib/pulp_ansible_client/api/content_collection_deprecations_api.rb +20 -20
  24. data/lib/pulp_ansible_client/api/content_collection_versions_api.rb +3 -3
  25. data/lib/pulp_ansible_client/api/versions_api.rb +0 -69
  26. data/lib/pulp_ansible_client/models/{ansible_collection.rb → ansible_ansible_collection_deprecated.rb} +15 -5
  27. data/lib/pulp_ansible_client/models/{galaxy_collection_version_response.rb → ansible_ansible_collection_deprecated_response.rb} +45 -54
  28. data/lib/pulp_ansible_client/models/ansible_collection_version.rb +11 -11
  29. data/lib/pulp_ansible_client/models/ansible_collection_version_response.rb +22 -22
  30. data/lib/pulp_ansible_client/models/ansible_git_remote.rb +203 -203
  31. data/lib/pulp_ansible_client/models/ansible_git_remote_response.rb +139 -139
  32. data/lib/pulp_ansible_client/models/ansible_role_response.rb +17 -17
  33. data/lib/pulp_ansible_client/models/collection_import_detail_response.rb +2 -2
  34. data/lib/pulp_ansible_client/models/collection_metadata_response.rb +2 -2
  35. data/lib/pulp_ansible_client/models/collection_summary_response.rb +2 -2
  36. data/lib/pulp_ansible_client/models/collection_version_docs_response.rb +1 -1
  37. data/lib/pulp_ansible_client/models/collection_version_response.rb +2 -2
  38. data/lib/pulp_ansible_client/models/copy.rb +1 -1
  39. data/lib/pulp_ansible_client/models/{paginated_galaxy_collection_response_list.rb → paginatedansible_ansible_collection_deprecated_response_list.rb} +4 -4
  40. data/lib/pulp_ansible_client/models/patchedansible_git_remote.rb +203 -203
  41. data/lib/pulp_ansible_client/version.rb +1 -1
  42. data/lib/pulp_ansible_client.rb +3 -9
  43. data/spec/api/ansible_collections_api_spec.rb +14 -0
  44. data/spec/api/content_collection_deprecations_api_spec.rb +5 -5
  45. data/spec/api/content_collection_versions_api_spec.rb +1 -1
  46. data/spec/api/versions_api_spec.rb +0 -14
  47. data/spec/models/{galaxy_collection_version_response_spec.rb → ansible_ansible_collection_deprecated_response_spec.rb} +11 -17
  48. data/spec/models/{ansible_collection_spec.rb → ansible_ansible_collection_deprecated_spec.rb} +12 -6
  49. data/spec/models/ansible_collection_version_response_spec.rb +3 -3
  50. data/spec/models/ansible_collection_version_spec.rb +3 -3
  51. data/spec/models/ansible_git_remote_response_spec.rb +18 -18
  52. data/spec/models/ansible_git_remote_spec.rb +19 -19
  53. data/spec/models/ansible_role_response_spec.rb +3 -3
  54. data/spec/models/{paginated_galaxy_collection_version_response_list_spec.rb → paginatedansible_ansible_collection_deprecated_response_list_spec.rb} +6 -6
  55. data/spec/models/patchedansible_git_remote_spec.rb +19 -19
  56. metadata +13 -37
  57. data/docs/ApiCollectionsApi.md +0 -112
  58. data/docs/GalaxyCollection.md +0 -23
  59. data/docs/GalaxyCollectionResponse.md +0 -31
  60. data/docs/GalaxyCollectionVersionResponse.md +0 -27
  61. data/docs/GalaxyDetailApi.md +0 -61
  62. data/docs/PaginatedGalaxyCollectionResponseList.md +0 -23
  63. data/docs/PulpAnsibleApiV2CollectionsVersionsApi.md +0 -66
  64. data/lib/pulp_ansible_client/api/api_collections_api.rb +0 -159
  65. data/lib/pulp_ansible_client/api/galaxy_detail_api.rb +0 -88
  66. data/lib/pulp_ansible_client/api/pulp_ansible_api_v2_collections_versions_api.rb +0 -104
  67. data/lib/pulp_ansible_client/models/galaxy_collection.rb +0 -292
  68. data/lib/pulp_ansible_client/models/galaxy_collection_response.rb +0 -294
  69. data/lib/pulp_ansible_client/models/paginated_galaxy_collection_version_response_list.rb +0 -247
  70. data/spec/api/api_collections_api_spec.rb +0 -61
  71. data/spec/api/galaxy_detail_api_spec.rb +0 -48
  72. data/spec/api/pulp_ansible_api_v2_collections_versions_api_spec.rb +0 -51
  73. data/spec/models/galaxy_collection_response_spec.rb +0 -83
  74. data/spec/models/galaxy_collection_spec.rb +0 -59
  75. data/spec/models/paginated_galaxy_collection_response_list_spec.rb +0 -59
@@ -1,292 +0,0 @@
1
- =begin
2
- #Pulp 3 API
3
-
4
- #Fetch, Upload, Organize, and Distribute Software Packages
5
-
6
- The version of the OpenAPI document: v3
7
- Contact: pulp-list@redhat.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
10
-
11
- =end
12
-
13
- require 'date'
14
-
15
- module PulpAnsibleClient
16
- # A serializer for a Collection.
17
- class GalaxyCollection
18
- attr_accessor :id
19
-
20
- attr_accessor :name
21
-
22
- attr_accessor :created
23
-
24
- attr_accessor :modified
25
-
26
- # Attribute mapping from ruby-style variable name to JSON key.
27
- def self.attribute_map
28
- {
29
- :'id' => :'id',
30
- :'name' => :'name',
31
- :'created' => :'created',
32
- :'modified' => :'modified'
33
- }
34
- end
35
-
36
- # Attribute type mapping.
37
- def self.openapi_types
38
- {
39
- :'id' => :'String',
40
- :'name' => :'String',
41
- :'created' => :'DateTime',
42
- :'modified' => :'DateTime'
43
- }
44
- end
45
-
46
- # List of attributes with nullable: true
47
- def self.openapi_nullable
48
- Set.new([
49
- ])
50
- end
51
-
52
- # Initializes the object
53
- # @param [Hash] attributes Model attributes in the form of hash
54
- def initialize(attributes = {})
55
- if (!attributes.is_a?(Hash))
56
- fail ArgumentError, "The input argument (attributes) must be a hash in `PulpAnsibleClient::GalaxyCollection` initialize method"
57
- end
58
-
59
- # check to see if the attribute exists and convert string to symbol for hash key
60
- attributes = attributes.each_with_object({}) { |(k, v), h|
61
- if (!self.class.attribute_map.key?(k.to_sym))
62
- fail ArgumentError, "`#{k}` is not a valid attribute in `PulpAnsibleClient::GalaxyCollection`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
63
- end
64
- h[k.to_sym] = v
65
- }
66
-
67
- if attributes.key?(:'id')
68
- self.id = attributes[:'id']
69
- end
70
-
71
- if attributes.key?(:'name')
72
- self.name = attributes[:'name']
73
- end
74
-
75
- if attributes.key?(:'created')
76
- self.created = attributes[:'created']
77
- end
78
-
79
- if attributes.key?(:'modified')
80
- self.modified = attributes[:'modified']
81
- end
82
- end
83
-
84
- # Show invalid properties with the reasons. Usually used together with valid?
85
- # @return Array for valid properties with the reasons
86
- def list_invalid_properties
87
- invalid_properties = Array.new
88
- if @id.nil?
89
- invalid_properties.push('invalid value for "id", id cannot be nil.')
90
- end
91
-
92
- if @id.to_s.length < 1
93
- invalid_properties.push('invalid value for "id", the character length must be great than or equal to 1.')
94
- end
95
-
96
- if @name.nil?
97
- invalid_properties.push('invalid value for "name", name cannot be nil.')
98
- end
99
-
100
- if @name.to_s.length < 1
101
- invalid_properties.push('invalid value for "name", the character length must be great than or equal to 1.')
102
- end
103
-
104
- if @created.nil?
105
- invalid_properties.push('invalid value for "created", created cannot be nil.')
106
- end
107
-
108
- if @modified.nil?
109
- invalid_properties.push('invalid value for "modified", modified cannot be nil.')
110
- end
111
-
112
- invalid_properties
113
- end
114
-
115
- # Check to see if the all the properties in the model are valid
116
- # @return true if the model is valid
117
- def valid?
118
- return false if @id.nil?
119
- return false if @id.to_s.length < 1
120
- return false if @name.nil?
121
- return false if @name.to_s.length < 1
122
- return false if @created.nil?
123
- return false if @modified.nil?
124
- true
125
- end
126
-
127
- # Custom attribute writer method with validation
128
- # @param [Object] id Value to be assigned
129
- def id=(id)
130
- if id.nil?
131
- fail ArgumentError, 'id cannot be nil'
132
- end
133
-
134
- if id.to_s.length < 1
135
- fail ArgumentError, 'invalid value for "id", the character length must be great than or equal to 1.'
136
- end
137
-
138
- @id = id
139
- end
140
-
141
- # Custom attribute writer method with validation
142
- # @param [Object] name Value to be assigned
143
- def name=(name)
144
- if name.nil?
145
- fail ArgumentError, 'name cannot be nil'
146
- end
147
-
148
- if name.to_s.length < 1
149
- fail ArgumentError, 'invalid value for "name", the character length must be great than or equal to 1.'
150
- end
151
-
152
- @name = name
153
- end
154
-
155
- # Checks equality by comparing each attribute.
156
- # @param [Object] Object to be compared
157
- def ==(o)
158
- return true if self.equal?(o)
159
- self.class == o.class &&
160
- id == o.id &&
161
- name == o.name &&
162
- created == o.created &&
163
- modified == o.modified
164
- end
165
-
166
- # @see the `==` method
167
- # @param [Object] Object to be compared
168
- def eql?(o)
169
- self == o
170
- end
171
-
172
- # Calculates hash code according to all attributes.
173
- # @return [Integer] Hash code
174
- def hash
175
- [id, name, created, modified].hash
176
- end
177
-
178
- # Builds the object from hash
179
- # @param [Hash] attributes Model attributes in the form of hash
180
- # @return [Object] Returns the model itself
181
- def self.build_from_hash(attributes)
182
- new.build_from_hash(attributes)
183
- end
184
-
185
- # Builds the object from hash
186
- # @param [Hash] attributes Model attributes in the form of hash
187
- # @return [Object] Returns the model itself
188
- def build_from_hash(attributes)
189
- return nil unless attributes.is_a?(Hash)
190
- self.class.openapi_types.each_pair do |key, type|
191
- if type =~ /\AArray<(.*)>/i
192
- # check to ensure the input is an array given that the attribute
193
- # is documented as an array but the input is not
194
- if attributes[self.class.attribute_map[key]].is_a?(Array)
195
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
196
- end
197
- elsif !attributes[self.class.attribute_map[key]].nil?
198
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
199
- end # or else data not found in attributes(hash), not an issue as the data can be optional
200
- end
201
-
202
- self
203
- end
204
-
205
- # Deserializes the data based on type
206
- # @param string type Data type
207
- # @param string value Value to be deserialized
208
- # @return [Object] Deserialized data
209
- def _deserialize(type, value)
210
- case type.to_sym
211
- when :DateTime
212
- DateTime.parse(value)
213
- when :Date
214
- Date.parse(value)
215
- when :String
216
- value.to_s
217
- when :Integer
218
- value.to_i
219
- when :Float
220
- value.to_f
221
- when :Boolean
222
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
223
- true
224
- else
225
- false
226
- end
227
- when :Object
228
- # generic object (usually a Hash), return directly
229
- value
230
- when /\AArray<(?<inner_type>.+)>\z/
231
- inner_type = Regexp.last_match[:inner_type]
232
- value.map { |v| _deserialize(inner_type, v) }
233
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
234
- k_type = Regexp.last_match[:k_type]
235
- v_type = Regexp.last_match[:v_type]
236
- {}.tap do |hash|
237
- value.each do |k, v|
238
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
239
- end
240
- end
241
- else # model
242
- PulpAnsibleClient.const_get(type).build_from_hash(value)
243
- end
244
- end
245
-
246
- # Returns the string representation of the object
247
- # @return [String] String presentation of the object
248
- def to_s
249
- to_hash.to_s
250
- end
251
-
252
- # to_body is an alias to to_hash (backward compatibility)
253
- # @return [Hash] Returns the object in the form of hash
254
- def to_body
255
- to_hash
256
- end
257
-
258
- # Returns the object in the form of hash
259
- # @return [Hash] Returns the object in the form of hash
260
- def to_hash
261
- hash = {}
262
- self.class.attribute_map.each_pair do |attr, param|
263
- value = self.send(attr)
264
- if value.nil?
265
- is_nullable = self.class.openapi_nullable.include?(attr)
266
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
267
- end
268
-
269
- hash[param] = _to_hash(value)
270
- end
271
- hash
272
- end
273
-
274
- # Outputs non-array value in the form of hash
275
- # For object, use to_hash. Otherwise, just return the value
276
- # @param [Object] value Any valid value
277
- # @return [Hash] Returns the value in the form of hash
278
- def _to_hash(value)
279
- if value.is_a?(Array)
280
- value.compact.map { |v| _to_hash(v) }
281
- elsif value.is_a?(Hash)
282
- {}.tap do |hash|
283
- value.each { |k, v| hash[k] = _to_hash(v) }
284
- end
285
- elsif value.respond_to? :to_hash
286
- value.to_hash
287
- else
288
- value
289
- end
290
- end
291
- end
292
- end
@@ -1,294 +0,0 @@
1
- =begin
2
- #Pulp 3 API
3
-
4
- #Fetch, Upload, Organize, and Distribute Software Packages
5
-
6
- The version of the OpenAPI document: v3
7
- Contact: pulp-list@redhat.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
10
-
11
- =end
12
-
13
- require 'date'
14
-
15
- module PulpAnsibleClient
16
- # A serializer for a Collection.
17
- class GalaxyCollectionResponse
18
- attr_accessor :id
19
-
20
- attr_accessor :name
21
-
22
- # Create a namespace dict.
23
- attr_accessor :namespace
24
-
25
- # Get href.
26
- attr_accessor :href
27
-
28
- # Get versions_url.
29
- attr_accessor :versions_url
30
-
31
- attr_accessor :created
32
-
33
- attr_accessor :modified
34
-
35
- # Get latest version.
36
- attr_accessor :latest_version
37
-
38
- # Attribute mapping from ruby-style variable name to JSON key.
39
- def self.attribute_map
40
- {
41
- :'id' => :'id',
42
- :'name' => :'name',
43
- :'namespace' => :'namespace',
44
- :'href' => :'href',
45
- :'versions_url' => :'versions_url',
46
- :'created' => :'created',
47
- :'modified' => :'modified',
48
- :'latest_version' => :'latest_version'
49
- }
50
- end
51
-
52
- # Attribute type mapping.
53
- def self.openapi_types
54
- {
55
- :'id' => :'String',
56
- :'name' => :'String',
57
- :'namespace' => :'Object',
58
- :'href' => :'String',
59
- :'versions_url' => :'String',
60
- :'created' => :'DateTime',
61
- :'modified' => :'DateTime',
62
- :'latest_version' => :'Object'
63
- }
64
- end
65
-
66
- # List of attributes with nullable: true
67
- def self.openapi_nullable
68
- Set.new([
69
- ])
70
- end
71
-
72
- # Initializes the object
73
- # @param [Hash] attributes Model attributes in the form of hash
74
- def initialize(attributes = {})
75
- if (!attributes.is_a?(Hash))
76
- fail ArgumentError, "The input argument (attributes) must be a hash in `PulpAnsibleClient::GalaxyCollectionResponse` initialize method"
77
- end
78
-
79
- # check to see if the attribute exists and convert string to symbol for hash key
80
- attributes = attributes.each_with_object({}) { |(k, v), h|
81
- if (!self.class.attribute_map.key?(k.to_sym))
82
- fail ArgumentError, "`#{k}` is not a valid attribute in `PulpAnsibleClient::GalaxyCollectionResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
83
- end
84
- h[k.to_sym] = v
85
- }
86
-
87
- if attributes.key?(:'id')
88
- self.id = attributes[:'id']
89
- end
90
-
91
- if attributes.key?(:'name')
92
- self.name = attributes[:'name']
93
- end
94
-
95
- if attributes.key?(:'namespace')
96
- self.namespace = attributes[:'namespace']
97
- end
98
-
99
- if attributes.key?(:'href')
100
- self.href = attributes[:'href']
101
- end
102
-
103
- if attributes.key?(:'versions_url')
104
- self.versions_url = attributes[:'versions_url']
105
- end
106
-
107
- if attributes.key?(:'created')
108
- self.created = attributes[:'created']
109
- end
110
-
111
- if attributes.key?(:'modified')
112
- self.modified = attributes[:'modified']
113
- end
114
-
115
- if attributes.key?(:'latest_version')
116
- self.latest_version = attributes[:'latest_version']
117
- end
118
- end
119
-
120
- # Show invalid properties with the reasons. Usually used together with valid?
121
- # @return Array for valid properties with the reasons
122
- def list_invalid_properties
123
- invalid_properties = Array.new
124
- if @id.nil?
125
- invalid_properties.push('invalid value for "id", id cannot be nil.')
126
- end
127
-
128
- if @name.nil?
129
- invalid_properties.push('invalid value for "name", name cannot be nil.')
130
- end
131
-
132
- if @created.nil?
133
- invalid_properties.push('invalid value for "created", created cannot be nil.')
134
- end
135
-
136
- if @modified.nil?
137
- invalid_properties.push('invalid value for "modified", modified cannot be nil.')
138
- end
139
-
140
- invalid_properties
141
- end
142
-
143
- # Check to see if the all the properties in the model are valid
144
- # @return true if the model is valid
145
- def valid?
146
- return false if @id.nil?
147
- return false if @name.nil?
148
- return false if @created.nil?
149
- return false if @modified.nil?
150
- true
151
- end
152
-
153
- # Checks equality by comparing each attribute.
154
- # @param [Object] Object to be compared
155
- def ==(o)
156
- return true if self.equal?(o)
157
- self.class == o.class &&
158
- id == o.id &&
159
- name == o.name &&
160
- namespace == o.namespace &&
161
- href == o.href &&
162
- versions_url == o.versions_url &&
163
- created == o.created &&
164
- modified == o.modified &&
165
- latest_version == o.latest_version
166
- end
167
-
168
- # @see the `==` method
169
- # @param [Object] Object to be compared
170
- def eql?(o)
171
- self == o
172
- end
173
-
174
- # Calculates hash code according to all attributes.
175
- # @return [Integer] Hash code
176
- def hash
177
- [id, name, namespace, href, versions_url, created, modified, latest_version].hash
178
- end
179
-
180
- # Builds the object from hash
181
- # @param [Hash] attributes Model attributes in the form of hash
182
- # @return [Object] Returns the model itself
183
- def self.build_from_hash(attributes)
184
- new.build_from_hash(attributes)
185
- end
186
-
187
- # Builds the object from hash
188
- # @param [Hash] attributes Model attributes in the form of hash
189
- # @return [Object] Returns the model itself
190
- def build_from_hash(attributes)
191
- return nil unless attributes.is_a?(Hash)
192
- self.class.openapi_types.each_pair do |key, type|
193
- if type =~ /\AArray<(.*)>/i
194
- # check to ensure the input is an array given that the attribute
195
- # is documented as an array but the input is not
196
- if attributes[self.class.attribute_map[key]].is_a?(Array)
197
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
198
- end
199
- elsif !attributes[self.class.attribute_map[key]].nil?
200
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
201
- end # or else data not found in attributes(hash), not an issue as the data can be optional
202
- end
203
-
204
- self
205
- end
206
-
207
- # Deserializes the data based on type
208
- # @param string type Data type
209
- # @param string value Value to be deserialized
210
- # @return [Object] Deserialized data
211
- def _deserialize(type, value)
212
- case type.to_sym
213
- when :DateTime
214
- DateTime.parse(value)
215
- when :Date
216
- Date.parse(value)
217
- when :String
218
- value.to_s
219
- when :Integer
220
- value.to_i
221
- when :Float
222
- value.to_f
223
- when :Boolean
224
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
225
- true
226
- else
227
- false
228
- end
229
- when :Object
230
- # generic object (usually a Hash), return directly
231
- value
232
- when /\AArray<(?<inner_type>.+)>\z/
233
- inner_type = Regexp.last_match[:inner_type]
234
- value.map { |v| _deserialize(inner_type, v) }
235
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
236
- k_type = Regexp.last_match[:k_type]
237
- v_type = Regexp.last_match[:v_type]
238
- {}.tap do |hash|
239
- value.each do |k, v|
240
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
241
- end
242
- end
243
- else # model
244
- PulpAnsibleClient.const_get(type).build_from_hash(value)
245
- end
246
- end
247
-
248
- # Returns the string representation of the object
249
- # @return [String] String presentation of the object
250
- def to_s
251
- to_hash.to_s
252
- end
253
-
254
- # to_body is an alias to to_hash (backward compatibility)
255
- # @return [Hash] Returns the object in the form of hash
256
- def to_body
257
- to_hash
258
- end
259
-
260
- # Returns the object in the form of hash
261
- # @return [Hash] Returns the object in the form of hash
262
- def to_hash
263
- hash = {}
264
- self.class.attribute_map.each_pair do |attr, param|
265
- value = self.send(attr)
266
- if value.nil?
267
- is_nullable = self.class.openapi_nullable.include?(attr)
268
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
269
- end
270
-
271
- hash[param] = _to_hash(value)
272
- end
273
- hash
274
- end
275
-
276
- # Outputs non-array value in the form of hash
277
- # For object, use to_hash. Otherwise, just return the value
278
- # @param [Object] value Any valid value
279
- # @return [Hash] Returns the value in the form of hash
280
- def _to_hash(value)
281
- if value.is_a?(Array)
282
- value.compact.map { |v| _to_hash(v) }
283
- elsif value.is_a?(Hash)
284
- {}.tap do |hash|
285
- value.each { |k, v| hash[k] = _to_hash(v) }
286
- end
287
- elsif value.respond_to? :to_hash
288
- value.to_hash
289
- else
290
- value
291
- end
292
- end
293
- end
294
- end