attio 0.1.1 → 0.2.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.
- 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 +27 -13
- data/.github/workflows/tests.yml +67 -0
- data/.rubocop.yml +362 -90
- data/CHANGELOG.md +49 -1
- data/CONCEPTS.md +428 -0
- data/CONTRIBUTING.md +4 -4
- data/Gemfile +8 -5
- data/Gemfile.lock +4 -4
- data/README.md +164 -2
- data/Rakefile +8 -6
- data/attio.gemspec +6 -7
- data/danger/Dangerfile +22 -34
- data/docs/example.rb +30 -29
- data/examples/advanced_filtering.rb +178 -0
- data/examples/basic_usage.rb +110 -0
- data/examples/collaboration_example.rb +173 -0
- data/examples/full_workflow.rb +348 -0
- data/examples/notes_and_tasks.rb +200 -0
- data/lib/attio/client.rb +67 -29
- data/lib/attio/connection_pool.rb +26 -14
- data/lib/attio/errors.rb +4 -2
- data/lib/attio/http_client.rb +70 -41
- data/lib/attio/logger.rb +37 -27
- data/lib/attio/resources/attributes.rb +12 -5
- data/lib/attio/resources/base.rb +66 -27
- data/lib/attio/resources/comments.rb +147 -0
- data/lib/attio/resources/lists.rb +21 -24
- data/lib/attio/resources/notes.rb +110 -0
- data/lib/attio/resources/objects.rb +11 -4
- data/lib/attio/resources/records.rb +49 -67
- data/lib/attio/resources/tasks.rb +131 -0
- data/lib/attio/resources/threads.rb +154 -0
- 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 +15 -9
- metadata +13 -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
@@ -5,7 +5,55 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
-
## [
|
8
|
+
## [0.2.0] - 2025-08-11
|
9
|
+
|
10
|
+
### Added
|
11
|
+
- Comments resource with full CRUD operations and emoji reactions
|
12
|
+
- Threads resource with participant management and status control
|
13
|
+
- Tasks resource with assignment and completion tracking
|
14
|
+
- Notes resource for creating and managing notes on records
|
15
|
+
- DELETE with body support in HttpClient for participant management
|
16
|
+
- URL encoding for emoji reactions using CGI.escape
|
17
|
+
- Comprehensive examples for collaboration features
|
18
|
+
- Advanced filtering and querying examples
|
19
|
+
- Complete CRM workflow example
|
20
|
+
|
21
|
+
### Improved
|
22
|
+
- Achieved 100% test coverage (376/376 lines)
|
23
|
+
- Increased test count from 147 to 265 tests
|
24
|
+
- Refactored Base class to reduce code duplication across resources
|
25
|
+
- Extracted common validation methods to base class
|
26
|
+
- Standardized error messages across all resources
|
27
|
+
- Fixed keyword arguments vs options hash issues in test mocks
|
28
|
+
- Updated README with all new features and comprehensive examples
|
29
|
+
|
30
|
+
### Fixed
|
31
|
+
- Semantic correctness in all test files
|
32
|
+
- REST convention compliance for DELETE operations
|
33
|
+
- Proper URL encoding for special characters in API paths
|
34
|
+
|
35
|
+
## [0.1.3] - 2025-08-11
|
36
|
+
|
37
|
+
### Fixed
|
38
|
+
- Ruby 3.0 and 3.1 compatibility by using bundler 2.4.22
|
39
|
+
- All CI workflows now explicitly specify compatible bundler version
|
40
|
+
|
41
|
+
## [0.1.2] - 2025-08-11 (yanked)
|
42
|
+
|
43
|
+
### Added
|
44
|
+
- Ruby 3.4 support in CI/CD pipelines
|
45
|
+
- GitHub Actions badges for tests and coverage
|
46
|
+
- Comprehensive documentation for all classes
|
47
|
+
|
48
|
+
### Improved
|
49
|
+
- Applied RuboCop with Stripe's best practices configuration
|
50
|
+
- Refactored HttpClient#handle_response to reduce cyclomatic complexity
|
51
|
+
- Fixed all code style violations (284 auto-corrected)
|
52
|
+
- Enhanced CI/CD workflows with proper bundler configuration
|
53
|
+
|
54
|
+
### Removed
|
55
|
+
- Unnecessary test files (test_basic.rb, test_typhoeus.rb, run_tests.rb)
|
56
|
+
- .rubocop_todo.yml (all violations fixed)
|
9
57
|
|
10
58
|
## [0.1.1] - 2025-08-11
|
11
59
|
|