rubocop-rails 2.3.0 → 2.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f18a288648626076787a00773149df97edce3b5330a5dc650cf662af46214bd5
4
- data.tar.gz: f945d031d0a5bc98eb0af95a6cdf8e931cb5a469a1c1ced6ab11c1fb20f09bb5
3
+ metadata.gz: 147c7b2462cbfbefa559fc9e6d23b3bad655397784ab1296d2865aede5d41aff
4
+ data.tar.gz: 1fe87be1d5319fa8687f82e4ece29feedcad65ef1568be8d3f849666f4ba0a5b
5
5
  SHA512:
6
- metadata.gz: 24f03fcf8cd683c5ed3e2afc9243f113afaa8641fc5cbd938d5d2ff916b7eeed95a994b69b48509b20618341c5b5c39286bde009f1dc5b369f94dc249a65b148
7
- data.tar.gz: 57d3fff4181c71750d0eccdde094607ad63f79b7a6b273f698224dcc687a707879df82a264df063b4ac8f133fff3f4fe23dfcb820b4d2863cbae6792c6e38906
6
+ metadata.gz: 191ef083e5a22f0b8deb9b4918b70cd10556f9db0ff98fdfddc944a40b176050dacdb3a5fbb819abe7a9aaee38c7f4cc06329bd59b82738a98de6c9ffebca7a2
7
+ data.tar.gz: 4b7b0d972bde8df9df3f8b7b956077d4b895ffcc7f5e0aab1c3885b1f6027244b4b918b0d1f619afb079388a7d2756a70a45fee85ffeca1bae25062370299d41
@@ -1,6 +1,8 @@
1
1
  # Common configuration.
2
2
 
3
3
  AllCops:
4
+ Exclude:
5
+ - bin/bundle
4
6
  # What version of Rails is the inspected code using? If a value is specified
5
7
  # for TargetRailsVersion then it is used. Acceptable values are specificed
6
8
  # as a float (i.e. 5.1); the patch version of Rails should not be included.
@@ -9,9 +11,6 @@ AllCops:
9
11
  # application. If neither of those files exist, RuboCop will use Rails 5.0
10
12
  # as the default.
11
13
  TargetRailsVersion: ~
12
- # When specifying style guide URLs, any paths and/or fragments will be
13
- # evaluated relative to the base URL.
14
- StyleGuideBaseURL: https://rails.rubystyle.guide
15
14
 
16
15
  Rails/ActionFilter:
17
16
  Description: 'Enforces consistent use of action filter methods.'
@@ -140,7 +139,7 @@ Rails/DelegateAllowBlank:
140
139
 
141
140
  Rails/DynamicFindBy:
142
141
  Description: 'Use `find_by` instead of dynamic `find_by_*`.'
143
- StyleGuide: '#find_by'
142
+ StyleGuide: 'https://rails.rubystyle.guide#find_by'
144
143
  Enabled: true
145
144
  VersionAdded: '0.44'
146
145
  Whitelist:
@@ -148,7 +147,7 @@ Rails/DynamicFindBy:
148
147
 
149
148
  Rails/EnumHash:
150
149
  Description: 'Prefer hash syntax over array syntax when defining enums.'
151
- StyleGuide: '#enums'
150
+ StyleGuide: 'https://rails.rubystyle.guide#enums'
152
151
  Enabled: true
153
152
  VersionAdded: '2.3'
154
153
  Include:
@@ -192,7 +191,7 @@ Rails/FilePath:
192
191
 
193
192
  Rails/FindBy:
194
193
  Description: 'Prefer find_by over where.first.'
195
- StyleGuide: '#find_by'
194
+ StyleGuide: 'https://rails.rubystyle.guide#find_by'
196
195
  Enabled: true
197
196
  VersionAdded: '0.30'
198
197
  Include:
@@ -200,7 +199,7 @@ Rails/FindBy:
200
199
 
201
200
  Rails/FindEach:
202
201
  Description: 'Prefer all.find_each over all.find.'
203
- StyleGuide: '#find-each'
202
+ StyleGuide: 'https://rails.rubystyle.guide#find-each'
204
203
  Enabled: true
205
204
  VersionAdded: '0.30'
206
205
  Include:
@@ -208,7 +207,7 @@ Rails/FindEach:
208
207
 
209
208
  Rails/HasAndBelongsToMany:
210
209
  Description: 'Prefer has_many :through to has_and_belongs_to_many.'
211
- StyleGuide: '#has-many-through'
210
+ StyleGuide: 'https://rails.rubystyle.guide#has-many-through'
212
211
  Enabled: true
213
212
  VersionAdded: '0.12'
214
213
  Include:
