From 0a0b9a271a8de84272ff2dafc96ef53db224bb21 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Thu, 8 Jun 2017 20:24:28 +0900 Subject: [PATCH] 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. --- .rubocop.yml | 18 ++++++++++++++++++ .../api/v1/notifications_controller.rb | 2 +- app/helpers/stream_entries_helper.rb | 4 ++-- app/lib/feed_manager.rb | 4 ++-- app/models/concerns/paginable.rb | 4 ++-- app/models/setting.rb | 2 +- app/services/fetch_atom_service.rb | 2 +- app/services/suspend_account_service.rb | 2 +- app/services/update_remote_profile_service.rb | 2 +- lib/tasks/auto_annotate_models.rake | 1 + spec/models/user_spec.rb | 2 +- spec/requests/link_headers_spec.rb | 4 ++-- 12 files changed, 33 insertions(+), 14 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 7dab38792e..1cbdadd49f 100644 --- a/.rubocop.yml +++ b/.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' diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 20b28776db..a28e99f2fb 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/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 diff --git a/app/helpers/stream_entries_helper.rb b/app/helpers/stream_entries_helper.rb index ba989a84d7..275762c871 100644 --- a/app/helpers/stream_entries_helper.rb +++ b/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 diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index 86928fa36d..90a1441f29 100644 --- a/app/lib/feed_manager.rb +++ b/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 diff --git a/app/models/concerns/paginable.rb b/app/models/concerns/paginable.rb index 9e95cd649e..6061bf9bdf 100644 --- a/app/models/concerns/paginable.rb +++ b/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 diff --git a/app/models/setting.rb b/app/models/setting.rb index e0107dd83a..3405525819 100644 --- a/app/models/setting.rb +++ b/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 diff --git a/app/services/fetch_atom_service.rb b/app/services/fetch_atom_service.rb index 9c514aa9f9..8f42db0aaa 100644 --- a/app/services/fetch_atom_service.rb +++ b/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}" diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb index 0cf574ca2f..4a4f23b807 100644 --- a/app/services/suspend_account_service.rb +++ b/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 diff --git a/app/services/update_remote_profile_service.rb b/app/services/update_remote_profile_service.rb index 6607bc84ee..8a553bb36f 100644 --- a/app/services/update_remote_profile_service.rb +++ b/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! diff --git a/lib/tasks/auto_annotate_models.rake b/lib/tasks/auto_annotate_models.rake index 6c6b0df1bf..fb9c89aa4c 100644 --- a/lib/tasks/auto_annotate_models.rake +++ b/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( diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 9cb36d4676..13a60f6681 100644 --- a/spec/models/user_spec.rb +++ b/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 diff --git a/spec/requests/link_headers_spec.rb b/spec/requests/link_headers_spec.rb index 3947806ccc..3dc408d927 100644 --- a/spec/requests/link_headers_spec.rb +++ b/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)