ultracart_api 3.10.126 → 3.10.127

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e04c6f616cdf5cb99b8cde7b1c1de250f497340acf579d4ba24b80f36a64f164
4
- data.tar.gz: cade080fb27b592da1d720713e7047e6d36347bd83624d966a7999aaacb1d9de
3
+ metadata.gz: 9b048b7cad8d5f9d279f49945dccba5a4762f613c54ff7d94370b5a2b57ca539
4
+ data.tar.gz: b4705f7af0715909dd869a33e5ad622974911da00f6b5fc92b0fbde87b2b6428
5
5
  SHA512:
6
- metadata.gz: 3b16540bc3169bb2ad5eeafe7d6821fd4913143b0ed53061438116524f0eb8aba74d4bdfdf1304c977eb47ff4ff608a0c23e80861f5a20e29d8b43ed3cba1401
7
- data.tar.gz: 7c25afc3a6a01a7534ee028a3c3aada879a9962153c858deeb50fa9011faa8144d93e840dfc7f59c04acf2b407aaa09386e061be2a634582066d2de52a97801e
6
+ metadata.gz: f59f8a93970d4b69e8cf590626c951f48c127e6184cb4fae108157c49dfd856770e3fe48b719349aea5e0c6bfa229b2246bebe4143532aaafec039405242eb42
7
+ data.tar.gz: bf13639adb5ae4f3c5e68360a5a155044978c9761f20636a253412f109ccc344ca9358fb8d8400982c289d5e1d6f58b1805230fb3063d95df012b9bc6d9a7cd4
data/README.md CHANGED
@@ -7,7 +7,7 @@ UltraCart REST API Version 2
7
7
  This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
8
8
 
9
9
  - API version: 2.0.0
10
- - Package version: 3.10.126
10
+ - Package version: 3.10.127
11
11
  - Build package: io.swagger.codegen.languages.RubyClientCodegen
