vobject 0.1.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/macos.yml +38 -0
  3. data/.github/workflows/ubuntu.yml +56 -0
  4. data/.github/workflows/windows.yml +40 -0
  5. data/.hound.yml +3 -0
  6. data/.rubocop.tb.yml +650 -0
  7. data/.rubocop.yml +1077 -0
  8. data/Gemfile +1 -1
  9. data/LICENSE.txt +21 -17
  10. data/README.adoc +151 -0
  11. data/Rakefile +1 -1
  12. data/lib/c.rb +173 -0
  13. data/lib/error.rb +19 -0
  14. data/lib/vcalendar.rb +77 -0
  15. data/lib/vcard.rb +67 -0
  16. data/lib/vobject.rb +13 -170
  17. data/lib/vobject/component.rb +87 -36
  18. data/lib/vobject/parameter.rb +116 -0
  19. data/lib/vobject/parametervalue.rb +26 -0
  20. data/lib/vobject/property.rb +134 -55
  21. data/lib/vobject/propertyvalue.rb +46 -0
  22. data/lib/vobject/vcalendar/component.rb +106 -0
  23. data/lib/vobject/vcalendar/grammar.rb +595 -0
  24. data/lib/vobject/vcalendar/paramcheck.rb +259 -0
  25. data/lib/vobject/vcalendar/propertyparent.rb +98 -0
  26. data/lib/vobject/vcalendar/propertyvalue.rb +606 -0
  27. data/lib/vobject/vcalendar/typegrammars.rb +605 -0
  28. data/lib/vobject/vcard/v3_0/component.rb +40 -0
  29. data/lib/vobject/vcard/v3_0/grammar.rb +175 -0
  30. data/lib/vobject/vcard/v3_0/paramcheck.rb +110 -0
  31. data/lib/vobject/vcard/v3_0/parameter.rb +17 -0
  32. data/lib/vobject/vcard/v3_0/property.rb +18 -0
  33. data/lib/vobject/vcard/v3_0/propertyvalue.rb +401 -0
  34. data/lib/vobject/vcard/v3_0/typegrammars.rb +425 -0
  35. data/lib/vobject/vcard/v4_0/component.rb +40 -0
  36. data/lib/vobject/vcard/v4_0/grammar.rb +224 -0
  37. data/lib/vobject/vcard/v4_0/paramcheck.rb +269 -0
  38. data/lib/vobject/vcard/v4_0/parameter.rb +18 -0
  39. data/lib/vobject/vcard/v4_0/property.rb +63 -0
  40. data/lib/vobject/vcard/v4_0/propertyvalue.rb +404 -0
  41. data/lib/vobject/vcard/v4_0/typegrammars.rb +539 -0
  42. data/lib/vobject/version.rb +1 -1
  43. data/vobject.gemspec +19 -16
  44. metadata +81 -26
  45. data/.travis.yml +0 -5
  46. data/README.md +0 -94
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 554a6f91c0c480df0f301e7e9acb0b2ccbe01009
4
- data.tar.gz: a286d87594e6390e0580d88a5f260190a76597b4
2
+ SHA256:
3
+ metadata.gz: 9c54d59511de33be6814b5ce91402fd8a02610348d15834d3a91627192d97d21
4
+ data.tar.gz: 97c5e8257ec8497f3bec04a79e1071c1cd6eb90b2752ed011067f585596a9656
5
5
  SHA512:
6
- metadata.gz: a2bc2b674967036cc1f9b99ccff1504b8f86b1fb278daf46902a0f19090f88c426f8ced2d098242c4b0512c9d944ff739b72e59d3c9349c8fcfb8214e7d0a8b9
7
- data.tar.gz: 88ab2f65879520f35e77b8eff0ed8c71a7366c62bcd4f9b4ae4db91ff0fe87e5ca08f83e4e52a6097f1534fb8b3ff70bbc4f273b22497dabe4e5d7e5b5ca09a6
6
+ metadata.gz: 4b441314c4cf98b28c0d44d5ab8d9d2ea0c18f7bf7781ae69671b8e18f40ea72a100c48c32dc426001c494779cd06d6c504aa6ee27547018cbb33a6775d4fb06
7
+ data.tar.gz: 0b980732360e3a10ce83e9877fae5df1c91b4f601d0969b5cc9cdc86339add88405229b077d64c02948b2c12d45e59ead44225cc0fa815371def2bd4bd21f4a6
@@ -0,0 +1,38 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: macos
4
+
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+ paths-ignore:
10
+ - .github/workflows/ubuntu.yml
11
+ - .github/workflows/windows.yml
12
+
13
+ jobs:
14
+ test-macos:
15
+ name: Test on Ruby ${{ matrix.ruby }} macOS
16
+ runs-on: macos-latest
17
+ continue-on-error: ${{ matrix.experimental }}
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ ruby: [ '2.6', '2.5', '2.4' ]
22
+ experimental: [false]
23
+ include:
24
+ - ruby: '2.7'
25
+ experimental: true
26
+ steps:
27
+ - uses: actions/checkout@master
28
+ - name: Use Ruby
29
+ uses: actions/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby }}
32
+ - name: Update gems
33
+ run: |
34
+ sudo gem install bundler --force
35
+ bundle install --jobs 4 --retry 3
36
+ - name: Run specs
37
+ run: |
38
+ bundle exec rake
@@ -0,0 +1,56 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: ubuntu
4
+
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ tags:
9
+ - '*'
10
+ pull_request:
11
+ paths-ignore:
12
+ - .github/workflows/macos.yml
13
+ - .github/workflows/windows.yml
14
+
15
+ jobs:
16
+ test-linux:
17
+ name: Test on Ruby ${{ matrix.ruby }} Ubuntu
18
+ runs-on: ubuntu-latest
19
+ continue-on-error: ${{ matrix.experimental }}
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ ruby: [ '2.6', '2.5', '2.4' ]
24
+ experimental: [false]
25
+ include:
26
+ - ruby: '2.7'
27
+ experimental: true
28
+ steps:
29
+ - uses: actions/checkout@master
30
+ - name: Use Ruby
31
+ uses: actions/setup-ruby@v1
32
+ with:
33
+ ruby-version: ${{ matrix.ruby }}
34
+ - name: Update gems
35
+ run: |
36
+ gem install bundler
37
+ bundle install --jobs 4 --retry 3
38
+ - name: Run specs
39
+ run: |
40
+ bundle exec rake
41
+ - name: Trigger repositories
42
+ if: matrix.ruby == '2.6'
43
+ env:
44
+ GH_USERNAME: metanorma-ci
45
+ GH_ACCESS_TOKEN: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
46
+ run: |
47
+ curl -LO --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/trigger-gh-actions.sh
48
+ [[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
49
+ CLIENT_PAYLOAD=$(cat <<EOF
50
+ "{ "ref": "${GITHUB_REF}", "repo": "${GITHUB_REPOSITORY}" }"
51
+ EOF
52
+ )
53
+ for repo in $REPOS
54
+ do
55
+ sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "$CLIENT_PAYLOAD"
56
+ done
@@ -0,0 +1,40 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: windows
4
+
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+ paths-ignore:
10
+ - .github/workflows/macos.yml
11
+ - .github/workflows/ubuntu.yml
12
+
13
+ jobs:
14
+ test-windows:
15
+ name: Test on Ruby ${{ matrix.ruby }} Windows
16
+ runs-on: windows-latest
17
+ continue-on-error: ${{ matrix.experimental }}
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ ruby: [ '2.6', '2.5', '2.4' ]
22
+ experimental: [false]
23
+ include:
24
+ - ruby: '2.7'
25
+ experimental: true
26
+ steps:
27
+ - uses: actions/checkout@master
28
+ - name: Use Ruby
29
+ uses: actions/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby }}
32
+ - name: Update gems
33
+ shell: pwsh
34
+ run: |
35
+ gem install bundler
36
+ bundle config --local path vendor/bundle
37
+ bundle install --jobs 4 --retry 3
38
+ - name: Run specs
39
+ run: |
40
+ bundle exec rake
@@ -0,0 +1,3 @@
1
+ ruby:
2
+ Enabled: true
3
+ config_file: .rubocop.yml
@@ -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