restforce 5.0.3 → 5.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43dd7a44892fe474e75c2c34c559db906d62a5033082d9ec503821062d5c2963
4
- data.tar.gz: 1456a0ce05d02ee1e0b6b463b968f81f5203af696911033099b763cf6b72d5ac
3
+ metadata.gz: d2ebb847392113fcf833f6f2443d0657d14f53482b960ff1390fd5616834916b
4
+ data.tar.gz: 95cb01955dbcb299459744f2f91d9573c449eed4fd87d71d341cf7f914ff648d
5
5
  SHA512:
6
- metadata.gz: 5b81736f011a6dde87f63506a2942a2aebd6eaeb3445cba5739fcf440dfc79bbcfa5efd52a6a88021ad90eb8f746f0b6ebff2bcaed74834823bd6ec1676a2669
7
- data.tar.gz: b840db425dfbe9b06a7cb525b476d236132f20d10f03ad87dd54c8f916957e3cb80afc8531129aeff8b4f1c04947c15ad66d00fec4038a73c4cf47adcd143973
6
+ metadata.gz: 6c226ceb9362acc3108351382988d0e422b0428e2513b99943fa081b1611cb713191293d8e59521f5eba7fc3008822ff182850c127ece2f20ed32e7f2b562831
7
+ data.tar.gz: 42596e83eaf35fce0194af666607e4fb1a57a1e64e0235c7f6d9e2794eb3e4a05a0b5063f1cd7376b29e20f81e4b360c9484d843126317d99a4c542129e0d99d
@@ -1,3 +1,12 @@
1
+ ## 5.0.4 (Jan 18, 2021)
2
+
3
+ * Handle the `INVALID_QUERY_LOCATOR` error returned by Salesforce
4
+ * Handle the `INVALID_OPERATION_WITH_EXPIRED_PASSWORD` error returned by Salesforce
5
+ * Handle the `FIELD_INTEGRITY_EXCEPTION` error returned by Salesforce
6
+ * Handle the `FORBIDDEN` error returned by Salesforce
7
+ * Handle the `ILLEGAL_QUERY_PARAMETER_VALUE` error returned by Salesforce
8
+ * Handle the `JSON_PARSER_ERROR` error returned by Salesforce
9
+
1
10
  ## 5.0.3 (Sep 8, 2020)
2
11
 
3
12
  * Handle the undocumented `EXCEEDED_MAX_SEMIJOIN_SUBSELECTS` error returned by Salesforce (@embertel, @timrogers)
data/README.md CHANGED
@@ -25,7 +25,7 @@ Features include:
25
25
 
26
26
  Add this line to your application's Gemfile:
27
27
 
28
- gem 'restforce', '~> 5.0.3'
28
+ gem 'restforce', '~> 5.0.4'
29
29
 
30
30
  And then execute:
31
31
 
@@ -95,9 +95,7 @@ module Restforce
95
95
 
96
96
  def replay_id(channel)
97
97
  handler = @replay_handlers[channel]
98
- if handler.is_a?(Integer)
99
- handler # treat it as a scalar
100
- elsif handler.respond_to?(:[])
98
+ if handler.respond_to?(:[]) && !handler.is_a?(Integer)
101
99
  # Ask for the latest replayId for this channel
102
100
  handler[channel]
103
101
  else
@@ -14,186 +14,379 @@ module Restforce
14
14
  # It is possible that we will be missing some errors, so we will handle this in
15
15
  # at least a semi-graceful manner.
16
16
  class AllOrNoneOperationRolledBack < ResponseError; end
17
+
17
18
  class AlreadyInProcess < ResponseError; end
19
+
18
20
  class ApiCurrentlyDisabled < ResponseError; end
21
+
19
22
  class AssigneeTypeRequired < ResponseError; end
23
+
20
24
  class BadCustomEntityParentDomain < ResponseError; end
25
+
21
26
  class BccNotAllowedIfBccComplianceEnabled < ResponseError; end
27
+
22
28
  class BccSelfNotAllowedIfBccComplianceEnabled < ResponseError; end
29
+
23
30
  class CannotCascadeProductActive < ResponseError; end
31
+
24
32
  class CannotChangeFieldTypeOfApexReferencedField < ResponseError; end
33
+
25
34
  class CannotCreateAnotherManagedPackage < ResponseError; end
