# This is the configuration used to check the rubocop source code. inherit_from: .rubocop_todo.yml require: - rubocop-rspec - rubocop-rake AllCops: # dor-services-app is stuck at ruby 2 until we get off Fedora3 TargetRubyVersion: 2.7 # ----- Layout ------ Layout/BeginEndAlignment: # (new in 0.91) Enabled: true Layout/EmptyLinesAroundAttributeAccessor: Enabled: true Layout/LineLength: Exclude: - lib/cocina/models/* Layout/SpaceAroundMethodCallOperator: Enabled: true # ----- Lint ------ Lint/BinaryOperatorWithIdenticalOperands: Enabled: true Lint/ConstantDefinitionInBlock: # (new in 0.91) Enabled: true Lint/DeprecatedOpenSSLConstant: Enabled: true Lint/DuplicateElsifCondition: Enabled: true Lint/DuplicateRequire: # (new in 0.90) Enabled: true Lint/DuplicateRescueException: Enabled: true Lint/EmptyConditionalBody: Enabled: true Lint/EmptyFile: # (new in 0.90) Enabled: true Lint/FloatComparison: Enabled: true Lint/HashCompareByIdentity: # (new in 0.93) Enabled: true Lint/IdentityComparison: # (new in 0.91) Enabled: true Lint/MissingSuper: Enabled: true Lint/MixedRegexpCaptureTypes: Enabled: true Lint/OutOfRangeRegexpRef: Enabled: true Lint/RaiseException: Enabled: true Lint/RedundantSafeNavigation: # (new in 0.93) Enabled: true Lint/SelfAssignment: Enabled: true Lint/StructNewOverride: Enabled: true Lint/TopLevelReturnWithArgument: Enabled: true Lint/TrailingCommaInAttributeDeclaration: # (new in 0.90) Enabled: true Lint/UnreachableLoop: Enabled: true Lint/UselessMethodDefinition: # (new in 0.90) Enabled: true Lint/UselessTimes: # (new in 0.91) Enabled: true # ----- Metrics ------ Metrics/BlockLength: Exclude: - cocina-models.gemspec - spec/cocina/**/* - lib/cocina/rspec/matchers.rb - 'spec/support/mods_mapping_spec_helper.rb' # Offense count: 16 # Configuration parameters: CountComments, CountAsOne. Metrics/ClassLength: Max: 100 Exclude: - 'lib/cocina/rspec/factories.rb' Metrics/MethodLength: Max: 14 Exclude: - 'spec/cocina/models/file_access_spec.rb' - 'spec/cocina/models/dro_access_spec.rb' - 'lib/cocina/rspec/factories.rb' - 'lib/cocina/models/mapping/to_mods/*' - 'lib/cocina/models/mapping/from_mods/*' - 'lib/cocina/models/mapping/normalizers/mods/origin_info_normalizer.rb' - 'lib/cocina/models/mapping/normalizers/mods/subject_normalizer.rb' - 'lib/cocina/models/mapping/normalizers/mods_normalizer.rb' # Offense count: 37 # Configuration parameters: IgnoredMethods. Metrics/PerceivedComplexity: # Max: 20 Exclude: - 'lib/cocina/models/mapping/from_mods/*' - 'lib/cocina/models/mapping/to_mods/*' - 'lib/cocina/models/mapping/normalizers/**/*' # ----- RSpec ------ RSpec/BeEq: # new in 2.9.0 Enabled: true RSpec/BeNil: # new in 2.9.0 Enabled: true RSpec/MultipleExpectations: Enabled: false RSpec/StubbedMock: # (new in 1.44) Enabled: true RSpec/MultipleMemoizedHelpers: Enabled: false # ----- Style ------ Style/Documentation: Exclude: - lib/cocina/models/* Style/AccessorGrouping: Enabled: true Style/ArrayCoercion: Enabled: true Style/BisectedAttrAccessor: Enabled: true Style/CaseLikeIf: Enabled: true Style/ClassEqualityComparison: # (new in 0.93) Enabled: true Style/CombinableLoops: # (new in 0.90) Enabled: true Style/ExplicitBlockArgument: Enabled: true Style/ExponentialNotation: Enabled: true Style/GlobalStdStream: Enabled: true Style/HashAsLastArrayItem: Enabled: true Style/HashEachMethods: Enabled: true Style/HashLikeCase: Enabled: true Style/HashTransformKeys: Enabled: true Style/HashTransformValues: Enabled: true Style/KeywordParametersOrder: # (new in 0.90) Enabled: true Style/OptionalBooleanParameter: Enabled: false Style/RedundantAssignment: Enabled: true Style/RedundantFetchBlock: Enabled: true Style/RedundantFileExtensionInRequire: Enabled: true Style/RedundantRegexpCharacterClass: Enabled: true Style/RedundantRegexpEscape: Enabled: true Style/RedundantSelfAssignment: # (new in 0.90) Enabled: true Style/SingleArgumentDig: Enabled: true Style/SlicingWithRange: Enabled: true Style/SoleNestedConditional: # (new in 0.89) Enabled: true Style/StringConcatenation: Enabled: true Gemspec/DateAssignment: # new in 1.10 Enabled: true Gemspec/RequireMFA: # new in 1.23 Enabled: true Layout/LineEndStringConcatenationIndentation: # new in 1.18 Enabled: true Layout/SpaceBeforeBrackets: # new in 1.7 Enabled: true Lint/AmbiguousAssignment: # new in 1.7 Enabled: true Lint/AmbiguousOperatorPrecedence: # new in 1.21 Enabled: true Lint/AmbiguousRange: # new in 1.19 Enabled: true Lint/DeprecatedConstants: # new in 1.8 Enabled: true Lint/DuplicateBranch: # new in 1.3 Enabled: true Lint/DuplicateRegexpCharacterClassElement: # new in 1.1 Enabled: true Lint/EmptyBlock: # new in 1.1 Enabled: true Lint/EmptyClass: # new in 1.3 Enabled: true Lint/EmptyInPattern: # new in 1.16 Enabled: true Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21 Enabled: true Lint/LambdaWithoutLiteralBlock: # new in 1.8 Enabled: true Lint/NoReturnInBeginEndBlocks: # new in 1.2 Enabled: true Lint/NumberedParameterAssignment: # new in 1.9 Enabled: true Lint/OrAssignmentToConstant: # new in 1.9 Enabled: true Lint/RedundantDirGlobSort: # new in 1.8 Enabled: true Lint/RequireRelativeSelfPath: # new in 1.22 Enabled: true Lint/SymbolConversion: # new in 1.9 Enabled: true Lint/ToEnumArguments: # new in 1.1 Enabled: true Lint/TripleQuotes: # new in 1.9 Enabled: true Lint/UnexpectedBlockArity: # new in 1.5 Enabled: true Lint/UnmodifiedReduceAccumulator: # new in 1.1 Enabled: true Lint/UselessRuby2Keywords: # new in 1.23 Enabled: true Naming/BlockForwarding: # new in 1.24 Enabled: true Security/IoMethods: # new in 1.22 Enabled: true Style/ArgumentsForwarding: # new in 1.1 Enabled: true Style/CollectionCompact: # new in 1.2 Enabled: true Style/DocumentDynamicEvalDefinition: # new in 1.1 Enabled: true Style/EndlessMethod: # new in 1.8 Enabled: true Style/FileRead: # new in 1.24 Enabled: true Style/FileWrite: # new in 1.24 Enabled: true Style/HashConversion: # new in 1.10 Enabled: true Style/HashExcept: # new in 1.7 Enabled: true Style/IfWithBooleanLiteralBranches: # new in 1.9 Enabled: true Style/InPatternThen: # new in 1.16 Enabled: true Style/MapToHash: # new in 1.24 Enabled: true Style/MultilineInPatternThen: # new in 1.16 Enabled: true Style/NegatedIfElseCondition: # new in 1.2 Enabled: true Style/NilLambda: # new in 1.3 Enabled: true Style/NumberedParameters: # new in 1.22 Enabled: true Style/NumberedParametersLimit: # new in 1.22 Enabled: true Style/OpenStructUse: # new in 1.23 Enabled: true Style/QuotedSymbols: # new in 1.16 Enabled: true Style/RedundantArgument: # new in 1.4 Enabled: true Style/RedundantSelfAssignmentBranch: # new in 1.19 Enabled: true Style/SelectByRegexp: # new in 1.22 Enabled: true Style/StringChars: # new in 1.12 Enabled: true Style/SwapValues: # new in 1.1 Enabled: true RSpec/ExcessiveDocstringSpacing: # new in 2.5 Enabled: true RSpec/IdenticalEqualityAssertion: # new in 2.4 Enabled: true RSpec/SubjectDeclaration: # new in 2.5 Enabled: true RSpec/FactoryBot/SyntaxMethods: # new in 2.7 Enabled: true RSpec/Rails/AvoidSetupHook: # new in 2.4 Enabled: true Style/NestedFileDirname: # new in 1.26 Enabled: true Lint/RefinementImportMethods: # new in 1.27 Enabled: true Security/CompoundHash: # new in 1.28 Enabled: true Style/FetchEnvVar: # new in 1.28 Enabled: true Style/ObjectThen: # new in 1.28 Enabled: true Style/RedundantInitialize: # new in 1.27 Enabled: true RSpec/VerifiedDoubleReference: # new in 2.10.0 Enabled: true