480 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			480 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
require:
 | 
						|
  - rubocop-rails
 | 
						|
  - rubocop-rspec
 | 
						|
  - rubocop-performance
 | 
						|
 | 
						|
AllCops:
 | 
						|
  TargetRubyVersion: 2.7
 | 
						|
  DisplayCopNames: true
 | 
						|
  DisplayStyleGuide: true
 | 
						|
  ExtraDetails: true
 | 
						|
  UseCache: true
 | 
						|
  CacheRootDirectory: tmp
 | 
						|
  NewCops: enable
 | 
						|
  Exclude:
 | 
						|
    - db/schema.rb
 | 
						|
    - 'app/views/**/*'
 | 
						|
    - 'config/**/*'
 | 
						|
    - 'bin/*'
 | 
						|
    - 'Rakefile'
 | 
						|
    - 'node_modules/**/*'
 | 
						|
    - 'Vagrantfile'
 | 
						|
    - 'vendor/**/*'
 | 
						|
    - 'lib/json_ld/*'
 | 
						|
    - 'lib/templates/**/*'
 | 
						|
 | 
						|
Bundler/OrderedGems:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Layout/AccessModifierIndentation:
 | 
						|
  EnforcedStyle: indent
 | 
						|
 | 
						|
Layout/EmptyLineAfterMagicComment:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Layout/EmptyLineAfterGuardClause:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Layout/EmptyLineBetweenDefs:
 | 
						|
  AllowAdjacentOneLineDefs: true
 | 
						|
 | 
						|
Layout/EmptyLinesAroundAttributeAccessor:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Layout/FirstHashElementIndentation:
 | 
						|
  EnforcedStyle: consistent
 | 
						|
 | 
						|
Layout/HashAlignment:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Layout/SpaceAroundMethodCallOperator:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Layout/SpaceInsideHashLiteralBraces:
 | 
						|
  EnforcedStyle: space
 | 
						|
 | 
						|
Lint/DeprecatedOpenSSLConstant:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Lint/DuplicateElsifCondition:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Lint/MixedRegexpCaptureTypes:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Lint/RaiseException:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Lint/StructNewOverride:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Lint/UselessAccessModifier:
 | 
						|
  ContextCreatingMethods:
 | 
						|
    - class_methods
 | 
						|
 | 
						|
Metrics/AbcSize:
 | 
						|
  Max: 34 # RuboCop default 17
 | 
						|
  Exclude:
 | 
						|
    - 'lib/**/*cli*.rb'
 | 
						|
    - db/*migrate/**/*
 | 
						|
    - lib/paperclip/color_extractor.rb
 | 
						|
    - app/workers/scheduler/follow_recommendations_scheduler.rb
 | 
						|
    - app/services/activitypub/fetch*_service.rb
 | 
						|
    - lib/paperclip/**/*
 | 
						|
  CountRepeatedAttributes: false
 | 
						|
  AllowedMethods:
 | 
						|
    - update_media_attachments!
 | 
						|
    - account_link_to
 | 
						|
    - attempt_oembed
 | 
						|
    - build_crutches
 | 
						|
    - calculate_scores
 | 
						|
    - cc
 | 
						|
    - dump_actor!
 | 
						|
    - filter_from_home?
 | 
						|
    - hydrate
 | 
						|
    - import_bookmarks!
 | 
						|
    - import_relationships!
 | 
						|
    - initialize
 | 
						|
    - link_to_mention
 | 
						|
    - log_target
 | 
						|
    - matches_time_window?
 | 
						|
    - parse_metadata
 | 
						|
    - perform_statuses_search!
 | 
						|
    - privatize_media_attachments!
 | 
						|
    - process_update
 | 
						|
    - publish_media_attachments!
 | 
						|
    - remotable_attachment
 | 
						|
    - render_initial_state
 | 
						|
    - render_with_cache
 | 
						|
    - searchable_by
 | 
						|
    - self.cached_filters_for
 | 
						|
    - set_fetchable_attributes!
 | 
						|
    - signed_request_actor
 | 
						|
    - statuses_to_delete
 | 
						|
    - update_poll!
 | 
						|
 | 
						|
Metrics/BlockLength:
 | 
						|
  Max: 55
 | 
						|
  Exclude:
 | 
						|
    - 'lib/mastodon/*_cli.rb'
 | 
						|
  CountComments: false
 | 
						|
  CountAsOne: [array, heredoc]
 | 
						|
  AllowedMethods:
 | 
						|
    - task
 | 
						|
    - namespace
 | 
						|
    - class_methods
 | 
						|
    - included
 | 
						|
 | 
						|
Metrics/BlockNesting:
 | 
						|
  Max: 3
 | 
						|
  Exclude:
 | 
						|
    - 'lib/mastodon/*_cli.rb'
 | 
						|
 | 
						|