35
+
26
36
  class CannotDeactivateDivision < ResponseError; end
37
+
27
38
  class CannotDeleteLastDatedConversionRate < ResponseError; end
39
+
28
40
  class CannotDeleteManagedObject < ResponseError; end
41
+
29
42
  class CannotDisableLastAdmin < ResponseError; end
43
+
30
44
  class CannotEnableIpRestrictRequests < ResponseError; end
45
+
31
46
  class CannotInsertUpdateActivateEntity < ResponseError; end
47
+
32
48
  class CannotModifyManagedObject < ResponseError; end
49
+
33
50
  class CannotRenameApexReferencedField < ResponseError; end
51
+
34
52
  class CannotRenameApexReferencedObject < ResponseError; end
53
+
35
54
  class CannotReparentRecord < ResponseError; end
55
+
36
56
  class CannotResolveName < ResponseError; end
57
+
37
58
  class CannotUpdateConvertedLead < ResponseError; end
59
+
38
60
  class CantDisableCorpCurrency < ResponseError; end
61
+
39
62
  class CantUnsetCorpCurrency < ResponseError; end
63
+
40
64
  class ChildShareFailsParent < ResponseError; end
65
+
41
66
  class CircularDependency < ResponseError; end
67
+
42
68
  class CommunityNotAccessible < ResponseError; end
69
+
43
70
  class CustomClobFieldLimitExceeded < ResponseError; end
71
+
44
72
  class CustomEntityOrFieldLimit < ResponseError; end
73
+
45
74
  class CustomFieldIndexLimitExceeded < ResponseError; end
75
+
46
76
  class CustomIndexExists < ResponseError; end
77
+
47
78
  class CustomLinkLimitExceeded < ResponseError; end
79
+
48
80
  class CustomMetadataLimitExceeded < ResponseError; end
81
+
49
82
  class CustomSettingsLimitExceeded < ResponseError; end
83
+
50
84
  class CustomTabLimitExceeded < ResponseError; end
85
+
51
86
  class DeleteFailed < ResponseError; end
87
+
52
88
  class DependencyExists < ResponseError; end
89
+
53
90
  class DuplicateCaseSolution < ResponseError; end
91
+
54
92
  class DuplicateCustomEntityDefinition < ResponseError; end
93
+
55
94
  class DuplicateCustomTabMotif < ResponseError; end
95
+
56
96
  class DuplicateDeveloperName < ResponseError; end
97
+
57
98
  class DuplicatesDetected < ResponseError; end
99
+
58
100
  class DuplicateExternalId < ResponseError; end
101
+
59
102
  class DuplicateMasterLabel < ResponseError; end
103
+
60
104
  class DuplicateSenderDisplayName < ResponseError; end
105
+
61
106
  class DuplicateUsername < ResponseError; end
107
+
62
108
  class DuplicateValue < ResponseError; end
109
+
63
110
  class EmailAddressBounced < ResponseError; end
111
+
64
112
  class EmailNotProcessedDueToPriorError < ResponseError; end
113
+
65
114
  class EmailOptedOut < ResponseError; end
115
+
66
116
  class EmailTemplateFormulaError < ResponseError; end
117
+
67
118
  class EmailTemplateMergefieldAccessError < ResponseError; end
119
+
68
120
  class EmailTemplateMergefieldError < ResponseError; end
121
+
69
122
  class EmailTemplateMergefieldValueError < ResponseError; end
123
+
70
124
  class EmailTemplateProcessingError < ResponseError; end
125
+
71
126
  class EmptyScontrolFileName < ResponseError; end
127
+
72
128
  class EntityFailedIflastmodifiedOnUpdate < ResponseError; end
129
+
73
130
  class EntityIsArchived < ResponseError; end
131
+
74
132
  class EntityIsDeleted < ResponseError; end
133
+
75
134
  class EntityIsLocked < ResponseError; end
135
+
76
136
  class EnvironmentHubMembershipConflict < ResponseError; end
137
+
77
138
  class ErrorInMailer < ResponseError; end
139
+
78
140
  class ExceededMaxSemijoinSubselects < ResponseError; end
141
+
79
142
  class FailedActivation < ResponseError; end
143
+
80
144
  class FieldCustomValidationException < ResponseError; end