12
12
  For more information, please visit [http://www.ultracart.com](http://www.ultracart.com)
13
13
 
@@ -24,15 +24,15 @@ gem build ultracart_api.gemspec
24
24
  Then either install the gem locally:
25
25
 
26
26
  ```shell
27
- gem install ./ultracart_api-3.10.126.gem
27
+ gem install ./ultracart_api-3.10.127.gem
28
28
  ```
29
- (for development, run `gem install --dev ./ultracart_api-3.10.126.gem` to install the development dependencies)
29
+ (for development, run `gem install --dev ./ultracart_api-3.10.127.gem` to install the development dependencies)
30
30
 
31
31
  or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
32
32
 
33
33
  Finally add this to the Gemfile:
34
34
 
35
- gem 'ultracart_api', '~> 3.10.126'
35
+ gem 'ultracart_api', '~> 3.10.127'
36
36
 
37
37
  ### Install from Git
38
38
 
@@ -1138,7 +1138,6 @@ Class | Method | HTTP request | Description
1138
1138
  - [UltracartClient::ReportDataSetResponse](docs/ReportDataSetResponse.md)
1139
1139
  - [UltracartClient::ReportDataSetRow](docs/ReportDataSetRow.md)
1140
1140
  - [UltracartClient::ReportDataSetSchema](docs/ReportDataSetSchema.md)
1141
- - [UltracartClient::ReportDataSetSummary](docs/ReportDataSetSummary.md)
1142
1141
  - [UltracartClient::ReportDataSource](docs/ReportDataSource.md)
1143
1142
  - [UltracartClient::ReportDataSourceSchema](docs/ReportDataSourceSchema.md)
1144
1143
  - [UltracartClient::ReportExecuteQueriesRequest](docs/ReportExecuteQueriesRequest.md)
@@ -1340,6 +1339,7 @@ Not every change is committed to every SDK.
1340
1339
 
1341
1340
  | Version | Date | Comments |
1342
1341
  | --: | :-: | --- |
1342
+ | 3.10.127 | 03/29/2023 | internal development |
1343
1343
  | 3.10.126 | 03/22/2023 | data warehouse internal dev |
1344
1344
  | 3.10.125 | 03/22/2023 | dw initial framework |
1345
1345
  | 3.10.124 | 03/22/2023 | order api - refundable response added manual_because_multiple_charges boolean field |
data/docs/Experiment.md CHANGED
@@ -13,7 +13,12 @@ Name | Type | Description | Notes
13
13
  **notes** | **String** | Notes about the experiment | [optional]
14
14
  **objective** | **String** | Objective that is being optimized | [optional]
15
15
  **objective_parameter** | **String** | Objective parameter (such as event name) that is being optimized | [optional]
16
+ **openai_current_iteration** | **Integer** | The current iteration of the OpenAI related experiment | [optional]
17
+ **openai_element_type** | **String** | The type of OpenAI element being experimented on | [optional]
18
+ **openai_model** | **String** | The type of OpenAI model used | [optional]
19
+ **openai_total_iterations** | **Integer** | The total number of iterations to perform on the experiment | [optional]
16
20
  **optimization_type** | **String** | Type of optimization | [optional]
21
+ **p_value** | **Float** | Statistics p-value for the experiment | [optional]
17
22
  **session_count** | **Integer** | Total number of sessions in the experiment | [optional]
18
23
  **start_dts** | **String** | Start date/time | [optional]
19
24
  **status** | **String** | Status of the experiment | [optional]
@@ -4,6 +4,6 @@
4
4
  Name | Type | Description | Notes
5
5
  ------------ | ------------- | ------------- | -------------
6
6
  **event_type** | **String** | Event type | [optional]
7
- **query_completion** | [**ReportDataSetSummary**](ReportDataSetSummary.md) | | [optional]
7
+ **query_completion** | [**ReportDataSet**](ReportDataSet.md) | | [optional]
8
8
 
9
9
 
@@ -44,9 +44,24 @@ module UltracartClient
44
44
  # Objective parameter (such as event name) that is being optimized
45
45
  attr_accessor :objective_parameter
46
46
 
47
+ # The current iteration of the OpenAI related experiment
48
+ attr_accessor :openai_current_iteration
49
+
50
+ # The type of OpenAI element being experimented on
51
+ attr_accessor :openai_element_type
52
+
53
+ # The type of OpenAI model used
54
+ attr_accessor :openai_model
55
+
56
+ # The total number of iterations to perform on the experiment
57
+ attr_accessor :openai_total_iterations
58
+
47
59
  # Type of optimization
48
60
  attr_accessor :optimization_type
49
61
 
62
+ # Statistics p-value for the experiment
63
+ attr_accessor :p_value
64
+
50
65
  # Total number of sessions in the experiment
51
66
  attr_accessor :session_count
52
67
 
@@ -103,7 +118,12 @@ module UltracartClient
103
118
  :'notes' => :'notes',
104
119
  :'objective' => :'objective',
105
120
  :'objective_parameter' => :'objective_parameter',
121
+ :'openai_current_iteration' => :'openai_current_iteration',
122
+ :'openai_element_type' => :'openai_element_type',
123
+ :'openai_model' => :'openai_model',
124
+ :'openai_total_iterations' => :'openai_total_iterations',
106
125
  :'optimization_type' => :'optimization_type',
126
+ :'p_value' => :'p_value',
107
127
  :'session_count' => :'session_count',
108
128
  :'start_dts' => :'start_dts',
109
129
  :'status' => :'status',
@@ -127,7 +147,12 @@ module UltracartClient
127
147
  :'notes' => :'String',
128
148
  :'objective' => :'String',
129
149
  :'objective_parameter' => :'String',
150
+ :'openai_current_iteration' => :'Integer',
151
+ :'openai_element_type' => :'String',
152
+ :'openai_model' => :'String',
153
+ :'openai_total_iterations' => :'Integer',
130
154
  :'optimization_type' => :'String',
155
+ :'p_value' => :'Float',
131
156
  :'session_count' => :'Integer',
132
157
  :'start_dts' => :'String',
133
158
  :'status' => :'String',
@@ -186,10 +211,30 @@ module UltracartClient
186
211
  self.objective_parameter = attributes[:'objective_parameter']
187
212
  end
188
213
 
214
+ if attributes.has_key?(:'openai_current_iteration')
215
+ self.openai_current_iteration = attributes[:'openai_current_iteration']
216
+ end
217
+
218
+ if attributes.has_key?(:'openai_element_type')
219
+ self.openai_element_type = attributes[:'openai_element_type']
220
+ end
221
+
222
+ if attributes.has_key?(:'openai_model')
223
+ self.openai_model = attributes[:'openai_model']
224
+ end
225
+
226
+ if attributes.has_key?(:'openai_total_iterations')
227
+ self.openai_total_iterations = attributes[:'openai_total_iterations']
228
+ end
229
+
189
230
  if attributes.has_key?(:'optimization_type')
190
231
  self.optimization_type = attributes[:'optimization_type']
191
232
  end
192
233
 
234
+ if attributes.has_key?(:'p_value')
235
+ self.p_value = attributes[:'p_value']
236
+ end
237
+
193
238
  if attributes.has_key?(:'session_count')
194
239
  self.session_count = attributes[:'session_count']
195
240
  end
@@ -231,11 +276,23 @@ module UltracartClient
231
276
  # Check to see if the all the properties in the model are valid
232
277
  # @return true if the model is valid
233
278
  def valid?
279
+ openai_element_type_validator = EnumAttributeValidator.new('String', ['headline', 'text', 'textblock'])
280
+ return false unless openai_element_type_validator.valid?(@openai_element_type)
234
281
  status_validator = EnumAttributeValidator.new('String', ['Running', 'Ended', 'Deleted'])
235
282
  return false unless status_validator.valid?(@status)
236
283
  true
237
284
  end
238
285
 
286
+ # Custom attribute writer method checking allowed values (enum).
287
+ # @param [Object] openai_element_type Object to be assigned
288
+ def openai_element_type=(openai_element_type)
289
+ validator = EnumAttributeValidator.new('String', ['headline', 'text', 'textblock'])
290
+ unless validator.valid?(openai_element_type)
291
+ fail ArgumentError, 'invalid value for "openai_element_type", must be one of #{validator.allowable_values}.'
292
+ end
293
+ @openai_element_type = openai_element_type
294
+ end
295
+
239
296
  # Custom attribute writer method checking allowed values (enum).
240
297
  # @param [Object] status Object to be assigned
241
298
  def status=(status)
@@ -261,7 +318,12 @@ module UltracartClient
261
318
  notes == o.notes &&
262
319
  objective == o.objective &&
263
320
  objective_parameter == o.objective_parameter &&
321
+ openai_current_iteration == o.openai_current_iteration &&
322
+ openai_element_type == o.openai_element_type &&
323
+ openai_model == o.openai_model &&
324
+ openai_total_iterations == o.openai_total_iterations &&
264
325
  optimization_type == o.optimization_type &&
326
+ p_value == o.p_value &&
265
327
  session_count == o.session_count &&
266
328
  start_dts == o.start_dts &&
267
329
  status == o.status &&
@@ -280,7 +342,7 @@ module UltracartClient
280
342
  # Calculates hash code according to all attributes.
281
343
  # @return [Fixnum] Hash code
282
344
  def hash
283
- [container_id, duration_days, end_dts, equal_weighting, experiment_type, id, name, notes, objective, objective_parameter, optimization_type, session_count, start_dts, status, storefront_experiment_oid, storefront_oid, uri, variations].hash
345
+ [container_id, duration_days, end_dts, equal_weighting, experiment_type, id, name, notes, objective, objective_parameter, openai_current_iteration, openai_element_type, openai_model, openai_total_iterations, optimization_type, p_value, session_count, start_dts, status, storefront_experiment_oid, storefront_oid, uri, variations].hash
284
346
  end
285
347
 
286
348
  # Builds the object from hash
@@ -53,7 +53,7 @@ module UltracartClient
53
53
  def self.swagger_types
54
54
  {
55
55
  :'event_type' => :'String',
56
- :'query_completion' => :'ReportDataSetSummary'
56
+ :'query_completion' => :'ReportDataSet'
57
57
  }
58
58
  end
59
59
 
@@ -11,5 +11,5 @@ Swagger Codegen version: 2.4.15-SNAPSHOT
11
11
  =end
12
12
 
13
13
  module UltracartClient
14
- VERSION = '3.10.126'
14
+ VERSION = '3.10.127'
15
15
  end
data/lib/ultracart_api.rb CHANGED
@@ -652,7 +652,6 @@ require 'ultracart_api/models/report_data_set_query'
652
652
  require 'ultracart_api/models/report_data_set_response'
653
653
  require 'ultracart_api/models/report_data_set_row'
654
654
  require 'ultracart_api/models/report_data_set_schema'
655
- require 'ultracart_api/models/report_data_set_summary'
656
655
  require 'ultracart_api/models/report_data_source'
657
656
  require 'ultracart_api/models/report_data_source_schema'
658
657
  require 'ultracart_api/models/report_execute_queries_request'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultracart_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.10.126
4
+ version: 3.10.127
5
5
  platform: ruby
6
6
  authors:
7
7
  - UltraCart
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-22 00:00:00.000000000 Z
11
+ date: 2023-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -871,7 +871,6 @@ files:
871
871
  - docs/ReportDataSetResponse.md
872
872
  - docs/ReportDataSetRow.md
873
873
  - docs/ReportDataSetSchema.md
874
- - docs/ReportDataSetSummary.md
875
874
  - docs/ReportDataSource.md
876
875
  - docs/ReportDataSourceSchema.md
877
876
  - docs/ReportExecuteQueriesRequest.md
@@ -1668,7 +1667,6 @@ files:
1668
1667
  - lib/ultracart_api/models/report_data_set_response.rb
1669
1668
  - lib/ultracart_api/models/report_data_set_row.rb
1670
1669
  - lib/ultracart_api/models/report_data_set_schema.rb
1671
- - lib/ultracart_api/models/report_data_set_summary.rb
1672
1670
  - lib/ultracart_api/models/report_data_source.rb
1673
1671
  - lib/ultracart_api/models/report_data_source_schema.rb
1674
1672
  - lib/ultracart_api/models/report_execute_queries_request.rb
@@ -1,14 +0,0 @@
1
- # UltracartClient::ReportDataSetSummary
2
-
3
- ## Properties
4
- Name | Type | Description | Notes
5
- ------------ | ------------- | ------------- | -------------
6
- **data_set_uuid** | **String** | A unique identifier assigned to the data set that is returned. | [optional]
7
- **error_message** | **String** | Error message if the query failed. | [optional]
8
- **for_object_id** | **String** | An identifier that can be used to help match up the returned data set | [optional]
9
- **for_object_type** | **String** | The type of object this data set is for | [optional]
10
- **max_results** | **Integer** | The total number of results | [optional]
11
- **schema** | [**Array<ReportDataSetSchema>**](ReportDataSetSchema.md) | The schema associated with the data set. | [optional]
12
- **user_data** | **String** | Any other data that needs to be returned with the response to help the UI | [optional]
13
-
14
-
@@ -1,281 +0,0 @@
1
- =begin
2
- #UltraCart Rest API V2
3
-
4
- #UltraCart REST API Version 2
5
-
6
- OpenAPI spec version: 2.0.0
7
- Contact: support@ultracart.com
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: 2.4.15-SNAPSHOT
10
-
11
- =end
12
-
13
- require 'date'
14
-
15
- module UltracartClient
16
- class ReportDataSetSummary
17
- # A unique identifier assigned to the data set that is returned.
18
- attr_accessor :data_set_uuid
19
-
20
- # Error message if the query failed.
21
- attr_accessor :error_message
22
-
23
- # An identifier that can be used to help match up the returned data set
24
- attr_accessor :for_object_id
25
-
26
- # The type of object this data set is for
27
- attr_accessor :for_object_type
28
-
29
- # The total number of results
30
- attr_accessor :max_results
31
-
32
- # The schema associated with the data set.
33
- attr_accessor :schema
34
-
35
- # Any other data that needs to be returned with the response to help the UI
36
- attr_accessor :user_data
37
-
38
- class EnumAttributeValidator
39
- attr_reader :datatype
40
- attr_reader :allowable_values
41
-
42
- def initialize(datatype, allowable_values)
43
- @allowable_values = allowable_values.map do |value|
44
- case datatype.to_s
45
- when /Integer/i
46
- value.to_i
47
- when /Float/i
48
- value.to_f
49
- else
50
- value
51
- end
52
- end
53
- end
54
-
55
- def valid?(value)
56
- !value || allowable_values.include?(value)
57
- end
58
- end
59
-
60
- # Attribute mapping from ruby-style variable name to JSON key.
61
- def self.attribute_map
62
- {
63
- :'data_set_uuid' => :'data_set_uuid',
64
- :'error_message' => :'error_message',
65
- :'for_object_id' => :'for_object_id',
66
- :'for_object_type' => :'for_object_type',
67
- :'max_results' => :'max_results',
68
- :'schema' => :'schema',
69
- :'user_data' => :'user_data'
70
- }
71
- end
72
-
73
- # Attribute type mapping.
74
- def self.swagger_types
75
- {
76
- :'data_set_uuid' => :'String',
77
- :'error_message' => :'String',
78
- :'for_object_id' => :'String',
79
- :'for_object_type' => :'String',
80
- :'max_results' => :'Integer',
81
- :'schema' => :'Array<ReportDataSetSchema>',
82
- :'user_data' => :'String'
83
- }
84
- end
85
-
86
- # Initializes the object
87
- # @param [Hash] attributes Model attributes in the form of hash
88
- def initialize(attributes = {})
89
- return unless attributes.is_a?(Hash)
90
-
91
- # convert string to symbol for hash key
92
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
93
-
94
- if attributes.has_key?(:'data_set_uuid')
95
- self.data_set_uuid = attributes[:'data_set_uuid']
96
- end
97
-
98
- if attributes.has_key?(:'error_message')
99
- self.error_message = attributes[:'error_message']
100
- end
101
-
102
- if attributes.has_key?(:'for_object_id')
103
- self.for_object_id = attributes[:'for_object_id']
104
- end
105
-
106
- if attributes.has_key?(:'for_object_type')
107
- self.for_object_type = attributes[:'for_object_type']
108
- end
109
-
110
- if attributes.has_key?(:'max_results')
111
- self.max_results = attributes[:'max_results']
112
- end
113
-
114
- if attributes.has_key?(:'schema')
115
- if (value = attributes[:'schema']).is_a?(Array)
116
- self.schema = value
117
- end
118
- end
119
-
120
- if attributes.has_key?(:'user_data')
121
- self.user_data = attributes[:'user_data']
122
- end
123
- end
124
-
125
- # Show invalid properties with the reasons. Usually used together with valid?
126
- # @return Array for valid properties with the reasons
127
- def list_invalid_properties
128
- invalid_properties = Array.new
129
- invalid_properties
130
- end
131
-
132
- # Check to see if the all the properties in the model are valid
133
- # @return true if the model is valid
134
- def valid?
135
- for_object_type_validator = EnumAttributeValidator.new('String', ['schema', 'filter', 'visualization'])
136
- return false unless for_object_type_validator.valid?(@for_object_type)
137
- true
138
- end
139
-
140
- # Custom attribute writer method checking allowed values (enum).
141
- # @param [Object] for_object_type Object to be assigned
142
- def for_object_type=(for_object_type)
143
- validator = EnumAttributeValidator.new('String', ['schema', 'filter', 'visualization'])
144
- unless validator.valid?(for_object_type)
145
- fail ArgumentError, 'invalid value for "for_object_type", must be one of #{validator.allowable_values}.'
146
- end
147
- @for_object_type = for_object_type
148
- end
149
-
150
- # Checks equality by comparing each attribute.
151
- # @param [Object] Object to be compared
152
- def ==(o)
153
- return true if self.equal?(o)
154
- self.class == o.class &&
155
- data_set_uuid == o.data_set_uuid &&
156
- error_message == o.error_message &&
157
- for_object_id == o.for_object_id &&
158
- for_object_type == o.for_object_type &&
159
- max_results == o.max_results &&
160
- schema == o.schema &&
161
- user_data == o.user_data
162
- end
163
-
164
- # @see the `==` method
165
- # @param [Object] Object to be compared
166
- def eql?(o)
167
- self == o
168
- end
169
-
170
- # Calculates hash code according to all attributes.
171
- # @return [Fixnum] Hash code
172
- def hash
173
- [data_set_uuid, error_message, for_object_id, for_object_type, max_results, schema, user_data].hash
174
- end
175
-
176
- # Builds the object from hash
177
- # @param [Hash] attributes Model attributes in the form of hash
178
- # @return [Object] Returns the model itself
179
- def build_from_hash(attributes)
180
- return nil unless attributes.is_a?(Hash)
181
- self.class.swagger_types.each_pair do |key, type|
182
- if type =~ /\AArray<(.*)>/i
183
- # check to ensure the input is an array given that the attribute
184
- # is documented as an array but the input is not
185
- if attributes[self.class.attribute_map[key]].is_a?(Array)
186
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
187
- end
188
- elsif !attributes[self.class.attribute_map[key]].nil?
189
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
190
- end # or else data not found in attributes(hash), not an issue as the data can be optional
191
- end
192
-
193
- self
194
- end
195
-
196
- # Deserializes the data based on type
197
- # @param string type Data type
198
- # @param string value Value to be deserialized
199
- # @return [Object] Deserialized data
200
- def _deserialize(type, value)
201
- case type.to_sym
202
- when :DateTime
203
- DateTime.parse(value)
204
- when :Date
205
- Date.parse(value)
206
- when :String
207
- value.to_s
208
- when :Integer
209
- value.to_i
210
- when :Float
211
- value.to_f
212
- when :BOOLEAN
213
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
214
- true
215
- else
216
- false
217
- end
218
- when :Object
219
- # generic object (usually a Hash), return directly
220
- value
221
- when /\AArray<(?<inner_type>.+)>\z/
222
- inner_type = Regexp.last_match[:inner_type]
223
- value.map { |v| _deserialize(inner_type, v) }
224
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
225
- k_type = Regexp.last_match[:k_type]
226
- v_type = Regexp.last_match[:v_type]
227
- {}.tap do |hash|
228
- value.each do |k, v|
229
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
230
- end
231
- end
232
- else # model
233
- temp_model = UltracartClient.const_get(type).new
234
- temp_model.build_from_hash(value)
235
- end
236
- end
237
-
238
- # Returns the string representation of the object
239
- # @return [String] String presentation of the object
240
- def to_s
241
- to_hash.to_s
242
- end
243
-
244
- # to_body is an alias to to_hash (backward compatibility)
245
- # @return [Hash] Returns the object in the form of hash
246
- def to_body
247
- to_hash
248
- end
249
-
250
- # Returns the object in the form of hash
251
- # @return [Hash] Returns the object in the form of hash
252
- def to_hash
253
- hash = {}
254
- self.class.attribute_map.each_pair do |attr, param|
255
- value = self.send(attr)
256
- next if value.nil?
257
- hash[param] = _to_hash(value)
258
- end
259
- hash
260
- end
261
-
262
- # Outputs non-array value in the form of hash
263
- # For object, use to_hash. Otherwise, just return the value
264
- # @param [Object] value Any valid value
265
- # @return [Hash] Returns the value in the form of hash
266
- def _to_hash(value)
267
- if value.is_a?(Array)
268
- value.compact.map { |v| _to_hash(v) }
269
- elsif value.is_a?(Hash)
270
- {}.tap do |hash|
271
- value.each { |k, v| hash[k] = _to_hash(v) }
272
- end
273
- elsif value.respond_to? :to_hash
274
- value.to_hash
275
- else
276
- value
277
- end
278
- end
279
-
280
- end
281
- end