Metrics/ClassLength:
 | 
						|
  CountComments: false
 | 
						|
  Max: 500
 | 
						|
  CountAsOne: [array, heredoc]
 | 
						|
  Exclude:
 | 
						|
    - 'lib/mastodon/*_cli.rb'
 | 
						|
 | 
						|
Metrics/CyclomaticComplexity:
 | 
						|
  Max: 12
 | 
						|
  Exclude:
 | 
						|
    - lib/mastodon/*cli*.rb
 | 
						|
    - db/*migrate/**/*
 | 
						|
  AllowedMethods:
 | 
						|
    - attempt_oembed
 | 
						|
    - blocked?
 | 
						|
    - build_crutches
 | 
						|
    - calculate_scores
 | 
						|
    - cc
 | 
						|
    - discover_endpoint!
 | 
						|
    - filter_from_home?
 | 
						|
    - hydrate
 | 
						|
    - klass
 | 
						|
    - link_to_mention
 | 
						|
    - log_target
 | 
						|
    - matches_time_window?
 | 
						|
    - patch_for_forwarding!
 | 
						|
    - preprocess_attributes!
 | 
						|
    - process_update
 | 
						|
    - remotable_attachment
 | 
						|
    - scan_text!
 | 
						|
    - self.cached_filters_for
 | 
						|
    - set_fetchable_attributes!
 | 
						|
    - setup_redis_env_url
 | 
						|
    - update_media_attachments!
 | 
						|
 | 
						|
Layout/LineLength:
 | 
						|
  Max: 140 # RuboCop default 120
 | 
						|
  AllowHeredoc: true
 | 
						|
  AllowURI: true
 | 
						|
  IgnoreCopDirectives: true
 | 
						|
  AllowedPatterns:
 | 
						|
    # Allow comments to be long lines
 | 
						|
    - !ruby/regexp / \# .*$/
 | 
						|
    - !ruby/regexp /^\# .*$/
 | 
						|
  Exclude:
 | 
						|
    - lib/**/*cli*.rb
 | 
						|
    - db/*migrate/**/*
 | 
						|
    - db/seeds/**/*
 | 
						|
 | 
						|
Metrics/MethodLength:
 | 
						|
  CountComments: false
 | 
						|
  CountAsOne: [array, heredoc]
 | 
						|
  Max: 25 # RuboCop default 10
 | 
						|
  Exclude:
 | 
						|
    - 'lib/mastodon/*_cli.rb'
 | 
						|
  AllowedMethods:
 | 
						|
    - account_link_to
 | 
						|
    - attempt_oembed
 | 
						|
    - body_with_limit
 | 
						|
    - build_crutches
 | 
						|
    - cached_filters_for
 | 
						|
    - calculate_scores
 | 
						|
    - check_webfinger!
 | 
						|
    - clean_feeds!
 | 
						|
    - collection_items
 | 
						|
    - collection_presenter
 | 
						|
    - copy_account_notes!
 | 
						|
    - deduplicate_accounts!
 | 
						|
    - deduplicate_conversations!
 | 
						|
    - deduplicate_local_accounts!
 | 
						|
    - deduplicate_statuses!
 | 
						|
    - deduplicate_tags!
 | 
						|
    - deduplicate_users!
 | 
						|
    - discover_endpoint!
 | 
						|
    - extract_extra_uris_with_indices
 | 
						|
    - extract_hashtags_with_indices
 | 
						|
    - extract_mentions_or_lists_with_indices
 | 
						|
    - filter_from_home?
 | 
						|
    - from_elasticsearch
 | 
						|
    - handle_explicit_update!
 | 
						|
    - handle_mark_as_sensitive!
 | 
						|
    - hsl_to_rgb
 | 
						|
    - import_bookmarks!
 | 
						|
    - import_domain_blocks!
 | 
						|
    - import_relationships!
 | 
						|
    - ldap_options
 | 
						|
    - matches_time_window?
 | 
						|
    - outbox_presenter
 | 
						|
    - pam_get_user
 | 
						|
    - parallelize_with_progress
 | 
						|
    - parse_and_transform
 | 
						|
    - patch_for_forwarding!
 | 
						|
    - populate_home
 | 
						|
    - post_process_style
 | 
						|
    - preload_cache_collection_target_statuses
 | 
						|
    - privatize_media_attachments!
 | 
						|
    - provides_callback_for
 | 
						|
    - publish_media_attachments!
 | 
						|
    - relevant_account_timestamp
 | 
						|
    - remotable_attachment
 | 
						|
    - rgb_to_hsl
 | 
						|
    - rss_status_content_format
 | 
						|
    - set_fetchable_attributes!
 | 
						|
    - setup_redis_env_url
 | 
						|
    - signed_request_actor
 | 
						|
    - to_preview_card_attributes
 | 
						|
    - upgrade_storage_filesystem
 | 
						|
    - upgrade_storage_s3
 | 
						|
    - user_settings_params
 | 
						|
    - hydrate
 | 
						|
    - cc
 | 
						|
    - self_destruct
 | 
						|
 | 
						|
Metrics/ModuleLength:
 | 
						|
  CountComments: false
 | 
						|
  Max: 200
 | 
						|
  CountAsOne: [array, heredoc]
 | 
						|
 | 
						|
Metrics/ParameterLists:
 | 
						|
  Max: 5 # RuboCop default 5
 | 
						|
  CountKeywordArgs: true # RuboCop default true
 | 
						|
  MaxOptionalParameters: 3 # RuboCop default 3
 | 
						|
  Exclude:
 | 
						|
    - app/models/concerns/account_interactions.rb
 | 
						|
    - app/services/activitypub/fetch_remote_account_service.rb
 | 
						|
    - app/services/activitypub/fetch_remote_actor_service.rb
 | 
						|
 | 
						|
Metrics/PerceivedComplexity:
 | 
						|
  Max: 16 # RuboCop default 8
 | 
						|
  AllowedMethods:
 | 
						|
    - attempt_oembed
 | 
						|
    - build_crutches
 | 
						|
    - calculate_scores
 | 
						|
    - deduplicate_users!
 | 
						|
    - discover_endpoint!
 | 
						|
    - filter_from_home?
 | 
						|
    - hydrate
 | 
						|
    - patch_for_forwarding!
 | 
						|
    - process_update
 | 
						|
    - remove_orphans
 | 
						|
    - update_media_attachments!
 | 
						|
 | 
						|
Naming/MemoizedInstanceVariableName:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Naming/MethodParameterName:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Rails:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Rails/ApplicationController:
 | 
						|
  Enabled: false
 | 
						|
  Exclude:
 | 
						|
    - 'app/controllers/well_known/**/*.rb'
 | 
						|
 | 
						|
Rails/BelongsTo:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/ContentTag:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/EnumHash:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/Exit:
 | 
						|
  Exclude:
 | 
						|
    - 'lib/mastodon/*'
 | 
						|
    - 'lib/cli.rb'
 | 
						|
 | 
						|
Rails/FilePath:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/HasAndBelongsToMany:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/HasManyOrHasOneDependent:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/HelperInstanceVariable:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/HttpStatus:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/IndexBy:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/InverseOf:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/LexicallyScopedActionFilter:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/OutputSafety:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Rails/RakeEnvironment:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/RedundantForeignKey:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/SkipsModelValidations:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Rails/UniqueValidationWithoutIndex:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/AccessorGrouping:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/AccessModifierDeclarations:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/ArrayCoercion:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/BisectedAttrAccessor:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/CaseLikeIf:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/ClassAndModuleChildren:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/CollectionMethods:
 | 
						|
  Enabled: true
 | 
						|
  PreferredMethods:
 | 
						|
    find_all: 'select'
 | 
						|
 | 
						|
Style/Documentation:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/DoubleNegation:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/ExpandPathArguments:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/ExponentialNotation:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/FormatString:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/FormatStringToken:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/FrozenStringLiteralComment:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/GuardClause:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/HashAsLastArrayItem:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/HashEachMethods:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/HashLikeCase:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/HashTransformKeys:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/HashTransformValues:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/HashSyntax:
 | 
						|
  Enabled: true
 | 
						|
  EnforcedStyle: ruby19_no_mixed_keys
 | 
						|
 | 
						|
Style/IfUnlessModifier:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/InverseMethods:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/Lambda:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/MutableConstant:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/PercentLiteralDelimiters:
 | 
						|
  PreferredDelimiters:
 | 
						|
    '%i': '()'
 | 
						|
    '%w': '()'
 | 
						|
 | 
						|
Style/PerlBackrefs:
 | 
						|
  AutoCorrect: false
 | 
						|
 | 
						|
Style/RedundantFetchBlock:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/RedundantFileExtensionInRequire:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/RedundantRegexpCharacterClass:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/RedundantRegexpEscape:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/RedundantReturn:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/RedundantBegin:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/RegexpLiteral:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/RescueStandardError:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/SignalException:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/SlicingWithRange:
 | 
						|
  Enabled: true
 | 
						|
 | 
						|
Style/SymbolArray:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
Style/TrailingCommaInArrayLiteral:
 | 
						|
  EnforcedStyleForMultiline: 'comma'
 | 
						|
 | 
						|
Style/TrailingCommaInHashLiteral:
 | 
						|
  EnforcedStyleForMultiline: 'comma'
 | 
						|
 | 
						|
Style/UnpackFirst:
 | 
						|
  Enabled: false
 | 
						|
 | 
						|
RSpec/ScatteredSetup:
 | 
						|
  Enabled: false
 | 
						|
RSpec/ImplicitExpect:
 | 
						|
  Enabled: false
 | 
						|
RSpec/NamedSubject:
 | 
						|
  Enabled: false
 | 
						|
RSpec/DescribeClass:
 | 
						|
  Enabled: false
 | 
						|
RSpec/LetSetup:
 | 
						|
  Enabled: false
 |