145
+
81
146
  class FieldFilterValidationException < ResponseError; end
147
+
148
+ class FieldIntegrityException < ResponseError; end
149
+
82
150
  class FilteredLookupLimitExceeded < ResponseError; end
151
+
152
+ class Forbidden < ResponseError; end
153
+
83
154
  class HtmlFileUploadNotAllowed < ResponseError; end
155
+
156
+ class IllegalQueryParameterValue < ResponseError; end
157
+
84
158
  class ImageTooLarge < ResponseError; end
159
+
85
160
  class InactiveOwnerOrUser < ResponseError; end
161
+
86
162
  class InsertUpdateDeleteNotAllowedDuringMaintenance < ResponseError; end
163
+
87
164
  class InsufficientAccessOnCrossReferenceEntity < ResponseError; end
165
+
88
166
  class InsufficientAccessOrReadonly < ResponseError; end
167
+
89
168
  class InvalidAccessLevel < ResponseError; end
169
+
90
170
  class InvalidArgumentType < ResponseError; end
171
+
91
172
  class InvalidAssigneeType < ResponseError; end
173
+
92
174
  class InvalidAssignmentRule < ResponseError; end
175
+
93
176
  class InvalidBatchOperation < ResponseError; end
177
+
94
178
  class InvalidContentType < ResponseError; end
179
+
95
180
  class InvalidCreditCardInfo < ResponseError; end
181
+
96
182
  class InvalidCrossReferenceKey < ResponseError; end
183
+
97
184
  class InvalidCrossReferenceTypeForField < ResponseError; end
185
+
98
186
  class InvalidCurrencyConvRate < ResponseError; end
187
+
99
188
  class InvalidCurrencyCorpRate < ResponseError; end
189
+
100
190
  class InvalidCurrencyIso < ResponseError; end
191
+
101
192
  class InvalidEmailAddress < ResponseError; end
193
+
102
194
  class InvalidEmptyKeyOwner < ResponseError; end
195
+
103
196
  class InvalidEventSubscription < ResponseError; end
197
+
104
198
  class InvalidField < ResponseError; end
199
+
105
200
  class InvalidFieldForInsertUpdate < ResponseError; end
201
+
106
202
  class InvalidFieldWhenUsingTemplate < ResponseError; end
203
+
107
204
  class InvalidFilterAction < ResponseError; end
205
+
108
206
  class InvalidIdField < ResponseError; end
207
+
109
208
  class InvalidInetAddress < ResponseError; end
209
+
110
210
  class InvalidLineitemCloneState < ResponseError; end
211
+
111
212
  class InvalidMasterOrTranslatedSolution < ResponseError; end
213
+
112
214
  class InvalidMessageIdReference < ResponseError; end
215
+
113
216
  class InvalidOperation < ResponseError; end
217
+
218
+ class InvalidOperationWithExpiredPassword < ResponseError; end
219
+
114
220
  class InvalidOperator < ResponseError; end
221
+
115
222
  class InvalidOrNullForRestrictedPicklist < ResponseError; end
223
+
116
224
  class InvalidQueryFilterOperator < ResponseError; end
225
+
226
+ class InvalidQueryLocator < ResponseError; end
227
+
117
228
  class InvalidPartnerNetworkStatus < ResponseError; end
229
+
118
230
  class InvalidPersonAccountOperation < ResponseError; end
231
+
119
232
  class InvalidReadOnlyUserDml < ResponseError; end
233
+
120
234
  class InvalidSaveAsActivityFlag < ResponseError; end
235
+
121
236
  class InvalidSessionId < ResponseError; end
237
+
122
238
  class InvalidStatus < ResponseError; end
239
+
123
240
  class InvalidType < ResponseError; end
241
+
124
242
  class InvalidTypeForOperation < ResponseError; end
243
+
125
244
  class InvalidTypeOnFieldInRecord < ResponseError; end
245
+
126
246
  class IpRangeLimitExceeded < ResponseError; end
247
+
127
248
  class JigsawImportLimitExceeded < ResponseError; end
249
+
250
+ class JsonParserError < ResponseError; end
251
+
128
252
  class LicenseLimitExceeded < ResponseError; end
253
+
129
254
  class LightPortalUserException < ResponseError; end
255
+
130
256
  class LimitExceeded < ResponseError; end
