attio 0.1.1 → 0.1.3
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 +4 -4
- data/.github/workflows/ci.yml +39 -15
- data/.github/workflows/coverage.yml +67 -0
- data/.github/workflows/pr_checks.yml +25 -7
- data/.github/workflows/release.yml +25 -7
- data/.github/workflows/tests.yml +67 -0
- data/.rubocop.yml +362 -90
- data/CHANGELOG.md +23 -0
- data/CONTRIBUTING.md +4 -4
- data/Gemfile +8 -5
- data/Gemfile.lock +2 -4
- data/README.md +8 -0
- data/Rakefile +8 -6
- data/attio.gemspec +6 -7
- data/danger/Dangerfile +22 -34
- data/docs/example.rb +30 -29
- data/lib/attio/client.rb +31 -29
- data/lib/attio/connection_pool.rb +26 -14
- data/lib/attio/errors.rb +4 -2
- data/lib/attio/http_client.rb +58 -37
- data/lib/attio/logger.rb +37 -27
- data/lib/attio/resources/attributes.rb +12 -5
- data/lib/attio/resources/base.rb +14 -24
- data/lib/attio/resources/lists.rb +16 -7
- data/lib/attio/resources/objects.rb +11 -4
- data/lib/attio/resources/records.rb +42 -47
- data/lib/attio/resources/users.rb +10 -4
- data/lib/attio/resources/workspaces.rb +9 -1
- data/lib/attio/retry_handler.rb +19 -11
- data/lib/attio/version.rb +3 -1
- data/lib/attio.rb +11 -9
- metadata +3 -18
- data/run_tests.rb +0 -52
- data/test_basic.rb +0 -51
- data/test_typhoeus.rb +0 -31
data/.rubocop.yml
CHANGED
@@ -1,133 +1,405 @@
|
|
1
|
-
require:
|
2
|
-
- rubocop-rspec
|
3
|
-
|
4
1
|
AllCops:
|
2
|
+
DisplayCopNames: true
|
5
3
|
TargetRubyVersion: 3.0
|
6
4
|
NewCops: enable
|
7
5
|
Exclude:
|
8
6
|
- 'vendor/**/*'
|
9
7
|
- 'bin/**/*'
|
10
|
-
- 'coverage/**/*'
|
11
|
-
- 'docs/**/*'
|
12
8
|
- 'tmp/**/*'
|
13
|
-
- '
|
14
|
-
- 'Gemfile'
|
15
|
-
- 'Rakefile'
|
9
|
+
- 'spec/**/*'
|
16
10
|
|
17
|
-
|
18
|
-
|
19
|
-
Max: 120
|
20
|
-
AllowedPatterns: ['\A\s*#']
|
11
|
+
Style/Documentation:
|
12
|
+
Enabled: false
|
21
13
|
|
22
|
-
Layout/
|
23
|
-
EnforcedStyle:
|
14
|
+
Layout/CaseIndentation:
|
15
|
+
EnforcedStyle: end
|
24
16
|
|
25
|
-
|
26
|
-
|
27
|
-
Exclude:
|
28
|
-
- 'spec/**/*'
|
29
|
-
- 'Rakefile'
|
17
|
+
Layout/FirstArrayElementIndentation:
|
18
|
+
EnforcedStyle: consistent
|
30
19
|
|
31
|
-
|
32
|
-
|
33
|
-
CountAsOne: ['array', 'hash', 'heredoc']
|
20
|
+
Layout/FirstHashElementIndentation:
|
21
|
+
EnforcedStyle: consistent
|
34
22
|
|
35
|
-
|
36
|
-
|
23
|
+
Layout/LineLength:
|
24
|
+
Exclude:
|
25
|
+
- "lib/stripe/object_types.rb"
|
26
|
+
- "lib/stripe/stripe_client.rb"
|
27
|
+
- "lib/stripe/resources/**/*.rb"
|
28
|
+
- "lib/stripe/services/**/*.rb"
|
29
|
+
- "test/**/*.rb"
|
37
30
|
|
38
|
-
|
39
|
-
|
31
|
+
Lint/MissingSuper:
|
32
|
+
Exclude:
|
33
|
+
- "lib/stripe/resources/**/*.rb"
|
34
|
+
- "lib/stripe/services/**/*.rb"
|
35
|
+
- "test/stripe/request_params_test.rb"
|
40
36
|
|
41
37
|
Metrics/AbcSize:
|
42
|
-
|
38
|
+
Enabled: false
|
39
|
+
|
40
|
+
Metrics/BlockLength:
|
41
|
+
Max: 40
|
42
|
+
Exclude:
|
43
|
+
# `context` in tests are blocks and get quite large, so exclude the test
|
44
|
+
# directory from having to adhere to this rule.
|
45
|
+
- "test/**/*.rb"
|
43
46
|
|
47
|
+
Metrics/ClassLength:
|
48
|
+
Enabled: false
|
49
|
+
|
50
|
+
# There are several methods with many branches in api_requestor due to
|
51
|
+
# request logic.
|
44
52
|
Metrics/CyclomaticComplexity:
|
45
|
-
|
53
|
+
Exclude:
|
54
|
+
- "lib/stripe/api_requestor.rb"
|
55
|
+
- "lib/stripe/util.rb"
|
46
56
|
|
47
57
|
Metrics/PerceivedComplexity:
|
48
|
-
|
58
|
+
Exclude:
|
59
|
+
- "lib/stripe/api_requestor.rb"
|
60
|
+
- "lib/stripe/stripe_object.rb"
|
61
|
+
- "lib/stripe/util.rb"
|
49
62
|
|
50
|
-
|
51
|
-
|
52
|
-
|
63
|
+
Metrics/MethodLength:
|
64
|
+
# There's one long method in `NestedResource`. If we want to truncate it a little,
|
65
|
+
# we could move this to be closer to ~30 (but the default of 10 is probably too short).
|
66
|
+
Max: 55
|
67
|
+
Exclude:
|
68
|
+
- "lib/stripe/services/v1_services.rb"
|
69
|
+
- "lib/stripe/event_types.rb"
|
70
|
+
- "lib/stripe/api_requestor.rb"
|
71
|
+
AllowedMethods:
|
72
|
+
- initialize
|
73
|
+
|
74
|
+
# TODO(xavdid): remove this once the first `basil` release is out
|
75
|
+
Naming/MethodName:
|
76
|
+
# these endpoints are removed soon so we pulled their overrides, meaning their names are wrong
|
77
|
+
# that won't make it out to users, but it's breaking linting/formatting in the meantime
|
78
|
+
Exclude:
|
79
|
+
- "lib/stripe/services/invoice_service.rb"
|
80
|
+
- "lib/stripe/resources/invoice.rb"
|
53
81
|
|
54
|
-
|
55
|
-
|
82
|
+
Metrics/ModuleLength:
|
83
|
+
Enabled: false
|
56
84
|
|
57
|
-
|
58
|
-
|
85
|
+
Metrics/ParameterLists:
|
86
|
+
# There's 2 methods in `StripeClient` that have long parameter lists.
|
87
|
+
Max: 8
|
88
|
+
# Optional parameters should be consistent across libraries, we need not be
|
89
|
+
# concerned about this. Was introduced with adding `base_address`
|
90
|
+
Exclude:
|
91
|
+
- "lib/stripe/api_operations/request.rb"
|
92
|
+
- "lib/stripe/stripe_object.rb"
|
93
|
+
- "lib/stripe/stripe_client.rb"
|
94
|
+
- "lib/stripe/resources/**/*.rb"
|
95
|
+
- "lib/stripe/services/**/*.rb"
|
96
|
+
|
97
|
+
Naming/MethodParameterName:
|
98
|
+
# We have many parameters that are less than 3 characters for tax codes
|
99
|
+
Exclude:
|
100
|
+
- "lib/stripe/resources/**/*.rb"
|
101
|
+
- "lib/stripe/services/**/*.rb"
|
59
102
|
|
60
|
-
|
61
|
-
|
103
|
+
Naming/VariableNumber:
|
104
|
+
# We use a variety of variable number syntaxes
|
105
|
+
Exclude:
|
106
|
+
- "lib/stripe/resources/**/*.rb"
|
107
|
+
- "lib/stripe/services/**/*.rb"
|
62
108
|
|
63
|
-
Style/
|
64
|
-
|
109
|
+
Style/AccessModifierDeclarations:
|
110
|
+
EnforcedStyle: inline
|
65
111
|
|
66
|
-
Style/
|
67
|
-
|
112
|
+
Style/AsciiComments:
|
113
|
+
Enabled: false
|
68
114
|
|
69
|
-
Style/
|
70
|
-
|
115
|
+
Style/FrozenStringLiteralComment:
|
116
|
+
EnforcedStyle: always
|
71
117
|
|
72
|
-
Style/
|
73
|
-
|
118
|
+
Style/HashEachMethods:
|
119
|
+
Enabled: true
|
74
120
|
|
75
|
-
Style/
|
76
|
-
|
121
|
+
Style/HashTransformKeys:
|
122
|
+
Enabled: true
|
77
123
|
|
78
|
-
|
79
|
-
|
80
|
-
ForbiddenPrefixes:
|
81
|
-
- is_
|
124
|
+
Style/HashTransformValues:
|
125
|
+
Enabled: true
|
82
126
|
|
83
|
-
|
127
|
+
Style/NumericPredicate:
|
84
128
|
Enabled: false
|
85
129
|
|
86
|
-
|
87
|
-
|
88
|
-
Max: 15
|
130
|
+
Style/StringLiterals:
|
131
|
+
EnforcedStyle: double_quotes
|
89
132
|
|
90
|
-
|
91
|
-
|
133
|
+
Style/TrailingCommaInArrayLiteral:
|
134
|
+
EnforcedStyleForMultiline: consistent_comma
|
92
135
|
|
93
|
-
|
94
|
-
|
136
|
+
Style/TrailingCommaInHashLiteral:
|
137
|
+
EnforcedStyleForMultiline: consistent_comma
|
95
138
|
|
96
|
-
|
139
|
+
Gemspec/DeprecatedAttributeAssignment: # new in 1.30
|
97
140
|
Enabled: true
|
98
|
-
|
99
|
-
RSpec/FilePath:
|
141
|
+
Gemspec/DevelopmentDependencies: # new in 1.44
|
100
142
|
Enabled: true
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
- when
|
105
|
-
- with
|
106
|
-
- without
|
107
|
-
- if
|
108
|
-
- unless
|
109
|
-
- for
|
110
|
-
|
111
|
-
RSpec/DescribedClass:
|
143
|
+
Gemspec/RequireMFA: # new in 1.23
|
144
|
+
Enabled: false
|
145
|
+
Layout/LineContinuationLeadingSpace: # new in 1.31
|
112
146
|
Enabled: true
|
113
|
-
|
114
|
-
# Security
|
115
|
-
Security/Eval:
|
147
|
+
Layout/LineContinuationSpacing: # new in 1.31
|
116
148
|
Enabled: true
|
117
|
-
|
118
|
-
Security/Open:
|
149
|
+
Layout/LineEndStringConcatenationIndentation: # new in 1.18
|
119
150
|
Enabled: true
|
120
|
-
|
121
|
-
Security/YAMLLoad:
|
151
|
+
Layout/SpaceBeforeBrackets: # new in 1.7
|
122
152
|
Enabled: true
|
123
|
-
|
124
|
-
# Bundler
|
125
|
-
Bundler/OrderedGems:
|
153
|
+
Lint/AmbiguousAssignment: # new in 1.7
|
126
154
|
Enabled: true
|
127
|
-
|
128
|
-
|
129
|
-
|
155
|
+
Lint/AmbiguousOperatorPrecedence: # new in 1.21
|
156
|
+
Enabled: true
|
157
|
+
Lint/AmbiguousRange: # new in 1.19
|
158
|
+
Enabled: true
|
159
|
+
Lint/ConstantOverwrittenInRescue: # new in 1.31
|
160
|
+
Enabled: true
|
161
|
+
Lint/DeprecatedConstants: # new in 1.8
|
162
|
+
Enabled: true
|
163
|
+
Lint/DuplicateBranch: # new in 1.3
|
164
|
+
Enabled: true
|
165
|
+
Lint/DuplicateMagicComment: # new in 1.37
|
166
|
+
Enabled: true
|
167
|
+
Lint/DuplicateMatchPattern: # new in 1.50
|
168
|
+
Enabled: true
|
169
|
+
Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
|
170
|
+
Enabled: true
|
171
|
+
Lint/EmptyBlock: # new in 1.1
|
172
|
+
Enabled: true
|
173
|
+
Lint/EmptyClass: # new in 1.3
|
174
|
+
Enabled: true
|
175
|
+
Lint/EmptyInPattern: # new in 1.16
|
176
|
+
Enabled: true
|
177
|
+
Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
|
178
|
+
Enabled: true
|
179
|
+
Lint/LambdaWithoutLiteralBlock: # new in 1.8
|
180
|
+
Enabled: true
|
181
|
+
Lint/MixedCaseRange: # new in 1.53
|
182
|
+
Enabled: true
|
183
|
+
Lint/NoReturnInBeginEndBlocks: # new in 1.2
|
184
|
+
Enabled: true
|
185
|
+
Lint/NonAtomicFileOperation: # new in 1.31
|
186
|
+
Enabled: true
|
187
|
+
Lint/NumberedParameterAssignment: # new in 1.9
|
188
|
+
Enabled: true
|
189
|
+
Lint/OrAssignmentToConstant: # new in 1.9
|
190
|
+
Enabled: true
|
191
|
+
Lint/RedundantDirGlobSort: # new in 1.8
|
192
|
+
Enabled: true
|
193
|
+
Lint/RedundantRegexpQuantifiers: # new in 1.53
|
194
|
+
Enabled: true
|
195
|
+
Lint/RefinementImportMethods: # new in 1.27
|
196
|
+
Enabled: true
|
197
|
+
Lint/RequireRangeParentheses: # new in 1.32
|
198
|
+
Enabled: true
|
199
|
+
Lint/RequireRelativeSelfPath: # new in 1.22
|
200
|
+
Enabled: true
|
201
|
+
Lint/SymbolConversion: # new in 1.9
|
202
|
+
Enabled: true
|
203
|
+
Lint/ToEnumArguments: # new in 1.1
|
204
|
+
Enabled: true
|
205
|
+
Lint/TripleQuotes: # new in 1.9
|
206
|
+
Enabled: true
|
207
|
+
Lint/UnexpectedBlockArity: # new in 1.5
|
208
|
+
Enabled: true
|
209
|
+
Lint/UnmodifiedReduceAccumulator: # new in 1.1
|
210
|
+
Enabled: true
|
211
|
+
Lint/UselessAssignment:
|
212
|
+
Exclude:
|
213
|
+
- "test/stripe/generated_examples_test.rb"
|
214
|
+
Lint/UselessRescue: # new in 1.43
|
215
|
+
Enabled: true
|
216
|
+
Lint/UselessRuby2Keywords: # new in 1.23
|
217
|
+
Enabled: true
|
218
|
+
Metrics/CollectionLiteralLength: # new in 1.47
|
219
|
+
Enabled: true
|
220
|
+
Naming/BlockForwarding: # new in 1.24
|
221
|
+
Enabled: true
|
222
|
+
Security/CompoundHash: # new in 1.28
|
223
|
+
Enabled: true
|
224
|
+
Security/IoMethods: # new in 1.22
|
225
|
+
Enabled: true
|
226
|
+
Style/ArgumentsForwarding: # new in 1.1
|
227
|
+
Enabled: true
|
228
|
+
Style/ArrayIntersect: # new in 1.40
|
229
|
+
Enabled: true
|
230
|
+
Style/CollectionCompact: # new in 1.2
|
231
|
+
Enabled: true
|
232
|
+
Style/ComparableClamp: # new in 1.44
|
233
|
+
Enabled: true
|
234
|
+
Style/ConcatArrayLiterals: # new in 1.41
|
235
|
+
Enabled: true
|
236
|
+
Style/DataInheritance: # new in 1.49
|
237
|
+
Enabled: true
|
238
|
+
Style/DirEmpty: # new in 1.48
|
239
|
+
Enabled: true
|
240
|
+
Style/DocumentDynamicEvalDefinition: # new in 1.1
|
241
|
+
Enabled: true
|
242
|
+
Style/EmptyHeredoc: # new in 1.32
|
243
|
+
Enabled: true
|
244
|
+
Style/EndlessMethod: # new in 1.8
|
245
|
+
Enabled: true
|
246
|
+
Style/EnvHome: # new in 1.29
|
247
|
+
Enabled: true
|
248
|
+
Style/ExactRegexpMatch: # new in 1.51
|
249
|
+
Enabled: true
|
250
|
+
Style/FetchEnvVar: # new in 1.28
|
251
|
+
Enabled: true
|
252
|
+
Style/FileEmpty: # new in 1.48
|
253
|
+
Enabled: true
|
254
|
+
Style/FileRead: # new in 1.24
|
255
|
+
Enabled: true
|
256
|
+
Style/FileWrite: # new in 1.24
|
257
|
+
Enabled: true
|
258
|
+
Style/HashConversion: # new in 1.10
|
259
|
+
Enabled: true
|
260
|
+
Style/HashExcept: # new in 1.7
|
261
|
+
Enabled: true
|
262
|
+
Style/IfWithBooleanLiteralBranches: # new in 1.9
|
263
|
+
Enabled: true
|
264
|
+
Style/InPatternThen: # new in 1.16
|
265
|
+
Enabled: true
|
266
|
+
Style/MagicCommentFormat: # new in 1.35
|
267
|
+
Enabled: true
|
268
|
+
Style/MapCompactWithConditionalBlock: # new in 1.30
|
269
|
+
Enabled: true
|
270
|
+
Style/MapToHash: # new in 1.24
|
271
|
+
Enabled: true
|
272
|
+
Style/MapToSet: # new in 1.42
|
273
|
+
Enabled: true
|
274
|
+
Style/MinMaxComparison: # new in 1.42
|
275
|
+
Enabled: true
|
276
|
+
Style/MultilineInPatternThen: # new in 1.16
|
277
|
+
Enabled: true
|
278
|
+
Style/NegatedIfElseCondition: # new in 1.2
|
279
|
+
Enabled: true
|
280
|
+
Style/NestedFileDirname: # new in 1.26
|
281
|
+
Enabled: true
|
282
|
+
Style/NilLambda: # new in 1.3
|
283
|
+
Enabled: true
|
284
|
+
Style/NumberedParameters: # new in 1.22
|
285
|
+
Enabled: true
|
286
|
+
Style/NumberedParametersLimit: # new in 1.22
|
287
|
+
Enabled: true
|
288
|
+
Style/ObjectThen: # new in 1.28
|
289
|
+
Enabled: true
|
290
|
+
Style/OpenStructUse: # new in 1.23
|
291
|
+
Enabled: true
|
292
|
+
Style/OperatorMethodCall: # new in 1.37
|
293
|
+
Enabled: true
|
294
|
+
Style/QuotedSymbols: # new in 1.16
|
295
|
+
Enabled: true
|
296
|
+
Style/RedundantArgument: # new in 1.4
|
297
|
+
Enabled: true
|
298
|
+
Style/RedundantArrayConstructor: # new in 1.52
|
299
|
+
Enabled: true
|
300
|
+
Style/RedundantConstantBase: # new in 1.40
|
301
|
+
Enabled: true
|
302
|
+
Style/RedundantCurrentDirectoryInPath: # new in 1.53
|
303
|
+
Enabled: true
|
304
|
+
Style/RedundantDoubleSplatHashBraces: # new in 1.41
|
305
|
+
Enabled: true
|
306
|
+
Style/RedundantEach: # new in 1.38
|
307
|
+
Enabled: true
|
308
|
+
Style/RedundantFilterChain: # new in 1.52
|
309
|
+
Enabled: true
|
310
|
+
Style/RedundantHeredocDelimiterQuotes: # new in 1.45
|
311
|
+
Enabled: true
|
312
|
+
Style/RedundantInitialize: # new in 1.27
|
313
|
+
Enabled: true
|
314
|
+
Style/RedundantLineContinuation: # new in 1.49
|
315
|
+
Enabled: true
|
316
|
+
Style/RedundantRegexpArgument: # new in 1.53
|
317
|
+
Enabled: true
|
318
|
+
Style/RedundantRegexpConstructor: # new in 1.52
|
319
|
+
Enabled: true
|
320
|
+
Style/RedundantSelfAssignmentBranch: # new in 1.19
|
321
|
+
Enabled: true
|
322
|
+
Style/RedundantStringEscape: # new in 1.37
|
323
|
+
Enabled: true
|
324
|
+
Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
|
325
|
+
Enabled: true
|
326
|
+
Style/SelectByRegexp: # new in 1.22
|
327
|
+
Enabled: true
|
328
|
+
Style/SingleLineDoEndBlock: # new in 1.57
|
329
|
+
Enabled: true
|
330
|
+
Style/StringChars: # new in 1.12
|
331
|
+
Enabled: true
|
332
|
+
Style/SwapValues: # new in 1.1
|
333
|
+
Enabled: true
|
334
|
+
Style/YAMLFileRead: # new in 1.53
|
335
|
+
Enabled: true
|
336
|
+
Gemspec/AddRuntimeDependency: # new in 1.65
|
337
|
+
Enabled: true
|
338
|
+
Lint/ArrayLiteralInRegexp: # new in 1.71
|
339
|
+
Enabled: true
|
340
|
+
Lint/ConstantReassignment: # new in 1.70
|
341
|
+
Enabled: true
|
342
|
+
Lint/CopDirectiveSyntax: # new in 1.72
|
343
|
+
Enabled: true
|
344
|
+
Lint/DuplicateSetElement: # new in 1.67
|
345
|
+
Enabled: true
|
346
|
+
Lint/HashNewWithKeywordArgumentsAsDefault: # new in 1.69
|
347
|
+
Enabled: true
|
348
|
+
Lint/ItWithoutArgumentsInBlock: # new in 1.59
|
349
|
+
Enabled: true
|
350
|
+
Lint/LiteralAssignmentInCondition: # new in 1.58
|
351
|
+
Enabled: true
|
352
|
+
Lint/NumericOperationWithConstantResult: # new in 1.69
|
353
|
+
Enabled: true
|
354
|
+
Lint/RedundantTypeConversion: # new in 1.72
|
355
|
+
Enabled: true
|
356
|
+
Lint/SharedMutableDefault: # new in 1.70
|
357
|
+
Enabled: true
|
358
|
+
Lint/SuppressedExceptionInNumberConversion: # new in 1.72
|
359
|
+
Enabled: true
|
360
|
+
Lint/UnescapedBracketInRegexp: # new in 1.68
|
361
|
+
Enabled: true
|
362
|
+
Lint/UselessConstantScoping: # new in 1.72
|
363
|
+
Enabled: true
|
364
|
+
Lint/UselessDefined: # new in 1.69
|
365
|
+
Enabled: true
|
366
|
+
Lint/UselessNumericOperation: # new in 1.66
|
367
|
+
Enabled: true
|
368
|
+
Style/AmbiguousEndlessMethodDefinition: # new in 1.68
|
369
|
+
Enabled: true
|
370
|
+
Style/BitwisePredicate: # new in 1.68
|
371
|
+
Enabled: true
|
372
|
+
Style/CombinableDefined: # new in 1.68
|
373
|
+
Enabled: true
|
374
|
+
Style/ComparableBetween: # new in 1.74
|
375
|
+
Enabled: true
|
376
|
+
Style/DigChain: # new in 1.69
|
377
|
+
Enabled: true
|
378
|
+
Style/FileNull: # new in 1.69
|
379
|
+
Enabled: true
|
380
|
+
Style/FileTouch: # new in 1.69
|
381
|
+
Enabled: true
|
382
|
+
Style/HashFetchChain: # new in 1.75
|
383
|
+
Enabled: true
|
384
|
+
Style/HashSlice: # new in 1.71
|
385
|
+
Enabled: true
|
386
|
+
Style/ItAssignment: # new in 1.70
|
387
|
+
Enabled: true
|
388
|
+
Style/ItBlockParameter: # new in 1.75
|
389
|
+
Enabled: true
|
390
|
+
Style/KeywordArgumentsMerging: # new in 1.68
|
391
|
+
Enabled: true
|
392
|
+
Style/MapIntoArray: # new in 1.63
|
393
|
+
Enabled: true
|
394
|
+
Style/RedundantFormat: # new in 1.72
|
395
|
+
Enabled: true
|
396
|
+
Style/RedundantInterpolationUnfreeze: # new in 1.66
|
397
|
+
Enabled: true
|
398
|
+
Style/SafeNavigationChainLength: # new in 1.68
|
399
|
+
Enabled: true
|
400
|
+
Style/SendWithLiteralMethodName: # new in 1.64
|
401
|
+
Enabled: true
|
402
|
+
Style/SuperArguments: # new in 1.64
|
403
|
+
Enabled: true
|
404
|
+
Style/SuperWithArgsParentheses: # new in 1.58
|
130
405
|
Enabled: true
|
131
|
-
|
132
|
-
Gemspec/RequiredRubyVersion:
|
133
|
-
Enabled: true
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [0.1.3] - 2025-08-11
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
- Ruby 3.0 and 3.1 compatibility by using bundler 2.4.22
|
14
|
+
- All CI workflows now explicitly specify compatible bundler version
|
15
|
+
|
16
|
+
## [0.1.2] - 2025-08-11 (yanked)
|
17
|
+
|
18
|
+
### Added
|
19
|
+
- Ruby 3.4 support in CI/CD pipelines
|
20
|
+
- GitHub Actions badges for tests and coverage
|
21
|
+
- Comprehensive documentation for all classes
|
22
|
+
|
23
|
+
### Improved
|
24
|
+
- Applied RuboCop with Stripe's best practices configuration
|
25
|
+
- Refactored HttpClient#handle_response to reduce cyclomatic complexity
|
26
|
+
- Fixed all code style violations (284 auto-corrected)
|
27
|
+
- Enhanced CI/CD workflows with proper bundler configuration
|
28
|
+
|
29
|
+
### Removed
|
30
|
+
- Unnecessary test files (test_basic.rb, test_typhoeus.rb, run_tests.rb)
|
31
|
+
- .rubocop_todo.yml (all violations fixed)
|
32
|
+
|
10
33
|
## [0.1.1] - 2025-08-11
|
11
34
|
|
12
35
|
### Changed
|
data/CONTRIBUTING.md
CHANGED
@@ -19,17 +19,17 @@ Thank you for your interest in contributing to the Attio Ruby client! This guide
|
|
19
19
|
1. Fork the repository on GitHub
|
20
20
|
2. Clone your fork locally:
|
21
21
|
```bash
|
22
|
-
git clone https://github.com/YOUR_USERNAME/attio
|
23
|
-
cd attio
|
22
|
+
git clone https://github.com/YOUR_USERNAME/attio.git
|
23
|
+
cd attio
|
24
24
|
```
|
25
25
|
3. Add the upstream remote:
|
26
26
|
```bash
|
27
|
-
git remote add upstream https://github.com/idl3/attio
|
27
|
+
git remote add upstream https://github.com/idl3/attio.git
|
28
28
|
```
|
29
29
|
|
30
30
|
## Development Setup
|
31
31
|
|
32
|
-
1. Install Ruby 3.0 or higher
|
32
|
+
1. Install Ruby 3.0 or higher (tested with Ruby 3.0 - 3.4)
|
33
33
|
2. Install dependencies:
|
34
34
|
```bash
|
35
35
|
bundle install
|
data/Gemfile
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source "https://rubygems.org"
|
2
4
|
|
3
5
|
# Specify your gem's dependencies in attio.gemspec
|
4
6
|
gemspec
|
5
7
|
|
6
|
-
gem "rake", "~> 13.0"
|
7
8
|
gem "logger" # Required for Ruby 3.5.0+ compatibility
|
9
|
+
gem "rake", "~> 13.0"
|
8
10
|
|
9
11
|
group :development, :test do
|
12
|
+
gem "pry", "~> 0.14"
|
10
13
|
gem "rspec", "~> 3.12"
|
11
|
-
gem "webmock", "~> 3.18"
|
12
|
-
gem "simplecov", "~> 0.22"
|
13
|
-
gem "simplecov-console", "~> 0.9"
|
14
14
|
gem "rubocop", "~> 1.50"
|
15
15
|
gem "rubocop-rspec", "~> 2.19"
|
16
|
-
gem "
|
16
|
+
gem "simplecov", "~> 0.22"
|
17
|
+
gem "simplecov-console", "~> 0.9"
|
18
|
+
gem "webmock", "~> 3.18"
|
19
|
+
gem "yard", "~> 0.9"
|
17
20
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
attio (0.1.
|
4
|
+
attio (0.1.2)
|
5
5
|
typhoeus (~> 1.4)
|
6
6
|
|
7
7
|
GEM
|
@@ -20,7 +20,6 @@ GEM
|
|
20
20
|
docile (1.4.1)
|
21
21
|
ethon (0.16.0)
|
22
22
|
ffi (>= 1.15.0)
|
23
|
-
ffi (1.17.2)
|
24
23
|
ffi (1.17.2-arm64-darwin)
|
25
24
|
hashdiff (1.2.0)
|
26
25
|
json (2.13.2)
|
@@ -108,7 +107,6 @@ GEM
|
|
108
107
|
|
109
108
|
PLATFORMS
|
110
109
|
arm64-darwin-24
|
111
|
-
ruby
|
112
110
|
|
113
111
|
DEPENDENCIES
|
114
112
|
attio!
|
@@ -124,4 +122,4 @@ DEPENDENCIES
|
|
124
122
|
yard (~> 0.9)
|
125
123
|
|
126
124
|
BUNDLED WITH
|
127
|
-
2.
|
125
|
+
2.4.22
|
data/README.md
CHANGED
@@ -1,10 +1,18 @@
|
|
1
1
|
# Attio Ruby Client
|
2
2
|
|
3
|
+
[](https://github.com/idl3/attio/actions/workflows/tests.yml)
|
4
|
+
[](https://github.com/idl3/attio/tree/master/spec)
|
3
5
|
[](https://idl3.github.io/attio)
|
4
6
|
[](https://badge.fury.io/rb/attio)
|
7
|
+
[](https://github.com/idl3/attio/tree/master/spec)
|
5
8
|
|
6
9
|
Ruby client for the [Attio CRM API](https://developers.attio.com/). This library provides easy access to the Attio API, allowing you to manage records, objects, lists, and more.
|
7
10
|
|
11
|
+
## Requirements
|
12
|
+
|
13
|
+
- Ruby 3.0 or higher (tested with Ruby 3.0, 3.1, 3.2, 3.3, and 3.4)
|
14
|
+
- Bundler
|
15
|
+
|
8
16
|
## Installation
|
9
17
|
|
10
18
|
Add this line to your application's Gemfile:
|
data/Rakefile
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "bundler/gem_tasks"
|
2
4
|
require "rspec/core/rake_task"
|
3
5
|
|
4
6
|
begin
|
5
7
|
require "yard"
|
6
8
|
require "yard/rake/yardoc_task"
|
7
|
-
|
9
|
+
|
8
10
|
YARD::Rake::YardocTask.new do |t|
|
9
|
-
t.files = [
|
10
|
-
t.options = [
|
11
|
+
t.files = ["lib/**/*.rb"]
|
12
|
+
t.options = ["--output-dir", "docs"]
|
11
13
|
end
|
12
14
|
rescue LoadError
|
13
15
|
# YARD is not available
|
@@ -20,7 +22,7 @@ task default: :spec
|
|
20
22
|
namespace :coverage do
|
21
23
|
desc "Run tests with coverage report"
|
22
24
|
task :report do
|
23
|
-
ENV[
|
25
|
+
ENV["COVERAGE"] = "true"
|
24
26
|
Rake::Task["spec"].execute
|
25
27
|
end
|
26
28
|
end
|
@@ -36,7 +38,7 @@ namespace :docs do
|
|
36
38
|
end
|
37
39
|
|
38
40
|
desc "Generate and open documentation"
|
39
|
-
task :
|
41
|
+
task open: :generate do
|
40
42
|
if File.exist?("docs/index.html")
|
41
43
|
system("open docs/index.html")
|
42
44
|
else
|
@@ -46,7 +48,7 @@ namespace :docs do
|
|
46
48
|
|
47
49
|
desc "Clean generated documentation"
|
48
50
|
task :clean do
|
49
|
-
FileUtils.rm_rf("docs")
|
51
|
+
FileUtils.rm_rf("docs")
|
50
52
|
puts "Documentation cleaned."
|
51
53
|
end
|
52
54
|
|