jazzy 0.13.7 → 0.14.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/Tests.yml +6 -6
  3. data/.rubocop.yml +155 -24
  4. data/CHANGELOG.md +91 -0
  5. data/CONTRIBUTING.md +1 -1
  6. data/Dangerfile +11 -8
  7. data/Gemfile +3 -1
  8. data/Gemfile.lock +85 -64
  9. data/ObjectiveC.md +208 -0
  10. data/README.md +63 -33
  11. data/Rakefile +18 -15
  12. data/bin/jazzy +3 -2
  13. data/bin/sourcekitten +0 -0
  14. data/jazzy.gemspec +9 -6
  15. data/lib/jazzy/config.rb +135 -69
  16. data/lib/jazzy/doc.rb +3 -1
  17. data/lib/jazzy/doc_builder.rb +72 -83
  18. data/lib/jazzy/docset_builder.rb +3 -1
  19. data/lib/jazzy/documentation_generator.rb +6 -2
  20. data/lib/jazzy/executable.rb +3 -0
  21. data/lib/jazzy/extensions/bitbucket/img/bitbucket.svg +11 -0
  22. data/lib/jazzy/{themes/apple/assets → extensions/github}/img/gh.png +0 -0
  23. data/lib/jazzy/extensions/gitlab/img/gitlab.svg +23 -0
  24. data/lib/jazzy/gem_version.rb +3 -1
  25. data/lib/jazzy/highlighter.rb +5 -3
  26. data/lib/jazzy/jazzy_markdown.rb +75 -32
  27. data/lib/jazzy/podspec_documenter.rb +14 -16
  28. data/lib/jazzy/search_builder.rb +5 -6
  29. data/lib/jazzy/source_declaration/access_control_level.rb +7 -5
  30. data/lib/jazzy/source_declaration/type.rb +29 -3
  31. data/lib/jazzy/source_declaration.rb +22 -5
  32. data/lib/jazzy/source_document.rb +8 -5
  33. data/lib/jazzy/source_host.rb +111 -0
  34. data/lib/jazzy/source_mark.rb +8 -6
  35. data/lib/jazzy/source_module.rb +6 -6
  36. data/lib/jazzy/sourcekitten.rb +155 -81
  37. data/lib/jazzy/stats.rb +14 -3
  38. data/lib/jazzy/symbol_graph/constraint.rb +5 -1
  39. data/lib/jazzy/symbol_graph/ext_node.rb +3 -1
  40. data/lib/jazzy/symbol_graph/graph.rb +19 -12
  41. data/lib/jazzy/symbol_graph/relationship.rb +9 -0
  42. data/lib/jazzy/symbol_graph/sym_node.rb +25 -7
  43. data/lib/jazzy/symbol_graph/symbol.rb +54 -25
  44. data/lib/jazzy/symbol_graph.rb +43 -32
  45. data/lib/jazzy/themes/apple/assets/css/highlight.css.scss +63 -59
  46. data/lib/jazzy/themes/apple/assets/css/jazzy.css.scss +5 -1
  47. data/lib/jazzy/themes/apple/assets/js/jazzy.js +4 -0
  48. data/lib/jazzy/themes/apple/assets/js/jazzy.search.js +4 -0
  49. data/lib/jazzy/themes/apple/templates/doc.mustache +4 -5
  50. data/lib/jazzy/themes/apple/templates/footer.mustache +1 -1
  51. data/lib/jazzy/themes/apple/templates/header.mustache +6 -6
  52. data/lib/jazzy/themes/apple/templates/task.mustache +6 -11
  53. data/lib/jazzy/themes/fullwidth/assets/css/highlight.css.scss +63 -59
  54. data/lib/jazzy/themes/fullwidth/assets/css/jazzy.css.scss +6 -2
  55. data/lib/jazzy/themes/fullwidth/assets/js/jazzy.js +4 -0
  56. data/lib/jazzy/themes/fullwidth/assets/js/jazzy.search.js +4 -0
  57. data/lib/jazzy/themes/fullwidth/templates/doc.mustache +4 -5
  58. data/lib/jazzy/themes/fullwidth/templates/footer.mustache +1 -1
  59. data/lib/jazzy/themes/fullwidth/templates/header.mustache +8 -8
  60. data/lib/jazzy/themes/fullwidth/templates/task.mustache +6 -11
  61. data/lib/jazzy/themes/jony/assets/css/highlight.css.scss +63 -59
  62. data/lib/jazzy/themes/jony/assets/css/jazzy.css.scss +5 -1
  63. data/lib/jazzy/themes/jony/assets/js/jazzy.js +4 -0
  64. data/lib/jazzy/themes/jony/templates/doc.mustache +4 -5
  65. data/lib/jazzy/themes/jony/templates/footer.mustache +1 -1
  66. data/lib/jazzy/themes/jony/templates/header.mustache +6 -6
  67. data/lib/jazzy/themes/jony/templates/task.mustache +6 -11
  68. data/lib/jazzy.rb +2 -0
  69. data/spec/integration_spec.rb +46 -42
  70. data/spec/spec_helper/pre_flight.rb +2 -0
  71. data/spec/spec_helper.rb +3 -1
  72. metadata +32 -16
  73. data/lib/jazzy/themes/fullwidth/assets/img/gh.png +0 -0
  74. data/lib/jazzy/themes/jony/assets/img/gh.png +0 -0
  75. data/spec/sourcekitten_spec.rb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63788e011ffdb57c019f0bd8f06892fbc47303f10d57407e8487e5c4d070c761