257
+
131
258
  class LoginChallengeIssued < ResponseError; end
259
+
132
260
  class LoginChallengePending < ResponseError; end
261
+
133
262
  class LoginMustUseSecurityToken < ResponseError; end
263
+
134
264
  class MalformedId < ResponseError; end
265
+
135
266
  class MalformedQuery < ResponseError; end
267
+
136
268
  class ManagerNotDefined < ResponseError; end
269
+
137
270
  class MassmailRetryLimitExceeded < ResponseError; end
271
+
138
272
  class MassMailLimitExceeded < ResponseError; end
273
+
139
274
  class MaximumCcemailsExceeded < ResponseError; end
275
+
140
276
  class MaximumDashboardComponentsExceeded < ResponseError; end
277
+
141
278
  class MaximumHierarchyLevelsReached < ResponseError; end
279
+
142
280
  class MaximumSizeOfAttachment < ResponseError; end
281
+
143
282
  class MaximumSizeOfDocument < ResponseError; end
283
+
144
284
  class MaxActionsPerRuleExceeded < ResponseError; end
285
+
145
286
  class MaxActiveRulesExceeded < ResponseError; end
287
+
146
288
  class MaxApprovalStepsExceeded < ResponseError; end
289
+
147
290
  class MaxFormulasPerRuleExceeded < ResponseError; end
291
+
148
292
  class MaxRulesExceeded < ResponseError; end
293
+
149
294
  class MaxRuleEntriesExceeded < ResponseError; end
295
+
150
296
  class MaxTaskDescriptionExceeded < ResponseError; end
297
+
151
298
  class MaxTmRulesExceeded < ResponseError; end
299
+
152
300
  class MaxTmRuleItemsExceeded < ResponseError; end
301
+
153
302
  class MergeFailed < ResponseError; end
303
+
154
304
  class MissingArgument < ResponseError; end
305
+
155
306
  class NonuniqueShippingAddress < ResponseError; end
307
+
156
308
  class NoApplicableProcess < ResponseError; end
309
+
157
310
  class NoAttachmentPermission < ResponseError; end
311
+
158
312
  class NoInactiveDivisionMembers < ResponseError; end
313
+
159
314
  class NoMassMailPermission < ResponseError; end
315
+
160
316
  class NumberOutsideValidRange < ResponseError; end
317
+
161
318
  class NumHistoryFieldsBySobjectExceeded < ResponseError; end
319
+
162
320
  class OpWithInvalidUserTypeException < ResponseError; end
321
+
163
322
  class OptedOutOfMassMail < ResponseError; end
323
+
164
324
  class PackageLicenseRequired < ResponseError; end
325
+
165
326
  class PlatformEventEncryptionError < ResponseError; end
327
+
166
328
  class PlatformEventPublishingUnavailable < ResponseError; end
329
+
167
330
  class PlatformEventPublishFailed < ResponseError; end
331
+
168
332
  class PortalUserAlreadyExistsForContact < ResponseError; end
333
+
169
334
  class PrivateContactOnAsset < ResponseError; end
335
+
170
336
  class RecordInUseByWorkflow < ResponseError; end
337
+
171
338
  class RequestLimitExceeded < ResponseError; end
339
+
172
340
  class RequestRunningTooLong < ResponseError; end
341
+
173
342
  class RequiredFieldMissing < ResponseError; end
343
+
174
344
  class SelfReferenceFromTrigger < ResponseError; end
345
+
175
346
  class ServerUnavailable < ResponseError; end
347
+
176
348
  class ShareNeededForChildOwner < ResponseError; end
349
+
177
350
  class SingleEmailLimitExceeded < ResponseError; end
351
+
178
352
  class StandardPriceNotDefined < ResponseError; end
353
+
179
354
  class StorageLimitExceeded < ResponseError; end
355
+
180
356
  class StringTooLong < ResponseError; end
357
+
181
358
  class TabsetLimitExceeded < ResponseError; end
359
+
182
360
  class TemplateNotActive < ResponseError; end
361
+
183
362
  class TerritoryRealignInProgress < ResponseError; end
363
+
184
364
  class TextDataOutsideSupportedCharset < ResponseError; end
365
+
185
366
  class TooManyApexRequests < ResponseError; end
367
+
186
368
  class TooManyEnumValue < ResponseError; end
