lp-serializable 0.2.0 → 1.0.1

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: ee8c8007befe5042222082f7d355d28d8b5364d0a06499416055c7ff9c2ba24c
4
- data.tar.gz: 9eeba9747a87355b25f45c013131374be16ff9c2f4a600c55efbf806f93148e1
3
+ metadata.gz: a7075a5d45e3269b8dca2d8504bbc73b4e8dfd9de407c2676762f14013903ccf
4
+ data.tar.gz: 9874bc7adfee9b4173217b22243e34f64c02b268f083a1a6da6f9e2dfb428c16
5
5
  SHA512:
6
- metadata.gz: 8ec72124b13225234bfcdedb2663f52a5fa474ede7c4a526303d937098e60a1bd7c33342e2e0cfba9f805eb99d82171a9e6e08fb2820b428940ddb5c792febc8
7
- data.tar.gz: 9d3899a92c259237da9bdca814bcc7ce00938764cd08ec889028466ec83100fba4e5ddd0a7fd9160aed2f4f788bc862ee1123270c9cdce0af7eab9e892485705
6
+ metadata.gz: 86ec74de30ed67b821d39814479b3c3af16a25d6c425c0a8bc938bccebf2c9c9b3c3b7507b91eea1c4aeb6580e0f14a1e2258a5c40a84546e57ee648af6c342a
7
+ data.tar.gz: 2617995b0005c59bd5302aac10fcfc13df80f8e41ee43a811c0d643bfef489bc6a8aac4c659685c2c8c3805baa7f77d4c77945b0941f9068677f9fa9e9e0ec57
@@ -0,0 +1,650 @@
1
+ AllCops:
2
+ Exclude:
3
+ - db/schema.rb
4
+
5
+ Naming/AccessorMethodName:
6
+ Description: Check the naming of accessor methods for get_/set_.
7
+ Enabled: false
8
+
9
+ Style/Alias:
10
+ Description: 'Use alias_method instead of alias.'
11
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
12
+ Enabled: false
13
+
14
+ Style/ArrayJoin:
15
+ Description: 'Use Array#join instead of Array#*.'
16
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
17
+ Enabled: false
18
+
19
+ Style/AsciiComments:
20
+ Description: 'Use only ascii symbols in comments.'
21
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
22
+ Enabled: false
23
+
24
+ Naming/AsciiIdentifiers:
25
+ Description: 'Use only ascii symbols in identifiers.'
26
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
27
+ Enabled: false
28
+
29
+ Style/Attr:
30
+ Description: 'Checks for uses of Module#attr.'
31
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
32
+ Enabled: false
33
+
34
+ Metrics/BlockNesting:
35
+ Description: 'Avoid excessive block nesting'
36
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
37
+ Enabled: false
38
+
39
+ Style/CaseEquality:
40
+ Description: 'Avoid explicit use of the case equality operator(===).'
41
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
42
+ Enabled: false
43
+
44
+ Style/CharacterLiteral:
45
+ Description: 'Checks for uses of character literals.'
46
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
47
+ Enabled: false
48
+
49
+ Style/ClassAndModuleChildren:
50
+ Description: 'Checks style of children classes and modules.'
51
+ Enabled: true
52
+ EnforcedStyle: nested
53
+
54
+ Metrics/ClassLength:
55
+ Description: 'Avoid classes longer than 100 lines of code.'
56
+ Enabled: false
57
+
58
+ Metrics/ModuleLength:
59
+ Description: 'Avoid modules longer than 100 lines of code.'
60
+ Enabled: false
61
+
62
+ Style/ClassVars:
63
+ Description: 'Avoid the use of class variables.'
64
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
65
+ Enabled: false
66
+
67
+ Style/CollectionMethods:
68
+ Enabled: true
69
+ PreferredMethods:
70
+ find: detect
71
+ inject: reduce
72
+ collect: map
73
+ find_all: select
74
+
75
+ Style/ColonMethodCall:
76
+ Description: 'Do not use :: for method call.'
77
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
78
+ Enabled: false
79
+
80
+ Style/CommentAnnotation:
81
+ Description: >-
82
+ Checks formatting of special comments
83
+ (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
84
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
85
+ Enabled: false
86
+
87
+ Metrics/AbcSize:
88
+ Description: >-
89
+ A calculated magnitude based on number of assignments,
90
+ branches, and conditions.
91
+ Enabled: false
92
+
93
+ Metrics/BlockLength:
94
+ CountComments: true # count full line comments?
95
+ Max: 25
96
+ ExcludedMethods: []
97
+ Exclude:
98
+ - "spec/**/*"
99
+
100
+ Metrics/CyclomaticComplexity:
101
+ Description: >-
102
+ A complexity metric that is strongly correlated to the number
103
+ of test cases needed to validate a method.
104
+ Enabled: false
105
+
106
+ Rails/Delegate:
107
+ Description: 'Prefer delegate method for delegations.'
108
+ Enabled: false
109
+
110
+ Style/PreferredHashMethods:
111
+ Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
112
+ StyleGuide: '#hash-key'
113
+ Enabled: false
114
+
115
+ Style/Documentation:
116
+ Description: 'Document classes and non-namespace modules.'
117
+ Enabled: false
118
+
119
+ Style/DoubleNegation:
120
+ Description: 'Checks for uses of double negation (!!).'
121
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
122
+ Enabled: false
123
+
124
+ Style/EachWithObject:
125
+ Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
126
+ Enabled: false
127
+
128
+ Style/EmptyLiteral:
129
+ Description: 'Prefer literals to Array.new/Hash.new/String.new.'
130
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
131
+ Enabled: false
132
+
133
+ # Checks whether the source file has a utf-8 encoding comment or not
134
+ # AutoCorrectEncodingComment must match the regex
135
+ # /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
136
+ Style/Encoding:
137
+ Enabled: false
138
+
139
+ Style/EvenOdd:
140
+ Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
141
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
142
+ Enabled: false
143
+
144
+ Naming/FileName:
145
+ Description: 'Use snake_case for source file names.'
146
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
147
+ Enabled: false
148
+
149
+ Style/FrozenStringLiteralComment:
150
+ Description: >-
151
+ Add the frozen_string_literal comment to the top of files
152
+ to help transition from Ruby 2.3.0 to Ruby 3.0.
153
+ Enabled: false
154
+
155
+ Style/FlipFlop:
156
+ Description: 'Checks for flip flops'
157
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
158
+ Enabled: false
159
+
160
+ Style/FormatString:
161
+ Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
162
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
163
+ Enabled: false
164
+
165
+ Style/GlobalVars:
166
+ Description: 'Do not introduce global variables.'
167
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
168
+ Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
169
+ Enabled: false
170
+
171
+ Style/GuardClause:
172
+ Description: 'Check for conditionals that can be replaced with guard clauses'
173
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
174
+ Enabled: false
175
+
176
+ Style/IfUnlessModifier:
177
+ Description: >-
178
+ Favor modifier if/unless usage when you have a
179
+ single-line body.
180
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
181
+ Enabled: false
182
+
183
+ Style/IfWithSemicolon:
184
+ Description: 'Do not use if x; .... Use the ternary operator instead.'
185
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
186
+ Enabled: false
187
+
188
+ Style/InlineComment:
189
+ Description: 'Avoid inline comments.'
190
+ Enabled: false
191
+
192
+ Style/Lambda:
193
+ Description: 'Use the new lambda literal syntax for single-line blocks.'
194
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
195
+ Enabled: false
196
+
197
+ Style/LambdaCall:
198
+ Description: 'Use lambda.call(...) instead of lambda.(...).'
199
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
200
+ Enabled: false
201
+
202
+ Style/LineEndConcatenation:
203
+ Description: >-
204
+ Use \ instead of + or << to concatenate two string literals at
205
+ line end.
206
+ Enabled: false
207
+
208
+ Metrics/LineLength:
209
+ Description: 'Limit lines to 80 characters.'
210
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
211
+ Max: 80
212
+
213
+ Metrics/MethodLength:
214
+ Description: 'Avoid methods longer than 10 lines of code.'
215
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
216
+ Enabled: false
217
+
218
+ Style/ModuleFunction:
219
+ Description: 'Checks for usage of `extend self` in modules.'
220
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
221
+ Enabled: false
222
+
223
+ Style/MultilineBlockChain:
224
+ Description: 'Avoid multi-line chains of blocks.'
225
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
226
+ Enabled: false
227
+
228
+ Style/NegatedIf:
229
+ Description: >-
230
+ Favor unless over if for negative conditions
231
+ (or control flow or).
232
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
233
+ Enabled: false
234
+
235
+ Style/NegatedWhile:
236
+ Description: 'Favor until over while for negative conditions.'
237
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
238
+ Enabled: false
239
+
240
+ Style/Next:
241
+ Description: 'Use `next` to skip iteration instead of a condition at the end.'
242
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
243
+ Enabled: false
244
+
245
+ Style/NilComparison:
246
+ Description: 'Prefer x.nil? to x == nil.'
247
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
248
+ Enabled: false
249
+
250
+ Style/Not:
251
+ Description: 'Use ! instead of not.'
252
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
253
+ Enabled: false
254
+
255
+ Style/NumericLiterals:
256
+ Description: >-
257
+ Add underscores to large numeric literals to improve their
258
+ readability.
259
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
260
+ Enabled: false
261
+
262
+ Style/OneLineConditional:
263
+ Description: >-
264
+ Favor the ternary operator(?:) over
265
+ if/then/else/end constructs.
266
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
267
+ Enabled: false
268
+
269
+ Naming/BinaryOperatorParameterName:
270
+ Description: 'When defining binary operators, name the argument other.'
271
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
272
+ Enabled: false
273
+
274
+ Metrics/ParameterLists:
275
+ Description: 'Avoid parameter lists longer than three or four parameters.'
276
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
277
+ Enabled: false
278
+
279
+ Style/PercentLiteralDelimiters:
280
+ Description: 'Use `%`-literal delimiters consistently'
281
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
282
+ Enabled: false
283
+
284
+ Style/PerlBackrefs:
285
+ Description: 'Avoid Perl-style regex back references.'
286
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
287
+ Enabled: false
288
+
289
+ Naming/PredicateName:
290
+ Description: 'Check the names of predicate methods.'
291
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
292
+ NamePrefixBlacklist:
293
+ - is_
294
+ Exclude:
295
+ - spec/**/*
296
+
297
+ Style/Proc:
298
+ Description: 'Use proc instead of Proc.new.'
299
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
300
+ Enabled: false
301
+
302
+ Style/RaiseArgs:
303
+ Description: 'Checks the arguments passed to raise/fail.'
304
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
305
+ Enabled: false
306
+
307
+ Style/RegexpLiteral:
308
+ Description: 'Use / or %r around regular expressions.'
309
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
310
+ Enabled: false
311
+
312
+ Style/SelfAssignment:
313
+ Description: >-
314
+ Checks for places where self-assignment shorthand should have
315
+ been used.
316
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
317
+ Enabled: false
318
+
319
+ Style/SingleLineBlockParams:
320
+ Description: 'Enforces the names of some block params.'
321
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
322
+ Enabled: false
323
+
324
+ Style/SingleLineMethods:
325
+ Description: 'Avoid single-line methods.'
326
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
327
+ Enabled: false
328
+
329
+ Style/SignalException:
330
+ Description: 'Checks for proper usage of fail and raise.'
331
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
332
+ Enabled: false
333
+
334
+ Style/SpecialGlobalVars:
335
+ Description: 'Avoid Perl-style global variables.'
336
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
337
+ Enabled: false
338
+
339
+ Style/StringLiterals:
340
+ Description: 'Checks if uses of quotes match the configured preference.'
341
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
342
+ EnforcedStyle: double_quotes
343
+ Enabled: true
344
+
345
+ Style/TrailingCommaInArguments:
346
+ Description: 'Checks for trailing comma in argument lists.'
347
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
348
+ EnforcedStyleForMultiline: comma
349
+ SupportedStylesForMultiline:
350
+ - comma
351
+ - consistent_comma
352
+ - no_comma
353
+ Enabled: true
354
+
355
+ Style/TrailingCommaInArrayLiteral:
356
+ Description: 'Checks for trailing comma in array literals.'
357
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
358
+ EnforcedStyleForMultiline: comma
359
+ SupportedStylesForMultiline:
360
+ - comma
361
+ - consistent_comma
362
+ - no_comma
363
+ Enabled: true
364
+
365
+ Style/TrailingCommaInHashLiteral:
366
+ Description: 'Checks for trailing comma in hash literals.'
367
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
368
+ EnforcedStyleForMultiline: comma
369
+ SupportedStylesForMultiline:
370
+ - comma
371
+ - consistent_comma
372
+ - no_comma
373
+ Enabled: true
374
+
375
+ Style/TrivialAccessors:
376
+ Description: 'Prefer attr_* methods to trivial readers/writers.'
377
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
378
+ Enabled: false
379
+
380
+ Style/VariableInterpolation:
381
+ Description: >-
382
+ Don't interpolate global, instance and class variables
383
+ directly in strings.
384
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
385
+ Enabled: false
386
+
387
+ Style/WhenThen:
388
+ Description: 'Use when x then ... for one-line cases.'
389
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
390
+ Enabled: false
391
+
392
+ Style/WhileUntilModifier:
393
+ Description: >-
394
+ Favor modifier while/until usage when you have a
395
+ single-line body.
396
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
397
+ Enabled: false
398
+
399
+ Style/WordArray:
400
+ Description: 'Use %w or %W for arrays of words.'
401
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
402
+ Enabled: false
403
+
404
+ # Layout
405
+
406
+ Layout/AlignParameters:
407
+ Description: 'Here we check if the parameters on a multi-line method call or definition are aligned.'
408
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
409
+ Enabled: false
410
+
411
+ Layout/ConditionPosition:
412
+ Description: >-
413
+ Checks for condition placed in a confusing position relative to
414
+ the keyword.
415
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
416
+ Enabled: false
417
+
418
+ Layout/DotPosition:
419
+ Description: 'Checks the position of the dot in multi-line method calls.'
420
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
421
+ EnforcedStyle: trailing
422
+
423
+ Layout/ExtraSpacing:
424
+ Description: 'Do not use unnecessary spacing.'
425
+ Enabled: true
426
+
427
+ Layout/MultilineOperationIndentation:
428
+ Description: >-
429
+ Checks indentation of binary operations that span more than
430
+ one line.
431
+ Enabled: true
432
+ EnforcedStyle: indented
433
+
434
+ Layout/MultilineMethodCallIndentation:
435
+ Description: >-
436
+ Checks indentation of method calls with the dot operator
437
+ that span more than one line.
438
+ Enabled: true
439
+ EnforcedStyle: indented
440
+
441
+ Layout/InitialIndentation:
442
+ Description: >-
443
+ Checks the indentation of the first non-blank non-comment line in a file.
444
+ Enabled: false
445
+
446
+ # Lint
447
+
448
+ Lint/AmbiguousOperator:
449
+ Description: >-
450
+ Checks for ambiguous operators in the first argument of a
451
+ method invocation without parentheses.
452
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
453
+ Enabled: false
454
+
455
+ Lint/AmbiguousRegexpLiteral:
456
+ Description: >-
457
+ Checks for ambiguous regexp literals in the first argument of
458
+ a method invocation without parenthesis.
459
+ Enabled: false
460
+
461
+ Lint/AssignmentInCondition:
462
+ Description: "Don't use assignment in conditions."
463
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
464
+ Enabled: false
465
+
466
+ Lint/CircularArgumentReference:
467
+ Description: "Don't refer to the keyword argument in the default value."
468
+ Enabled: false
469
+
470
+ Lint/DeprecatedClassMethods:
471
+ Description: 'Check for deprecated class method calls.'
472
+ Enabled: false
473
+
474
+ Lint/DuplicatedKey:
475
+ Description: 'Check for duplicate keys in hash literals.'
476
+ Enabled: false
477
+
478
+ Lint/EachWithObjectArgument:
479
+ Description: 'Check for immutable argument given to each_with_object.'
480
+ Enabled: false
481
+
482
+ Lint/ElseLayout:
483
+ Description: 'Check for odd code arrangement in an else block.'
484
+ Enabled: false
485
+
486
+ Lint/FormatParameterMismatch:
487
+ Description: 'The number of parameters to format/sprint must match the fields.'
488
+ Enabled: false
489
+
490
+ Lint/HandleExceptions:
491
+ Description: "Don't suppress exception."
492
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
493
+ Enabled: false
494
+
495
+ Lint/LiteralAsCondition:
496
+ Description: 'Checks of literals used in conditions.'
497
+ Enabled: false
498
+
499
+ Lint/LiteralInInterpolation:
500
+ Description: 'Checks for literals used in interpolation.'
501
+ Enabled: false
502
+
503
+ Lint/Loop:
504
+ Description: >-
505
+ Use Kernel#loop with break rather than begin/end/until or
506
+ begin/end/while for post-loop tests.
507
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
508
+ Enabled: false
509
+
510
+ Lint/NestedMethodDefinition:
511
+ Description: 'Do not use nested method definitions.'
512
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
513
+ Enabled: false
514
+
515
+ Lint/NonLocalExitFromIterator:
516
+ Description: 'Do not use return in iterator to cause non-local exit.'
517
+ Enabled: false
518
+
519
+ Lint/ParenthesesAsGroupedExpression:
520
+ Description: >-
521
+ Checks for method calls with a space before the opening
522
+ parenthesis.
523
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
524
+ Enabled: false
525
+
526
+ Lint/RequireParentheses:
527
+ Description: >-
528
+ Use parentheses in the method call to avoid confusion
529
+ about precedence.
530
+ Enabled: false
531
+
532
+ Lint/UnderscorePrefixedVariableName:
533
+ Description: 'Do not use prefix `_` for a variable that is used.'
534
+ Enabled: false
535
+
536
+ Lint/UnneededCopDisableDirective:
537
+ Description: >-
538
+ Checks for rubocop:disable comments that can be removed.
539
+ Note: this cop is not disabled when disabling all cops.
540
+ It must be explicitly disabled.
541
+ Enabled: false
542
+
543
+ Lint/Void:
544
+ Description: 'Possible use of operator/literal/variable in void context.'
545
+ Enabled: false
546
+
547
+ # Performance
548
+
549
+ Performance/CaseWhenSplat:
550
+ Description: >-
551
+ Place `when` conditions that use splat at the end
552
+ of the list of `when` branches.
553
+ Enabled: false
554
+
555
+ Performance/Count:
556
+ Description: >-
557
+ Use `count` instead of `select...size`, `reject...size`,
558
+ `select...count`, `reject...count`, `select...length`,
559
+ and `reject...length`.
560
+ Enabled: false
561
+
562
+ Performance/Detect:
563
+ Description: >-
564
+ Use `detect` instead of `select.first`, `find_all.first`,
565
+ `select.last`, and `find_all.last`.
566
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
567
+ Enabled: false
568
+
569
+ Performance/FlatMap:
570
+ Description: >-
571
+ Use `Enumerable#flat_map`
572
+ instead of `Enumerable#map...Array#flatten(1)`
573
+ or `Enumberable#collect..Array#flatten(1)`
574
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
575
+ Enabled: false
576
+
577
+ Performance/ReverseEach:
578
+ Description: 'Use `reverse_each` instead of `reverse.each`.'
579
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
580
+ Enabled: false
581
+
582
+ Performance/Sample:
583
+ Description: >-
584
+ Use `sample` instead of `shuffle.first`,
585
+ `shuffle.last`, and `shuffle[Fixnum]`.
586
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
587
+ Enabled: false
588
+
589
+ Performance/Size:
590
+ Description: >-
591
+ Use `size` instead of `count` for counting
592
+ the number of elements in `Array` and `Hash`.
593
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
594
+ Enabled: false
595
+
596
+ Performance/StringReplacement:
597
+ Description: >-
598
+ Use `tr` instead of `gsub` when you are replacing the same
599
+ number of characters. Use `delete` instead of `gsub` when
600
+ you are deleting characters.
601
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
602
+ Enabled: false
603
+
604
+ # Rails
605
+
606
+ Rails/ActionFilter:
607
+ Description: 'Enforces consistent use of action filter methods.'
608
+ Enabled: false
609
+
610
+ Rails/Date:
611
+ Description: >-
612
+ Checks the correct usage of date aware methods,
613
+ such as Date.today, Date.current etc.
614
+ Enabled: false
615
+
616
+ Rails/FindBy:
617
+ Description: 'Prefer find_by over where.first.'
618
+ Enabled: false
619
+
620
+ Rails/FindEach:
621
+ Description: 'Prefer all.find_each over all.find.'
622
+ Enabled: false
623
+
624
+ Rails/HasAndBelongsToMany:
625
+ Description: 'Prefer has_many :through to has_and_belongs_to_many.'
626
+ Enabled: false
627
+
628
+ Rails/Output:
629
+ Description: 'Checks for calls to puts, print, etc.'
630
+ Enabled: false
631
+
632
+ Rails/ReadWriteAttribute:
633
+ Description: >-
634
+ Checks for read_attribute(:attr) and
635
+ write_attribute(:attr, val).
636
+ Enabled: false
637
+
638
+ Rails/ScopeArgs:
639
+ Description: 'Checks the arguments of ActiveRecord scopes.'
640
+ Enabled: false
641
+
642
+ Rails/TimeZone:
643
+ Description: 'Checks the correct usage of time zone aware methods.'
644
+ StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
645
+ Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
646
+ Enabled: false
647
+
648
+ Rails/Validation:
649
+ Description: 'Use validates :attribute, hash of validations.'
650
+ Enabled: false
@@ -2,6 +2,6 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.5.0
5
- before_install: gem install bundler -v 1.16.1
5
+ before_install: gem install bundler -v 1.16.3
6
6
  ignore:
7
7
  - spec/lib/object_serializer_performance.rb
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lp-serializable (0.2.0)
4
+ lp-serializable (1.0.1)
5
5
  activesupport (>= 4.2)
6
- fast_jsonapi (>= 1.2)
6
+ fast_jsonapi (>= 1.3)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -48,13 +48,13 @@ GEM
48
48
  case_transform (0.2)
49
49
  activesupport
50
50
  coderay (1.1.2)
51
- concurrent-ruby (1.0.5)
51
+ concurrent-ruby (1.1.5)
52
52
  crass (1.0.4)
53
53
  diff-lcs (1.3)
54
- erubi (1.7.1)
55
- fast_jsonapi (1.2)
54
+ erubi (1.8.0)
55
+ fast_jsonapi (1.5)
56
56
  activesupport (>= 4.2)
57
- i18n (1.0.1)
57
+ i18n (1.6.0)
58
58
  concurrent-ruby (~> 1.0)
59
59
  jsonapi-deserializable (0.2.0)
60
60
  jsonapi-rb (0.5.0)
@@ -65,19 +65,19 @@ GEM
65
65
  jsonapi-renderer (~> 0.2.0)
66
66
  jsonapi-serializers (1.0.1)
67
67
  activesupport
68
- loofah (2.2.2)
68
+ loofah (2.2.3)
69
69
  crass (~> 1.0.2)
70
70
  nokogiri (>= 1.5.9)
71
71
  method_source (0.9.0)
72
- mini_portile2 (2.3.0)
72
+ mini_portile2 (2.4.0)
73
73
  minitest (5.11.3)
74
- nokogiri (1.8.4)
75
- mini_portile2 (~> 2.3.0)
74
+ nokogiri (1.10.2)
75
+ mini_portile2 (~> 2.4.0)
76
76
  oj (3.6.3)
77
77
  pry (0.11.3)
78
78
  coderay (~> 1.1.0)
79
79
  method_source (~> 0.9.0)
80
- rack (2.0.5)
80
+ rack (2.0.6)
81
81
  rack-test (1.0.0)
82
82
  rack (>= 1.0, < 3)
83
83
  rails-dom-testing (2.0.3)
@@ -128,4 +128,4 @@ DEPENDENCIES
128
128
  sqlite3 (~> 1.3)
129
129
 
130
130
  BUNDLED WITH
131
- 1.16.1
131
+ 1.16.3
data/README.md CHANGED
@@ -24,54 +24,61 @@ Or install it yourself as:
24
24
 
25
25
  ## Usage
26
26
 
27
- ### Controller Definition
27
+ **Controller Definition**
28
28
 
29
29
  ```ruby
30
30
  class ApplicationController < ActionController::Base
31
- include Lp::Serializable
31
+ include Lp::Serializable
32
32
  end
33
33
 
34
34
  class MoviesController < ApplicationController
35
- def index
36
- movies = Movie.all
37
- movies_hash = serialize_and_flatten_collection(movies, 'Movie')
38
- render json: movies_hash
39
- end
40
-
41
- def show
42
- movie = Movie.find(params[:id])
43
- movie_hash = serialize_and_flatten(movie)
44
- render json: movie
45
- end
35
+ def index
36
+ movies = Movie.all
37
+ movies_hash = serializable_collection(movies, 'Movie')
38
+ render json: movies_hash
39
+ end
40
+
41
+ def show
42
+ movie = Movie.find(params[:id])
43
+ movie_hash = serializable(movie)
44
+ render json: movie_hash
45
+ end
46
46
  end
47
47
  ```
48
48
 
49
- ### Serializer Definition
49
+ **Serializer Definition**
50
50
 
51
51
  ```ruby
52
52
  class MovieSerializer
53
- include FastJsonapi::ObjectSerializer
54
-
55
- attributes :name, :year
56
-
57
- has_many :actors
58
- belongs_to :owner
53
+ include FastJsonapi::ObjectSerializer
54
+
55
+ attributes :name
56
+
57
+ attribute :year, if: Proc.new { |object| object.year.present? }
58
+
59
+ attribute :last_updated do |object|
60
+ object.updated_at
61
+ end
62
+
63
+ has_many :actors
64
+ belongs_to :owner
59
65
  end
60
66
 
61
67
  class ActorSerializer
62
- include FastJsonapi::ObjectSerializer
68
+ include FastJsonapi::ObjectSerializer
63
69
 
64
- attributes :id
70
+ attributes :id
65
71
  end
66
72
 
67
73
  class OwnerSerializer
68
- include FastJsonapi::ObjectSerializer
74
+ include FastJsonapi::ObjectSerializer
69
75
 
70
- attributes :id
76
+ attributes :id
71
77
  end
72
78
  ```
73
79
 
74
- ### Sample Object
80
+ ## Object Serialization
81
+ **Sample Object**
75
82
 
76
83
  ```ruby
77
84
  movie = Movie.new
@@ -83,14 +90,12 @@ movie.movie_type_id = 1
83
90
  movie
84
91
  ```
85
92
 
86
- ### Object Serialization
87
-
88
- #### Return a hash
93
+ **Return a hash**
89
94
  ```ruby
90
- hash = serialize_and_flatten(movie)
95
+ hash = serializable(movie)
91
96
  ```
92
97
 
93
- #### Output
98
+ **Output**
94
99
 
95
100
  ```json
96
101
  {
@@ -98,7 +103,7 @@ hash = serialize_and_flatten(movie)
98
103
  "id": "3",
99
104
  "type": "movie",
100
105
  "name": "test movie",
101
- "year": null,
106
+ "last_updated": "2019-04-26 18:55:46 UTC",
102
107
  "actors": [
103
108
  {
104
109
  "id": "1",
@@ -120,11 +125,69 @@ hash = serialize_and_flatten(movie)
120
125
 
121
126
  For more information on configuration, refer to [fast_jsonapi](https://github.com/Netflix/fast_jsonapi#customizable-options) documentation.
122
127
 
128
+ ## Deeply Nested Serialization Pattern
129
+
130
+ Fastjson API does not support serialization of deeply nested resources.
131
+
132
+ To get around this, extend `Lp::Serializable` in your serializers:
133
+
134
+ ```ruby
135
+ class MovieSerializer
136
+ include FastJsonapi::ObjectSerializer
137
+ extend Lp::Serializable
138
+
139
+ ...
140
+ end
141
+ ```
142
+
143
+ Define custom attributes for relationships, instead of defining them via fastjson_api:
144
+
145
+ ```ruby
146
+ class MovieSerializer
147
+ include FastJsonapi::ObjectSerializer
148
+ extend Lp::Serializable
149
+
150
+ attribute :actors do |object|
151
+ collection = object.actors
152
+ serializer = 'Actor'
153
+ serializable_collection(collection, serializer, nested: true)
154
+ end
155
+ end
156
+ ```
157
+
158
+ Attribute `:actors` will trigger `ActorSerializer` to serialize the actors collection. Consequently, any relationships defined in `ActorSerializer` via custom attributes and serialized with `serializable_` methods (using the `nested: true` option) will be appropriately nested.
159
+
160
+ ## Custom Serializer Class
161
+
162
+ Use `#serializable_class` to serialize with a custom class:
163
+
164
+ ```ruby
165
+ def show
166
+ movie = Movie.find(params[:id])
167
+ # Will serialize with FilmSerializer instead of MovieSerializer
168
+ movie_hash = serializable_class(movie, 'Film')
169
+ render json: movie_hash
170
+ end
171
+ ```
172
+
123
173
  ## Options Support
124
174
 
125
- lp-serializable does not currently support fast_jsonapi's options hash when instantiating serializers.
175
+ Supported options include:
176
+
177
+ - `:fields` ([Sparse Fieldsets](https://github.com/Netflix/fast_jsonapi#sparse-fieldsets))
178
+ - `:params` ([Params](https://github.com/Netflix/fast_jsonapi#params))
179
+ - [Conditional Attributes](https://github.com/Netflix/fast_jsonapi#conditional-attributes)
180
+
181
+ Other options are "supported" but may yeild unexpected results, as Serializable's hash flattening prioritizes deeply nested data structures.
182
+
183
+ `:is_collection` is baked into Seriazable methods for accurate detection of collections or singular resources.
184
+
185
+ ## Aliases
186
+
187
+ - `serialize_and_flatten()` = `serializable()`
188
+ - `serialize_and_flatten_with_class_name()` = `serializable_class()`
189
+ - `serialize_and_flatten_collection()` = `serializable_collection()`
126
190
 
127
- This affects serializing with [params](https://github.com/Netflix/fast_jsonapi#params), [compound documents](https://github.com/Netflix/fast_jsonapi#compound-document), metadata, and links.
128
191
 
129
192
  ## Development
130
193
 
@@ -134,7 +197,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
134
197
 
135
198
  ## Contributing
136
199
 
137
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/lp-serializable. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
200
+ Bug reports and pull requests are welcome on GitHub at https://github.com/LaunchPadLab/lp-serializable. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
138
201
 
139
202
  ## License
140
203
 
@@ -142,4 +205,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
142
205
 
143
206
  ## Code of Conduct
144
207
 
145
- Everyone interacting in the Lp::Serializable project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lp-serializable/blob/master/CODE_OF_CONDUCT.md).
208
+ Everyone interacting in the Lp::Serializable project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/LaunchPadLab/lp-serializable/blob/master/CODE_OF_CONDUCT.md).
@@ -4,6 +4,7 @@ require 'active_support/core_ext/object'
4
4
  require 'active_support/concern'
5
5
  require 'active_support/inflector'
6
6
  require 'fast_jsonapi/serialization_core'
7
+ require 'fast_jsonapi/attribute'
7
8
 
8
9
  module FastJsonapi
9
10
  module ObjectSerializer
@@ -149,11 +150,17 @@ module FastJsonapi
149
150
 
150
151
  def attributes(*attributes_list, &block)
151
152
  attributes_list = attributes_list.first if attributes_list.first.class.is_a?(Array)
153
+ options = attributes_list.last.is_a?(Hash) ? attributes_list.pop : {}
152
154
  self.attributes_to_serialize = {} if self.attributes_to_serialize.nil?
155
+
153
156
  attributes_list.each do |attr_name|
154
157
  method_name = attr_name
155
158
  key = run_key_transform(method_name)
156
- attributes_to_serialize[key] = block || method_name
159
+ attributes_to_serialize[key] = Attribute.new(
160
+ key: key,
161
+ method: block || method_name,
162
+ options: options
163
+ )
157
164
  end
158
165
  end
159
166
 
@@ -73,12 +73,9 @@ module FastJsonapi
73
73
  end
74
74
 
75
75
  def attributes_hash(record, params = {})
76
- attributes_to_serialize.each_with_object({}) do |(key, method), attr_hash|
77
- attr_hash[key] = if method.is_a?(Proc)
78
- method.arity == 1 ? method.call(record) : method.call(record, params)
79
- else
80
- record.public_send(method)
81
- end
76
+ attributes = attributes_to_serialize
77
+ attributes.each_with_object({}) do |(_k, attribute), hash|
78
+ attribute.serialize(record, params, hash)
82
79
  end
83
80
  end
84
81
 
@@ -1,33 +1,45 @@
1
1
  require "lp/serializable/strategies"
2
+ require "lp/serializable/exceptions"
2
3
 
3
4
  module Lp
4
5
  module Serializable
5
6
  include Strategies
7
+ include Exceptions
6
8
 
7
- class UnserializableCollection < StandardError
8
- def initialize(msg='Expected an object, but a collection was given.')
9
- super
10
- end
11
- end
12
-
13
- def serialize_and_flatten(resource, options={})
14
- base_hash = serialize_hash(resource)
9
+ def serialize_and_flatten(resource, options = {})
10
+ return { :data => nil } if resource.nil? # Match the return of serializable_class when given nil
11
+ collection_option = collection?(false)
12
+ base_hash = serialize_hash(resource, options.merge(collection_option))
15
13
  flatten_and_nest_data(base_hash, set_nested_option(options))
16
14
  end
17
15
 
18
- def serialize_and_flatten_with_class_name(resource, class_name, options={})
19
- raise UnserializableCollection if resource.is_a?(Array)
20
- base_hash = serializable_hash_with_class_name(resource,
21
- class_name,
22
- options)
16
+ def serialize_and_flatten_with_class_name(
17
+ resource,
18
+ class_name,
19
+ options = {}
20
+ )
21
+ raise UnserializableCollection if resource.is_a?(Array)
22
+ collection_option = collection?(false)
23
+ base_hash = serializable_hash_with_class_name(
24
+ resource,
25
+ class_name,
26
+ options.merge(collection_option),
27
+ )
23
28
  flatten_and_nest_data(base_hash, set_nested_option(options))
24
29
  end
25
30
 
26
- def serialize_and_flatten_collection(resource, class_name, options={})
27
- base_hash = serializable_hash_with_class_name(resource,
28
- class_name,
29
- options)
31
+ def serialize_and_flatten_collection(resource, class_name, options = {})
32
+ collection_option = collection?(true)
33
+ base_hash = serializable_hash_with_class_name(
34
+ resource,
35
+ class_name,
36
+ options.merge(collection_option),
37
+ )
30
38
  flatten_array_and_nest_data(base_hash, set_nested_option(options))
31
39
  end
40
+
41
+ alias_method :serializable, :serialize_and_flatten
42
+ alias_method :serializable_class, :serialize_and_flatten_with_class_name
43
+ alias_method :serializable_collection, :serialize_and_flatten_collection
32
44
  end
33
- end
45
+ end
@@ -0,0 +1,11 @@
1
+ module Lp
2
+ module Serializable
3
+ module Exceptions
4
+ class UnserializableCollection < StandardError
5
+ def initialize(msg = "Expected an object, but a collection was given.")
6
+ super
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -9,14 +9,14 @@ module Lp
9
9
 
10
10
  private
11
11
 
12
- def serialize_hash(resource, options={})
13
- "#{resource.class.name}Serializer"
14
- .constantize.new(resource, options).serializable_hash
12
+ def serialize_hash(resource, options = {})
13
+ "#{resource.class.name}Serializer".
14
+ constantize.new(resource, options).serializable_hash
15
15
  end
16
16
 
17
- def serializable_hash_with_class_name(resource, class_name, options={})
18
- "#{class_name}Serializer"
19
- .constantize.new(resource, options).serializable_hash
17
+ def serializable_hash_with_class_name(resource, class_name, options = {})
18
+ "#{class_name}Serializer".
19
+ constantize.new(resource, options).serializable_hash
20
20
  end
21
21
 
22
22
  def flatten_and_nest_data(hash, nested)
@@ -26,10 +26,14 @@ module Lp
26
26
  def flatten_array_and_nest_data(hash, nested)
27
27
  nest_data?(flatten_array_of_hashes(expose_data(hash)), nested)
28
28
  end
29
-
29
+
30
+ def collection?(boolean)
31
+ { is_collection: boolean }
32
+ end
33
+
30
34
  def set_nested_option(options)
31
35
  options.fetch(:nested, false)
32
36
  end
33
37
  end
34
38
  end
35
- end
39
+ end
@@ -3,7 +3,7 @@ module Lp
3
3
  module Utilities
4
4
  private
5
5
 
6
- REDUNDANT_KEYS = %i(attributes relationships)
6
+ REDUNDANT_KEYS = %i[attributes relationships].freeze
7
7
 
8
8
  def nest_data?(resource, nested)
9
9
  if nested
@@ -35,27 +35,31 @@ module Lp
35
35
 
36
36
  def flatten_hash(hash)
37
37
  return unless hash
38
- hash.each_with_object({}) do |(k, v), h|
39
- if hash_and_matches_redundant_keys?(v, k)
40
- flatten_hash(v).map do |h_k, h_v|
41
- h[h_k.to_s.to_sym] = h_v
42
- end
43
- # NOTE: extract this into a different method?
44
- elsif hash_and_has_data_key?(v)
45
- h[k] = expose_data(v)
38
+ hash.each_with_object({}) do |(key, value), h|
39
+ if hash_and_matches_redundant_keys?(key, value)
40
+ flatten_hash_map(value, h)
41
+ elsif hash_and_has_data_key?(value)
42
+ h[key] = expose_data(value)
46
43
  else
47
- h[k] = v
44
+ h[key] = value
48
45
  end
49
46
  end
50
47
  end
51
48
 
49
+ def flatten_hash_map(value, hash)
50
+ flatten_hash(value).map do |h_k, h_v|
51
+ hash[h_k.to_s.to_sym] = h_v
52
+ end
53
+ end
54
+
52
55
  def hash_and_has_data_key?(value)
53
56
  value.is_a?(Hash) && value.key?(:data)
54
57
  end
55
58
 
56
- def hash_and_matches_redundant_keys?(value, key)
57
- value.is_a?(Hash) && REDUNDANT_KEYS.any?{|sym| sym == key}
59
+ # NOTE Supports native relationship references in serializer
60
+ def hash_and_matches_redundant_keys?(key, value)
61
+ value.is_a?(Hash) && REDUNDANT_KEYS.any? { |sym| sym == key }
58
62
  end
59
63
  end
60
64
  end
61
- end
65
+ end
@@ -1,5 +1,5 @@
1
1
  module Lp
2
2
  module Serializable
3
- VERSION = "0.2.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
- end
5
+ end
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["mrjonesbot"]
10
10
  spec.email = ["nate@mrjones.io"]
11
11
 
12
- spec.summary = "Serialize with Fast JSON API, flatten like AWS"
12
+ spec.summary = "Serialize with Fast JSON API, flatten like AMS"
13
13
  spec.description = "JSON API(jsonapi.org) serializer wrapper methods that work with Rails and can be used to serialize any kind of ruby object with AMS style output."
14
14
  spec.homepage = "https://www.github.com/launchpadlab/lp-serializable"
15
15
  spec.license = "MIT"
@@ -45,5 +45,5 @@ Gem::Specification.new do |spec|
45
45
  spec.add_runtime_dependency(%q<activesupport>, [">= 4.2"])
46
46
  spec.add_development_dependency(%q<byebug>, [">= 0"])
47
47
 
48
- spec.add_dependency "fast_jsonapi", '>= 1.2'
49
- end
48
+ spec.add_dependency "fast_jsonapi", '>= 1.3'
49
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lp-serializable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mrjonesbot
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-14 00:00:00.000000000 Z
11
+ date: 2020-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: appraisal
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - ">="
214
214
  - !ruby/object:Gem::Version
215
- version: '1.2'
215
+ version: '1.3'
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - ">="
221
221
  - !ruby/object:Gem::Version
222
- version: '1.2'
222
+ version: '1.3'
223
223
  description: JSON API(jsonapi.org) serializer wrapper methods that work with Rails
224
224
  and can be used to serialize any kind of ruby object with AMS style output.
225
225
  email:
@@ -230,6 +230,7 @@ extra_rdoc_files: []
230
230
  files:
231
231
  - ".gitignore"
232
232
  - ".rspec"
233
+ - ".rubocop.yml"
233
234
  - ".ruby-version"
234
235
  - ".travis.yml"
235
236
  - CODE_OF_CONDUCT.md
@@ -244,6 +245,7 @@ files:
244
245
  - lib/fast_jsonapi/object_serializer.rb
245
246
  - lib/fast_jsonapi/serialization_core.rb
246
247
  - lib/lp/serializable.rb
248
+ - lib/lp/serializable/exceptions.rb
247
249
  - lib/lp/serializable/strategies.rb
248
250
  - lib/lp/serializable/utilities.rb
249
251
  - lib/lp/serializable/version.rb
@@ -271,5 +273,5 @@ rubyforge_project:
271
273
  rubygems_version: 2.7.3
272
274
  signing_key:
273
275
  specification_version: 4
274
- summary: Serialize with Fast JSON API, flatten like AWS
276
+ summary: Serialize with Fast JSON API, flatten like AMS
275
277
  test_files: []