Browse Source

Improve RuboCop rules (compatibility to Code Climate) (#3636)

https://github.com/codeclimate/codeclimate-rubocop/blob/08f8de84ebfb39caa96391e23816877278f6441c/Gemfile.lock#L38
Code Climate is using RuboCop v0.46.0.

Change several rules to maintain compatibility.
Yamagishi Kazutoshi 6 years ago
parent
commit
0a0b9a271a

+ 18 - 0
.rubocop.yml

@@ -17,12 +17,19 @@ Bundler/OrderedGems:
 Layout/AccessModifierIndentation:
   EnforcedStyle: indent
 
+Layout/EmptyLineAfterMagicComment:
+  Enabled: false
+
 Layout/SpaceInsideHashLiteralBraces:
   EnforcedStyle: space
 
 Metrics/AbcSize:
   Max: 100
 
+Metrics/BlockLength:
+  Exclude:
+    - 'lib/tasks/**/*'
+
 Metrics/BlockNesting:
   Max: 3
 
@@ -58,6 +65,9 @@ Rails:
 Rails/HasAndBelongsToMany:
   Enabled: false
 
+Rails/SkipsModelValidations:
+  Enabled: false
+
 Style/ClassAndModuleChildren:
   Enabled: false
 
@@ -81,11 +91,19 @@ Style/GuardClause:
 Style/Lambda:
   Enabled: false
 
+Style/PercentLiteralDelimiters:
+  PreferredDelimiters:
+    '%i': '()'
+    '%w': '()'
+
 Style/PerlBackrefs:
   AutoCorrect: false
 
 Style/RegexpLiteral:
   Enabled: false
 
+Style/SymbolArray:
+  Enabled: false
+
 Style/TrailingCommaInLiteral:
   EnforcedStyleForMultiline: 'comma'

+ 1 - 1
app/controllers/api/v1/notifications_controller.rb

@@ -51,7 +51,7 @@ class Api::V1::NotificationsController < Api::BaseController
   end
 
   def target_statuses_from_notifications
-    @notifications.select { |notification| !notification.target_status.nil? }.map(&:target_status)
+    @notifications.reject { |notification| notification.target_status.nil? }.map(&:target_status)
   end
 
   def insert_pagination_headers

+ 2 - 2
app/helpers/stream_entries_helper.rb

@@ -1,8 +1,8 @@
 # frozen_string_literal: true
 
 module StreamEntriesHelper
-  EMBEDDED_CONTROLLER = 'stream_entries'.freeze
-  EMBEDDED_ACTION = 'embed'.freeze
+  EMBEDDED_CONTROLLER = 'stream_entries'
+  EMBEDDED_ACTION = 'embed'
 
   def display_name(account)
     account.display_name.presence || account.username

+ 2 - 2
app/lib/feed_manager.rb

@@ -109,8 +109,8 @@ class FeedManager
 
     if status.reply? && !status.in_reply_to_account_id.nil?                                                              # Filter out if it's a reply
       should_filter   = !Follow.where(account_id: receiver_id, target_account_id: status.in_reply_to_account_id).exists? # and I'm not following the person it's a reply to
-      should_filter &&= !(receiver_id == status.in_reply_to_account_id)                                                  # and it's not a reply to me
-      should_filter &&= !(status.account_id == status.in_reply_to_account_id)                                            # and it's not a self-reply
+      should_filter &&= receiver_id != status.in_reply_to_account_id                                                     # and it's not a reply to me
+      should_filter &&= status.account_id != status.in_reply_to_account_id                                               # and it's not a self-reply
       return should_filter
     elsif status.reblog?                                                                                                 # Filter out a reblog
       should_filter   = Block.where(account_id: status.reblog.account_id, target_account_id: receiver_id).exists?        # or if the author of the reblogged status is blocking me

+ 2 - 2
app/models/concerns/paginable.rb

@@ -6,8 +6,8 @@ module Paginable
   included do
     scope :paginate_by_max_id, ->(limit, max_id = nil, since_id = nil) {
       query = order(arel_table[:id].desc).limit(limit)
-      query = query.where(arel_table[:id].lt(max_id)) unless max_id.blank?
-      query = query.where(arel_table[:id].gt(since_id)) unless since_id.blank?
+      query = query.where(arel_table[:id].lt(max_id)) if max_id.present?
+      query = query.where(arel_table[:id].gt(since_id)) if since_id.present?
       query
     }
   end

+ 1 - 1
app/models/setting.rb

@@ -13,7 +13,7 @@
 #
 
 class Setting < RailsSettings::Base
-  source Rails.root.join('config/settings.yml')
+  source Rails.root.join('config', 'settings.yml')
 
   def to_param
     var

+ 1 - 1
app/services/fetch_atom_service.rb

@@ -16,7 +16,7 @@ class FetchAtomService < BaseService
 
     return nil if response.code != 200
     return [url, fetch(url)] if response.mime_type == 'application/atom+xml'
-    return process_headers(url, response) unless response['Link'].blank?
+    return process_headers(url, response) if response['Link'].present?
     process_html(fetch(url))
   rescue OpenSSL::SSL::SSLError => e
     Rails.logger.debug "SSL error: #{e}"

+ 1 - 1
app/services/suspend_account_service.rb

@@ -23,7 +23,7 @@ class SuspendAccountService < BaseService
       @account.notifications,
       @account.favourites,
       @account.active_relationships,
-      @account.passive_relationships
+      @account.passive_relationships,
     ].each do |association|
       destroy_all(association)
     end

+ 1 - 1
app/services/update_remote_profile_service.rb

@@ -24,7 +24,7 @@ class UpdateRemoteProfileService < BaseService
     end
 
     old_hub_url     = account.hub_url
-    account.hub_url = hub_link['href'] if !hub_link.nil? && !hub_link['href'].blank? && (hub_link['href'] != old_hub_url)
+    account.hub_url = hub_link['href'] if !hub_link.nil? && hub_link['href'].present? && (hub_link['href'] != old_hub_url)
 
     account.save_with_optional_media!
 

+ 1 - 0
lib/tasks/auto_annotate_models.rake

@@ -1,4 +1,5 @@
 # frozen_string_literal: true
+
 if Rails.env.development?
   task :set_annotation_options do
     Annotate.set_defaults(

+ 1 - 1
spec/models/user_spec.rb

@@ -150,7 +150,7 @@ RSpec.describe User, type: :model do
     end
 
     it 'saves cleared otp_backup_codes' do
-      user = Fabricate.build(:user, otp_backup_codes: %w[dummy dummy])
+      user = Fabricate.build(:user, otp_backup_codes: %w(dummy dummy))
       user.disable_two_factor!
       expect(user.reload.otp_backup_codes.empty?).to be true
     end

+ 2 - 2
spec/requests/link_headers_spec.rb

@@ -14,14 +14,14 @@ describe 'Link headers' do
       link_header = link_header_with_type('application/xrd+xml')
 
       expect(link_header.href).to match 'http://www.example.com/.well-known/webfinger?resource=acct%3Atest%40cb6e6126.ngrok.io'
-      expect(link_header.attr_pairs.first).to eq %w[rel lrdd]
+      expect(link_header.attr_pairs.first).to eq %w(rel lrdd)
     end
 
     it 'contains atom url in link header' do
       link_header = link_header_with_type('application/atom+xml')
 
       expect(link_header.href).to eq 'http://www.example.com/users/test.atom'
-      expect(link_header.attr_pairs.first).to eq %w[rel alternate]
+      expect(link_header.attr_pairs.first).to eq %w(rel alternate)
     end
 
     def link_header_with_type(type)