369
+
187
370
  class TransferRequiresRead < ResponseError; end
371
+
188
372
  class UnableToLockRow < ResponseError; end
373
+
189
374
  class UnavailableRecordtypeException < ResponseError; end
375
+
190
376
  class UndeleteFailed < ResponseError; end
377
+
191
378
  class UnknownException < ResponseError; end
379
+
192
380
  class UnspecifiedEmailAddress < ResponseError; end
381
+
193
382
  class UnsupportedApexTriggerOperation < ResponseError; end
383
+
194
384
  class UnverifiedSenderAddress < ResponseError; end
385
+
195
386
  class WeblinkSizeLimitExceeded < ResponseError; end
387
+
196
388
  class WeblinkUrlInvalid < ResponseError; end
389
+
197
390
  class WrongControllerType < ResponseError; end
198
391
 
199
392
  # Maps `errorCode`s returned from Salesforce to the exception class
@@ -271,8 +464,11 @@ module Restforce
271
464
  "FAILED_ACTIVATION" => FailedActivation,
272
465
  "FIELD_CUSTOM_VALIDATION_EXCEPTION" => FieldCustomValidationException,
273
466
  "FIELD_FILTER_VALIDATION_EXCEPTION" => FieldFilterValidationException,
467
+ "FIELD_INTEGRITY_EXCEPTION" => FieldIntegrityException,
274
468
  "FILTERED_LOOKUP_LIMIT_EXCEEDED" => FilteredLookupLimitExceeded,
469
+ "FORBIDDEN" => Forbidden,
275
470
  "HTML_FILE_UPLOAD_NOT_ALLOWED" => HtmlFileUploadNotAllowed,
471
+ "ILLEGAL_QUERY_PARAMETER_VALUE" => IllegalQueryParameterValue,
276
472
  "IMAGE_TOO_LARGE" => ImageTooLarge,
277
473
  "INACTIVE_OWNER_OR_USER" => InactiveOwnerOrUser,
278
474
  "INSERT_UPDATE_DELETE_NOT_ALLOWED_DURING_MAINTENANCE" =>
@@ -305,10 +501,12 @@ module Restforce
305
501
  "INVALID_MASTER_OR_TRANSLATED_SOLUTION" => InvalidMasterOrTranslatedSolution,
306
502
  "INVALID_MESSAGE_ID_REFERENCE" => InvalidMessageIdReference,
307
503
  "INVALID_OPERATION" => InvalidOperation,
504
+ "INVALID_OPERATION_WITH_EXPIRED_PASSWORD" => InvalidOperationWithExpiredPassword,
308
505
  "INVALID_OPERATOR" => InvalidOperator,
309
506
  "INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST" =>
310
507
  InvalidOrNullForRestrictedPicklist,
311
508
  "INVALID_QUERY_FILTER_OPERATOR" => InvalidQueryFilterOperator,
509
+ "INVALID_QUERY_LOCATOR" => InvalidQueryLocator,
312
510
  "INVALID_PARTNER_NETWORK_STATUS" => InvalidPartnerNetworkStatus,
313
511
  "INVALID_PERSON_ACCOUNT_OPERATION" => InvalidPersonAccountOperation,
314
512
  "INVALID_READ_ONLY_USER_DML" => InvalidReadOnlyUserDml,
@@ -320,6 +518,7 @@ module Restforce
320
518
  "INVALID_TYPE_ON_FIELD_IN_RECORD" => InvalidTypeOnFieldInRecord,
321
519
  "IP_RANGE_LIMIT_EXCEEDED" => IpRangeLimitExceeded,
322
520
  "JIGSAW_IMPORT_LIMIT_EXCEEDED" => JigsawImportLimitExceeded,
521
+ "JSON_PARSER_ERROR" => JsonParserError,
323
522
  "LICENSE_LIMIT_EXCEEDED" => LicenseLimitExceeded,
324
523
  "LIGHT_PORTAL_USER_EXCEPTION" => LightPortalUserException,
325
524
  "LIMIT_EXCEEDED" => LimitExceeded,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Restforce
4
- VERSION = '5.0.3'
4
+ VERSION = '5.0.4'
5
5
  end
@@ -34,7 +34,8 @@ Gem::Specification.new do |gem|
34
34
  gem.add_development_dependency 'faye' unless RUBY_PLATFORM == 'java'