@@ -216,7 +215,7 @@ Rails/HasAndBelongsToMany:
216
215
 
217
216
  Rails/HasManyOrHasOneDependent:
218
217
  Description: 'Define the dependent option to the has_many and has_one associations.'
219
- StyleGuide: '#has_many-has_one-dependent-option'
218
+ StyleGuide: 'https://rails.rubystyle.guide#has_many-has_one-dependent-option'
220
219
  Enabled: true
221
220
  VersionAdded: '0.50'
222
221
  Include:
@@ -263,7 +262,7 @@ Rails/InverseOf:
263
262
 
264
263
  Rails/LexicallyScopedActionFilter:
265
264
  Description: "Checks that methods specified in the filter's `only` or `except` options are explicitly defined in the controller."
266
- StyleGuide: '#lexically-scoped-action-filter'
265
+ StyleGuide: 'https://rails.rubystyle.guide#lexically-scoped-action-filter'
267
266
  Enabled: true
268
267
  Safe: false
269
268
  VersionAdded: '0.52'
@@ -328,7 +327,7 @@ Rails/ReadWriteAttribute:
328
327
  Description: >-
329
328
  Checks for read_attribute(:attr) and
330
329
  write_attribute(:attr, val).
331
- StyleGuide: '#read-attribute'
330
+ StyleGuide: 'https://rails.rubystyle.guide#read-attribute'
332
331
  Enabled: true
333
332
  VersionAdded: '0.20'
334
333
  VersionChanged: '0.29'
@@ -379,7 +378,7 @@ Rails/RequestReferer:
379
378
 
380
379
  Rails/ReversibleMigration:
381
380
  Description: 'Checks whether the change method of the migration file is reversible.'
382
- StyleGuide: '#reversible-migration'
381
+ StyleGuide: 'https://rails.rubystyle.guide#reversible-migration'
383
382
  Reference: 'https://api.rubyonrails.org/classes/ActiveRecord/Migration/CommandRecorder.html'
384
383
  Enabled: true
385
384
  VersionAdded: '0.47'
@@ -398,7 +397,7 @@ Rails/SafeNavigation:
398
397
 
399
398
  Rails/SaveBang:
400
399
  Description: 'Identifies possible cases where Active Record save! or related should be used.'
401
- StyleGuide: '#save-bang'
400
+ StyleGuide: 'https://rails.rubystyle.guide#save-bang'
402
401
  Enabled: false
403
402
  VersionAdded: '0.42'
404
403
  VersionChanged: '0.59'
@@ -437,7 +436,7 @@ Rails/SkipsModelValidations:
437
436
 
438
437
  Rails/TimeZone:
439
438
  Description: 'Checks the correct usage of time zone aware methods.'
440
- StyleGuide: '#time'
439
+ StyleGuide: 'https://rails.rubystyle.guide#time'
441
440
  Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
442
441
  Enabled: true
443
442
  Safe: false
@@ -38,6 +38,8 @@ module RuboCop
38
38
  # # good
39
39
  # a.presence || b
40
40
  class Presence < Cop
41
+ include RangeHelp
42
+
41
43
  MSG = 'Use `%<prefer>s` instead of `%<current>s`.'
42
44
 
43
45
  def_node_matcher :redundant_receiver_and_other, <<-PATTERN
@@ -115,9 +117,29 @@ module RuboCop
115
117
  end
116
118
 
117
119
  def replacement(receiver, other)
118
- or_source = other.nil? || other.nil_type? ? '' : " || #{other.source}"
120
+ or_source = if other&.send_type?
121
+ build_source_for_or_method(other)
122
+ else
123
+ ''
124
+ end
125
+
119
126
  "#{receiver.source}.presence" + or_source
120
127
  end
128
+
129
+ def build_source_for_or_method(other)
130
+ if other.parenthesized? || !other.arguments?
131
+ " || #{other.source}"
132
+ else
133
+ method = range_between(
134
+ other.source_range.begin_pos,
135
+ other.first_argument.source_range.begin_pos - 1
136
+ ).source
137
+
138
+ arguments = other.arguments.map(&:source).join(', ')
139
+
140
+ " || #{method}(#{arguments})"
141
+ end
142
+ end
121
143
  end
122
144
  end
123
145
  end
@@ -4,7 +4,7 @@ module RuboCop
4
4
  module Rails
5
5
  # This module holds the RuboCop Rails version information.
6
6
  module Version
7
- STRING = '2.3.0'
7
+ STRING = '2.3.1'
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-08-13 00:00:00.000000000 Z
13
+ date: 2019-08-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  requirements: []
140
- rubygems_version: 3.0.4
140
+ rubygems_version: 3.0.6
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: Automatic Rails code style checking tool.