4
- data.tar.gz: d93e4603a15f4c5695bab995c3fc99fbeb7fd463e97a41806c9e6fa7c563fc05
3
+ metadata.gz: e5d4f36fe547b9d232250c291bde5c20c12132335609b7de4e7cb39af6e2586c
4
+ data.tar.gz: 2c310fd944aa0cdd6565f6af00bf303526d392ed6d41626da2eb89c95222330b
5
5
  SHA512:
6
- metadata.gz: d73ba88867dcb2f32d7358b367ab24ac086bceccf02aa74e18b2d17e6d70870a4831fbbbfb6027af8a99e4ddc8db737fefbfe60580924a9367d5b11a472b0b12
7
- data.tar.gz: 61f9af01c7fd7b2293e9d91cb60063c8fc5e95281815e7a8ff11bc2a80fdbf514264a4d4fada6fc29ad7e97859e18b9d17a3cf2649a1b1f5aa0bd9cb24e22276
6
+ metadata.gz: 2994093e3bfcf803a5479b9d9fe2132f0b26027d11d0ca44754aa0a6b8af1ebbdd1fd0838efa42bacc921ac81286c041294195f1c2d39b092162deccce0d5ab1
7
+ data.tar.gz: 98a0573749bbd37464e910b9d22fe98d0dfd3804f26f313b1d9b743d39c4dd023fbbb793316ce08a20168f18c5b8242a3f4b5216bdbcaeffbda27615cb67b699
@@ -13,25 +13,25 @@ jobs:
13
13
  - uses: actions/checkout@v2
14
14
  - uses: ruby/setup-ruby@v1
15
15
  with:
16
- ruby-version: 2.5
16
+ ruby-version: 2.6
17
17
  bundler-cache: true
18
+ - name: Rubocop
19
+ run: |
20
+ bundle exec rake rubocop
18
21
  - name: Danger
19
22
  env:
20
23
  DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21
24
  run: |
22
25
  bundle exec danger --verbose
23
- - name: Rubocop
24
- run: |
25
- bundle exec rake rubocop
26
26
 
27
27
  spec:
28
- runs-on: macos-11.0
28
+ runs-on: macos-11
29
29
  continue-on-error: true
30
30
  strategy:
31
31
  matrix:
32
32
  spec: ["objc_spec", "swift_spec", "cocoapods_spec"]
33
33
  env:
34
- DEVELOPER_DIR: /Applications/Xcode_12.5.app/Contents/Developer
34
+ DEVELOPER_DIR: /Applications/Xcode_13.2.app/Contents/Developer
35
35
  steps:
36
36
  - uses: actions/checkout@v2
37
37
  with:
data/.rubocop.yml CHANGED
@@ -1,16 +1,120 @@
1
1
  AllCops:
2
- Include:
3
- - ./Rakefile
4
- - ./Gemfile
5
- - ./*.gemspec
6
2
  Exclude:
7
3
  - ./spec/integration_specs/**/*
8
4
  - ./vendor/**/*
9
5
  - ./tmp/**/*
6
+ - ./SourceKitten/**/*
7
+ SuggestExtensions: false
8
+ TargetRubyVersion: 2.6
9
+
10
+ #- Pending Cops as of 1.26.0 ---------------------------------------------#
11
+
12
+ Gemspec/DateAssignment: # (new in 1.10)
13
+ Enabled: true
14
+ Gemspec/RequireMFA: # new in 1.23
15
+ Enabled: true
16
+ Layout/SpaceBeforeBrackets: # (new in 1.7)
17
+ Enabled: true
18
+ Lint/AmbiguousAssignment: # (new in 1.7)
19
+ Enabled: true
20
+ Lint/AmbiguousRange: # (new in 1.19)
21
+ Enabled: true
22
+ Lint/DeprecatedConstants: # (new in 1.8)
23
+ Enabled: true
24
+ Lint/DuplicateBranch: # (new in 1.3)
25
+ Enabled: true
26
+ Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
27
+ Enabled: true
28
+ Lint/EmptyBlock: # (new in 1.1)
29
+ Enabled: true
30
+ Lint/EmptyClass: # (new in 1.3)
31
+ Enabled: true
32
+ Lint/EmptyInPattern: # (new in 1.16)
33
+ Enabled: true
34
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
35
+ Enabled: true
36
+ Lint/LambdaWithoutLiteralBlock: # (new in 1.8)
37
+ Enabled: true
38
+ Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
39
+ Enabled: true
40
+ Lint/NumberedParameterAssignment: # (new in 1.9)
41
+ Enabled: true
42
+ Lint/OrAssignmentToConstant: # (new in 1.9)
43
+ Enabled: true
44
+ Lint/RedundantDirGlobSort: # (new in 1.8)
45
+ Enabled: true
46
+ Lint/RequireRelativeSelfPath: # new in 1.22
47
+ Enabled: true
48
+ Lint/SymbolConversion: # (new in 1.9)
49
+ Enabled: true
50
+ Lint/ToEnumArguments: # (new in 1.1)
51
+ Enabled: true
52
+ Lint/TripleQuotes: # (new in 1.9)
53
+ Enabled: true
54
+ Lint/UnexpectedBlockArity: # (new in 1.5)
55
+ Enabled: true
56
+ Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
57
+ Enabled: true
58
+ Lint/UselessRuby2Keywords: # new in 1.23
59
+ Enabled: true
60
+ Naming/BlockForwarding: # new in 1.24
61
+ Enabled: true
62
+ Naming/InclusiveLanguage: # (new in 1.18)
63
+ Enabled: true
64
+ Security/IoMethods: # new in 1.22
65
+ Enabled: true
66
+ Style/ArgumentsForwarding: # (new in 1.1)
67
+ Enabled: true
68
+ Style/CollectionCompact: # (new in 1.2)
69
+ Enabled: true
70
+ Style/DocumentDynamicEvalDefinition: # (new in 1.1)
71
+ Enabled: true
72
+ Style/EndlessMethod: # (new in 1.8)
73
+ Enabled: true
74
+ Style/FileRead: # new in 1.24
75
+ Enabled: true
76
+ Style/FileWrite: # new in 1.24
77
+ Enabled: true
78
+ Style/HashConversion: # (new in 1.10)
79
+ Enabled: true
80
+ Style/HashExcept: # (new in 1.7)
81
+ Enabled: true
82
+ Style/IfWithBooleanLiteralBranches: # (new in 1.9)
83
+ Enabled: true
84
+ Style/InPatternThen: # (new in 1.16)
85
+ Enabled: true
86
+ Style/MapToHash: # new in 1.24
87
+ Enabled: true
88
+ Style/MultilineInPatternThen: # (new in 1.16)
89
+ Enabled: true
90
+ Style/NegatedIfElseCondition: # (new in 1.2)
91
+ Enabled: true
92
+ Style/NestedFileDirname: # new in 1.26
93
+ Enabled: true
94
+ Style/NilLambda: # (new in 1.3)
95
+ Enabled: true
96
+ Style/NumberedParameters: # new in 1.22
97
+ Enabled: true
98
+ Style/NumberedParametersLimit: # new in 1.22
99
+ Enabled: true
100
+ Style/OpenStructUse: # new in 1.23
101
+ Enabled: true
102
+ Style/QuotedSymbols: # (new in 1.16)
103
+ Enabled: true
104
+ Style/RedundantArgument: # (new in 1.4)
105
+ Enabled: true
106
+ Style/RedundantSelfAssignmentBranch: # (new in 1.19)
107
+ Enabled: true
108
+ Style/SelectByRegexp: # new in 1.22
109
+ Enabled: true
110
+ Style/StringChars: # (new in 1.12)
111
+ Enabled: true
112
+ Style/SwapValues: # (new in 1.1)
113
+ Enabled: true
10
114
 
11
115
  # At the moment not ready to be used
12
116
  # https://github.com/bbatsov/rubocop/issues/947
13
- Documentation:
117
+ Style/Documentation:
14
118
  Enabled: false
15
119
 
16
120
  #- Jazzy -----------------------------------------------------------------#
@@ -31,39 +135,40 @@ Metrics/BlockLength:
31
135
  Style/NumericPredicate:
32
136
  Enabled: false
33
137
 
34
- Layout/IndentHeredoc:
138
+ Layout/HeredocIndentation:
35
139
  Enabled: false
36
140
 
37
141
  # We adopted raise instead of fail.
38
- SignalException:
142
+ Style/SignalException:
39
143
  EnforcedStyle: only_raise
40
144
 
41
145
  # They are idiomatic
42
- AssignmentInCondition:
146
+ Lint/AssignmentInCondition:
43
147
  Enabled: false
44
148
 
45
149
  # Allow backticks
46
- AsciiComments:
150
+ Style/AsciiComments:
47
151
  Enabled: false
48
152
 
49
153
  # Indentation clarifies logic branches in implementations
50
- IfUnlessModifier:
154
+ Style/IfUnlessModifier:
51
155
  Enabled: false
52
156
 
53
157
  # No enforced convention here.
54
- SingleLineBlockParams:
158
+ Style/SingleLineBlockParams:
55
159
  Enabled: false
56
160
 
57
161
  # We only add the comment when needed.
58
- Encoding:
162
+ Style/Encoding:
59
163
  Enabled: false
60
164
 
61
165
  # Having these make it easier to *not* forget to add one when adding a new
62
166
  # value and you can simply copy the previous line.
63
- TrailingCommaInLiteral:
167
+ Style/TrailingCommaInArrayLiteral:
64
168
  EnforcedStyleForMultiline: comma
65
-
66
- TrailingCommaInArguments:
169
+ Style/TrailingCommaInHashLiteral:
170
+ EnforcedStyleForMultiline: comma
171
+ Style/TrailingCommaInArguments:
67
172
  EnforcedStyleForMultiline: comma
68
173
 
69
174
  Style/SpecialGlobalVars:
@@ -78,40 +183,66 @@ Style/TrailingUnderscoreVariable:
78
183
 
79
184
  # For lambdas nested within certain expressions, this rule forces either ugly
80
185
  # parens or curly braces that violate the "do/end for multiline blocks" rule.
81
- Lambda:
186
+ Style/Lambda:
82
187
  Enabled: false
83
188
 
84
189
  # Disallowing indented "when" clauses destroys readability when using the
85
190
  # single-line "when/then" style.
86
- CaseIndentation:
191
+ Layout/CaseIndentation:
87
192
  Enabled: false
88
193
 
89
194
  # These are both subjective judgements that depend on the situation, and are
90
195
  # not appropriate as absolute rules.
91
- GuardClause:
196
+ Style/GuardClause:
92
197
  Enabled: false
93
- Next:
198
+ Style/Next:
94
199
  Enabled: false
95
200
 
96
- RegexpLiteral:
201
+ # Avoid the least-readable varieties of regular expressions.
202
+ Style/RegexpLiteral:
97
203
  EnforcedStyle: mixed
98
204
 
205
+ # Sometimes easier to read either way
206
+ Style/AccessorGrouping:
207
+ Enabled: false
208
+
209
+ # Avoid mandatory wide indentation
210
+ Layout/MultilineMethodCallIndentation:
211
+ EnforcedStyle: indented
212
+ Layout/LineEndStringConcatenationIndentation:
213
+ Enabled: true
214
+ EnforcedStyle: indented
215
+
216
+ # Avoid false positives with `Pathname`
217
+ Style/StringConcatenation:
218
+ Mode: conservative
219
+
220
+ # Compatibility with earlier Rubocops
221
+ Metrics/CyclomaticComplexity:
222
+ Max: 10
223
+ Metrics/PerceivedComplexity:
224
+ Max: 10
225
+
226
+ # Too much firing on basic arithmetic
227
+ Lint/AmbiguousOperatorPrecedence:
228
+ Enabled: false
229
+
99
230
  #- Jazzy specs -----------------------------------------------------------#
100
231
 
101
232
  # Allow for `should.match /regexp/`.
102
- AmbiguousRegexpLiteral:
233
+ Lint/AmbiguousRegexpLiteral:
103
234
  Exclude:
104
235
  - spec/**/*
105
236
 
106
237
  # Allow `object.should == object` syntax.
107
- Void:
238
+ Lint/Void:
108
239
  Exclude:
109
240
  - spec/**/*
110
241
 
111
- ClassAndModuleChildren:
242
+ Style/ClassAndModuleChildren:
112
243
  Exclude:
113
244
  - spec/**/*
114
245
 
115
- UselessComparison:
246
+ Lint/BinaryOperatorWithIdenticalOperands:
116
247
  Exclude:
117
248
  - spec/**/*
data/CHANGELOG.md CHANGED
@@ -1,3 +1,94 @@
1
+ ## 0.14.2
2
+
3
+ ##### Breaking
4
+
5
+ * When building with Swift 5.6 and not passing `—-module` to Jazzy, declarations
6
+ may not be correctly identified as undocumented and docs may include unwanted
7
+ extensions. Pass `—-module MyModuleName` to fix this.
8
+ [John Fairhurst](https://github.com/johnfairh)
9
+
10
+ ##### Enhancements
11
+
12
+ * Support using pre-generated symbolgraph files in Swift symbolgraph mode.
13
+ [Nathan Wong](https://github.com/esteluk)
14
+
15
+ * Issue a warning on some combinations of Objective-C flags.
16
+ [John Fairhurst](https://github.com/johnfairh)
17
+ [#900](https://github.com/realm/jazzy/issues/900)
18
+
19
+ * Support Swift 5.6. The bundled `sourcekitten` is a universal binary.
20
+ [John Fairhurst](https://github.com/johnfairh)
21
+
22
+ ##### Bug Fixes
23
+
24
+ * In Swift symbolgraph mode, stop including extensions to types that are beneath
25
+ the minimum ACL.
26
+ [John Fairhurst](https://github.com/johnfairh)
27
+ [#1291](https://github.com/realm/jazzy/issues/1291)
28
+
29
+ ## 0.14.1
30
+
31
+ ##### Breaking
32
+
33
+ * Support Swift SPI groups. Swift declarations marked `@_spi` are no longer
34
+ included in docs when `--min-acl` is set to `public` or `open`. Use
35
+ `--include-spi-declarations` to include docs for these declarations.
36
+ [John Fairhurst](https://github.com/johnfairh)
37
+ [#1263](https://github.com/realm/jazzy/issues/1263)
38
+
39
+ ##### Enhancements
40
+
41
+ * Correct line number references with Xcode 13.
42
+ [John Fairhurst](https://github.com/johnfairh)
43
+
44
+ * Support `union` declarations in Objective-C headers.
45
+ [Brian Osborn](https://github.com/bosborn)
46
+ [John Fairhurst](https://github.com/johnfairh)
47
+
48
+ * Support Swift concurrency features: identify actors and asynchronous
49
+ methods.
50
+ [John Fairhurst](https://github.com/johnfairh)
51
+
52
+ ##### Bug Fixes
53
+
54
+ * Improve HTML5 correctness, all themes.
55
+ [John Fairhurst](https://github.com/johnfairh)
56
+ [#1280](https://github.com/realm/jazzy/issues/1280)
57
+
58
+ ## 0.14.0
59
+
60
+ ##### Breaking
61
+
62
+ * Require at least Ruby 2.6.3.
63
+
64
+ ##### Enhancements
65
+
66
+ * Support DocC-style autolinks and callouts in markdown.
67
+ [John Fairhurst](https://github.com/johnfairh)
68
+
69
+ * Add `--source-host` option to support projects hosted on GitLab and
70
+ Bitbucket as well as GitHub. Options `--source-host-url` and
71
+ `--source-host-files-url` and new Mustache tags replace the 'github' versions
72
+ which remain as back-compatibility aliases.
73
+ [John Fairhurst](https://github.com/johnfairh)
74
+ [#314](https://github.com/realm/jazzy/issues/314)
75
+
76
+ * Add `rel="noopener"` to all `target="_blank"` links.
77
+ [JP Simard](https://github.com/jpsim)
78
+
79
+ ##### Bug Fixes
80
+
81
+ * Fix source-host line number references in Swift symbolgraph mode, and
82
+ in ObjC mode for references to one-line declarations.
83
+ [John Fairhurst](https://github.com/johnfairh)
84
+
85
+ * Fix crash with `` ` ` `` in markdown.
86
+ [John Fairhurst](https://github.com/johnfairh)
87
+ [#1270](https://github.com/realm/jazzy/issues/1270)
88
+
89
+ * Fix symbolgraph mode with Xcode 13.
90
+ [John Fairhurst](https://github.com/johnfairh)
91
+
1
92
  ## 0.13.7
2
93
 
3
94
  The next release of Jazzy will require a minimum of Ruby 2.6.
data/CONTRIBUTING.md CHANGED
@@ -49,7 +49,7 @@ git push
49
49
  You'll need push access to the integration specs repo to do this. You can
50
50
  request access from one of the maintainers when filing your PR.
51
51
 
52
- You must have Xcode 12.5 installed to build the integration specs.
52
+ You must have Xcode 13.2 installed to build the integration specs.
53
53
 
54
54
  ## Making changes to SourceKitten
55
55
 
data/Dangerfile CHANGED
@@ -1,13 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Warn when there is a big PR
2
- warn("Big PR") if git.lines_of_code > 500
4
+ warn('Big PR') if git.lines_of_code > 500
3
5
 
4
6
  # Don't let testing shortcuts get into master by accident
5
- (git.modified_files + git.added_files - %w(Dangerfile)).each do |file|
7
+ (git.modified_files + git.added_files - %w[Dangerfile]).each do |file|
6
8
  next unless File.file?(file)
9
+
7
10
  contents = File.read(file)
8
11
  if file.start_with?('spec')
9
- fail("`xit` or `fit` left in tests (#{file})") if contents =~ /^\w*[xf]it/
10
- fail("`fdescribe` left in tests (#{file})") if contents =~ /^\w*fdescribe/
12
+ failure("`xit` or `fit` left in tests (#{file})") if contents =~ /^\w*[xf]it/
13
+ failure("`fdescribe` left in tests (#{file})") if contents =~ /^\w*fdescribe/
11
14
  end
12
15
  end
13
16
 
@@ -17,12 +20,12 @@ has_app_changes = !git.modified_files.grep(/lib/).empty?
17
20
  has_test_changes = !git.modified_files.grep(/spec/).empty?
18
21
 
19
22
  # Add a CHANGELOG entry for app changes
20
- if !git.modified_files.include?("CHANGELOG.md") && has_app_changes
21
- fail("Please include a CHANGELOG entry. \nYou can find it at [CHANGELOG.md](https://github.com/realm/jazzy/blob/master/CHANGELOG.md).")
22
- message "Note, we hard-wrap at 80 chars and use 2 spaces after the last line."
23
+ if !git.modified_files.include?('CHANGELOG.md') && has_app_changes
24
+ failure "Please include a CHANGELOG entry. \nYou can find it at [CHANGELOG.md](https://github.com/realm/jazzy/blob/master/CHANGELOG.md)."
25
+ message 'Note, we hard-wrap at 80 chars and use 2 spaces after the last line.'
23
26
  end
24
27
 
25
28
  # Non-trivial amounts of app changes without tests
26
29
  if git.lines_of_code > 50 && has_app_changes && !has_test_changes
27
- warn "This PR may need tests."
30
+ warn 'This PR may need tests.'
28
31
  end
data/Gemfile CHANGED
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
4
6
 
5
7
  group :development do
6
8
  # Code style
7
- gem 'rubocop', '0.49.0'
9
+ gem 'rubocop', '~> 1.18'
8
10
 
9
11
  # Tests
10
12
  gem 'bacon'