35
35
  gem.add_development_dependency 'rspec', '~> 2.14.0'
36
36
  gem.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
37
- gem.add_development_dependency 'rubocop', '~> 0.90.0'
38
- gem.add_development_dependency 'simplecov', '~> 0.19.0'
39
- gem.add_development_dependency 'webmock', '~> 3.8.3'
37
+
38
+ gem.add_development_dependency 'rubocop', '~> 1.8.1'
39
+ gem.add_development_dependency 'simplecov', '~> 0.21.2'
40
+ gem.add_development_dependency 'webmock', '~> 3.11.1'
40
41
  end
@@ -8,7 +8,9 @@ describe Restforce::Middleware::Authentication do
8
8
  proxy_uri: 'https://not-a-real-site.com',
9
9
  authentication_retries: retries,
10
10
  adapter: :net_http,
11
+ # rubocop:disable Naming/VariableNumber
11
12
  ssl: { version: :TLSv1_2 } }
13
+ # rubocop:enable Naming/VariableNumber
12
14
  end
13
15
 
14
16
  describe '.authenticate!' do
@@ -88,7 +90,9 @@ describe Restforce::Middleware::Authentication do
88
90
  end
89
91
 
90
92
  it "should have SSL config set" do
93
+ # rubocop:disable Naming/VariableNumber
91
94
  connection.ssl[:version].should eq(:TLSv1_2)
95
+ # rubocop:enable Naming/VariableNumber
92
96
  end
93
97
  end
94
98
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.3
4
+ version: 5.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Rogers
8
8
  - Eric J. Holmes
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-09-08 00:00:00.000000000 Z
12
+ date: 2021-01-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -133,42 +133,42 @@ dependencies:
133
133
  requirements:
134
134
  - - "~>"
135
135
  - !ruby/object:Gem::Version
136
- version: 0.90.0
136
+ version: 1.8.1
137
137
  type: :development
138
138
  prerelease: false
139
139
  version_requirements: !ruby/object:Gem::Requirement
140
140
  requirements:
141
141
  - - "~>"
142
142
  - !ruby/object:Gem::Version
143
- version: 0.90.0
143
+ version: 1.8.1
144
144
  - !ruby/object:Gem::Dependency
145
145
  name: simplecov
146
146
  requirement: !ruby/object:Gem::Requirement
147
147
  requirements:
148
148
  - - "~>"
149
149
  - !ruby/object:Gem::Version
150
- version: 0.19.0
150
+ version: 0.21.2
151
151
  type: :development
152
152
  prerelease: false
153
153
  version_requirements: !ruby/object:Gem::Requirement
154
154
  requirements:
155
155
  - - "~>"
156
156
  - !ruby/object:Gem::Version
157
- version: 0.19.0
157
+ version: 0.21.2
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: webmock
160
160
  requirement: !ruby/object:Gem::Requirement
161
161
  requirements:
162
162
  - - "~>"
163
163
  - !ruby/object:Gem::Version
164
- version: 3.8.3
164
+ version: 3.11.1
165
165
  type: :development
166
166
  prerelease: false
167
167
  version_requirements: !ruby/object:Gem::Requirement
168
168
  requirements:
169
169
  - - "~>"
170
170
  - !ruby/object:Gem::Version
171
- version: 3.8.3
171
+ version: 3.11.1
172
172
  description: A lightweight Ruby client for the Salesforce REST API
173
173
  email:
174
174
  - me@timrogers.co.uk
@@ -319,7 +319,7 @@ licenses:
319
319
  metadata:
320
320
  source_code_uri: https://github.com/restforce/restforce
321
321
  changelog_uri: https://github.com/restforce/restforce/blob/master/CHANGELOG.md
322
- post_install_message:
322
+ post_install_message:
323
323
  rdoc_options: []
324
324
  require_paths:
325
325
  - lib
@@ -334,8 +334,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
334
334
  - !ruby/object:Gem::Version
335
335
  version: '0'
336
336
  requirements: []
337
- rubygems_version: 3.1.2
338
- signing_key:
337
+ rubygems_version: 3.2.5
338
+ signing_key:
339
339
  specification_version: 4
340
340
  summary: A lightweight Ruby client for the Salesforce REST API
341
341
  test_files: