From 1cc22482228ee9c2e9c1283a36a93e9c6b5d5a8e Mon Sep 17 00:00:00 2001 From: Thomas Burkhalter Date: Tue, 11 Jun 2024 00:54:33 +0200 Subject: [PATCH] WIP --- .github/actions/lint.yaml | 74 ++-- .github/actions/tests.yaml | 50 +-- .rubocop.yml | 860 +++++++++++++++++++++++++++++++++++++ 3 files changed, 907 insertions(+), 77 deletions(-) diff --git a/.github/actions/lint.yaml b/.github/actions/lint.yaml index 2e39053..a29b4af 100644 --- a/.github/actions/lint.yaml +++ b/.github/actions/lint.yaml @@ -3,52 +3,40 @@ name: 'Reusable: Code Style Review' on: workflow_call: +permissions: + contents: read + pull-requests: write + jobs: lint: runs-on: 'ubuntu-latest' - steps: - - name: 'Checkout' - uses: actions/checkout@v2 + # services: + # postgres: + # image: 'postgis/postgis:14-3.3-alpine' + # env: + # POSTGRESQL_PASSWORD: 'postgres' + # ports: ['5432:5432'] + # options: >- + # --health-cmd pg_isready + # --health-interval 10s + # --health-timeout 10s + # --health-retries 10 + # memcached: + # image: 'memcached:alpine' + # ports: ['11211:11211'] + + env: + BUNDLE_PATH: 'vendor/bundle' + REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }} - - name: 'Set up Ruby' - uses: actions/setup-ruby@v1 + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + - run: bundle install --jobs 4 --retry 3 + - uses: reviewdog/action-rubocop@v2.12.0 with: - ruby-version: '2.7' - - - name: 'Set up Reviewdog' - env: - REVIEWDOG_INSTALLER: 'https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh' - run: | - mkdir -p $HOME/bin - curl -sfL ${REVIEWDOG_INSTALLER} | sh -s -- -b $HOME/bin - - - name: 'Set up Rubocop' - run: 'gem install rubocop rubocop-minitest rubocop-performance rubocop-rails' - - - name: 'Run Rubocop' - env: - REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - rubocop | - $HOME/bin/reviewdog \ - -f=rubocop \ - -name="Rubocop" \ - -reporter=github-pr-review \ - -level=error \ - -diff="git diff $DIFF_BRANCH" - - - name: 'Set up Haml-lint' - run: 'gem install haml-lint' - - - name: 'Run Haml-lint' - env: - REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - haml-lint | - $HOME/bin/reviewdog \ - -efm="%f:%l %m" \ - -name="Haml-lint" \ - -reporter=github-pr-review \ - -level=error \ - -diff="git diff $DIFF_BRANCH" + reporter: github-pr-review + level: error + reviewdog_flags: '-diff="git diff $DIFF_BRANCH"' + rubocop_extensions: rubocop-rails rubocop-performance rubocop-rspec rubocop-i18n rubocop-rake rubocop-faker \ No newline at end of file diff --git a/.github/actions/tests.yaml b/.github/actions/tests.yaml index 6e3c2a3..bd6a02e 100644 --- a/.github/actions/tests.yaml +++ b/.github/actions/tests.yaml @@ -8,15 +8,11 @@ jobs: test: runs-on: 'ubuntu-latest' - strategy: - matrix: - ruby: ['2.7'] # TODO: Reenable 3.0 when it's compatible - services: postgres: - image: 'postgres:11' + image: 'postgis/postgis:14-3.3-alpine' env: - POSTGRES_PASSWORD: 'postgres' + POSTGRESQL_PASSWORD: 'postgres' ports: ['5432:5432'] options: >- --health-cmd pg_isready @@ -24,40 +20,26 @@ jobs: --health-timeout 10s --health-retries 10 memcached: - image: 'memcached' + image: 'memcached:alpine' ports: ['11211:11211'] - steps: - - name: 'Checkout' - uses: actions/checkout@v2 + env: + BUNDLE_PATH: 'vendor/bundle' + RAILS_TEST_DB_NAME: 'postgres' + RAILS_TEST_DB_USERNAME: 'postgres' + RAILS_TEST_DB_PASSWORD: 'postgres' + RAILS_ENV: 'test' - - name: 'Set up Ruby ${{ matrix.ruby }}' - uses: actions/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - - name: Install required package - run: | - sudo apt-get install libpq-dev - - name: Cache gems - id: cache - uses: actions/cache@v2 + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 with: - path: vendor/bundle - key: ruby-${{ matrix.ruby }}-gem-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ruby-${{ matrix.ruby }}-gem- - - - name: 'Build and run tests' - env: - RAILS_TEST_DB_NAME: 'postgres' - RAILS_TEST_DB_USERNAME: 'postgres' - RAILS_TEST_DB_PASSWORD: 'postgres' - RAILS_ENV: 'test' + bundler-cache: true + - name: 'Install required libraries' + run: sudo apt-get install libpq-dev + - name: 'Run tests' run: | - gem install bundler --version '~> 2' - bundle config path vendor/bundle - bundle install --jobs 4 --retry 3 bundle exec rails db:create bundle exec rails db:migrate bundle exec rails test diff --git a/.rubocop.yml b/.rubocop.yml index f45c0e9..854be31 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,3 +8,863 @@ AllCops: Exclude: - 'db/migrate/*.rb' - 'db/schema.rb' + - 'vendor/bundle/**/*' + +# Gemspec/DeprecatedAttributeAssignment: # new in 1.30 +# Enabled: true +# Gemspec/DevelopmentDependencies: # new in 1.44 +# Enabled: true +# Gemspec/RequireMFA: # new in 1.23 +# Enabled: true +# Layout/LineContinuationLeadingSpace: # new in 1.31 +# Enabled: true +# Layout/LineContinuationSpacing: # new in 1.31 +# 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/ConstantOverwrittenInRescue: # new in 1.31 +# Enabled: true +# Lint/DeprecatedConstants: # new in 1.8 +# Enabled: true +# Lint/DuplicateBranch: # new in 1.3 +# Enabled: true +# Lint/DuplicateMagicComment: # new in 1.37 +# Enabled: true +# Lint/DuplicateMatchPattern: # new in 1.50 +# 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/ItWithoutArgumentsInBlock: # new in 1.59 +# Enabled: true +# Lint/LambdaWithoutLiteralBlock: # new in 1.8 +# Enabled: true +# Lint/LiteralAssignmentInCondition: # new in 1.58 +# Enabled: true +# Lint/MixedCaseRange: # new in 1.53 +# Enabled: true +# Lint/NoReturnInBeginEndBlocks: # new in 1.2 +# Enabled: true +# Lint/NonAtomicFileOperation: # new in 1.31 +# 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/RedundantRegexpQuantifiers: # new in 1.53 +# Enabled: true +# Lint/RefinementImportMethods: # new in 1.27 +# Enabled: true +# Lint/RequireRangeParentheses: # new in 1.32 +# 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/UselessRescue: # new in 1.43 +# Enabled: true +# Lint/UselessRuby2Keywords: # new in 1.23 +# Enabled: true +# Metrics/CollectionLiteralLength: # new in 1.47 +# Enabled: true +# Naming/BlockForwarding: # new in 1.24 +# Enabled: true +# Security/CompoundHash: # new in 1.28 +# Enabled: true +# Security/IoMethods: # new in 1.22 +# Enabled: true +# Style/ArgumentsForwarding: # new in 1.1 +# Enabled: true +# Style/ArrayIntersect: # new in 1.40 +# Enabled: true +# Style/CollectionCompact: # new in 1.2 +# Enabled: true +# Style/ComparableClamp: # new in 1.44 +# Enabled: true +# Style/ConcatArrayLiterals: # new in 1.41 +# Enabled: true +# Style/DataInheritance: # new in 1.49 +# Enabled: true +# Style/DirEmpty: # new in 1.48 +# Enabled: true +# Style/DocumentDynamicEvalDefinition: # new in 1.1 +# Enabled: true +# Style/EmptyHeredoc: # new in 1.32 +# Enabled: true +# Style/EndlessMethod: # new in 1.8 +# Enabled: true +# Style/EnvHome: # new in 1.29 +# Enabled: true +# Style/ExactRegexpMatch: # new in 1.51 +# Enabled: true +# Style/FetchEnvVar: # new in 1.28 +# Enabled: true +# Style/FileEmpty: # new in 1.48 +# 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/MagicCommentFormat: # new in 1.35 +# Enabled: true +# Style/MapCompactWithConditionalBlock: # new in 1.30 +# Enabled: true +# Style/MapIntoArray: # new in 1.63 +# Enabled: true +# Style/MapToHash: # new in 1.24 +# Enabled: true +# Style/MapToSet: # new in 1.42 +# Enabled: true +# Style/MinMaxComparison: # new in 1.42 +# Enabled: true +# Style/MultilineInPatternThen: # new in 1.16 +# Enabled: true +# Style/NegatedIfElseCondition: # new in 1.2 +# Enabled: true +# Style/NestedFileDirname: # new in 1.26 +# 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/ObjectThen: # new in 1.28 +# Enabled: true +# Style/OpenStructUse: # new in 1.23 +# Enabled: true +# Style/OperatorMethodCall: # new in 1.37 +# Enabled: true +# Style/QuotedSymbols: # new in 1.16 +# Enabled: true +# Style/RedundantArgument: # new in 1.4 +# Enabled: true +# Style/RedundantArrayConstructor: # new in 1.52 +# Enabled: true +# Style/RedundantConstantBase: # new in 1.40 +# Enabled: true +# Style/RedundantCurrentDirectoryInPath: # new in 1.53 +# Enabled: true +# Style/RedundantDoubleSplatHashBraces: # new in 1.41 +# Enabled: true +# Style/RedundantEach: # new in 1.38 +# Enabled: true +# Style/RedundantFilterChain: # new in 1.52 +# Enabled: true +# Style/RedundantHeredocDelimiterQuotes: # new in 1.45 +# Enabled: true +# Style/RedundantInitialize: # new in 1.27 +# Enabled: true +# Style/RedundantLineContinuation: # new in 1.49 +# Enabled: true +# Style/RedundantRegexpArgument: # new in 1.53 +# Enabled: true +# Style/RedundantRegexpConstructor: # new in 1.52 +# Enabled: true +# Style/RedundantSelfAssignmentBranch: # new in 1.19 +# Enabled: true +# Style/RedundantStringEscape: # new in 1.37 +# Enabled: true +# Style/ReturnNilInPredicateMethodDefinition: # new in 1.53 +# Enabled: true +# Style/SelectByRegexp: # new in 1.22 +# Enabled: true +# Style/SendWithLiteralMethodName: # new in 1.64 +# Enabled: true +# Style/SingleLineDoEndBlock: # new in 1.57 +# Enabled: true +# Style/StringChars: # new in 1.12 +# Enabled: true +# Style/SuperArguments: # new in 1.64 +# Enabled: true +# Style/SuperWithArgsParentheses: # new in 1.58 +# Enabled: true +# Style/SwapValues: # new in 1.1 +# Enabled: true +# Style/YAMLFileRead: # new in 1.53 +# Enabled: true +# Rails/ActionControllerFlashBeforeRender: # new in 2.16 +# Enabled: true +# Rails/ActionControllerTestCase: # new in 2.14 +# Enabled: true +# Rails/ActionOrder: # new in 2.17 +# Enabled: true +# Rails/ActiveRecordCallbacksOrder: # new in 2.7 +# Enabled: true +# Rails/ActiveSupportOnLoad: # new in 2.16 +# Enabled: true +# Rails/AddColumnIndex: # new in 2.11 +# Enabled: true +# Rails/AfterCommitOverride: # new in 2.8 +# Enabled: true +# Rails/AttributeDefaultBlockValue: # new in 2.9 +# Enabled: true +# Rails/CompactBlank: # new in 2.13 +# Enabled: true +# Rails/DangerousColumnNames: # new in 2.21 +# Enabled: true +# Rails/DeprecatedActiveModelErrorsMethods: # new in 2.14 +# Enabled: true +# Rails/DotSeparatedKeys: # new in 2.15 +# Enabled: true +# Rails/DuplicateAssociation: # new in 2.14 +# Enabled: true +# Rails/DuplicateScope: # new in 2.14 +# Enabled: true +# Rails/DurationArithmetic: # new in 2.13 +# Enabled: true +# Rails/EagerEvaluationLogMessage: # new in 2.11 +# Enabled: true +# Rails/EnvLocal: # new in 2.22 +# Enabled: true +# Rails/ExpandedDateRange: # new in 2.11 +# Enabled: true +# Rails/FindById: # new in 2.7 +# Enabled: true +# Rails/FreezeTime: # new in 2.16 +# Enabled: true +# Rails/I18nLazyLookup: # new in 2.14 +# Enabled: true +# Rails/I18nLocaleAssignment: # new in 2.11 +# Enabled: true +# Rails/I18nLocaleTexts: # new in 2.14 +# Enabled: true +# Rails/IgnoredColumnsAssignment: # new in 2.17 +# Enabled: true +# Rails/Inquiry: # new in 2.7 +# Enabled: true +# Rails/MailerName: # new in 2.7 +# Enabled: true +# Rails/MatchRoute: # new in 2.7 +# Enabled: true +# Rails/MigrationClassName: # new in 2.14 +# Enabled: true +# Rails/NegateInclude: # new in 2.7 +# Enabled: true +# Rails/Pluck: # new in 2.7 +# Enabled: true +# Rails/PluckInWhere: # new in 2.7 +# Enabled: true +# Rails/RedundantActiveRecordAllMethod: # new in 2.21 +# Enabled: true +# Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13 +# Enabled: true +# Rails/RedundantTravelBack: # new in 2.12 +# Enabled: true +# Rails/RenderInline: # new in 2.7 +# Enabled: true +# Rails/RenderPlainText: # new in 2.7 +# Enabled: true +# Rails/ResponseParsedBody: # new in 2.18 +# Enabled: true +# Rails/RootJoinChain: # new in 2.13 +# Enabled: true +# Rails/RootPathnameMethods: # new in 2.16 +# Enabled: true +# Rails/RootPublicPath: # new in 2.15 +# Enabled: true +# Rails/SelectMap: # new in 2.21 +# Enabled: true +# Rails/ShortI18n: # new in 2.7 +# Enabled: true +# Rails/SquishedSQLHeredocs: # new in 2.8 +# Enabled: true +# Rails/StripHeredoc: # new in 2.15 +# Enabled: true +# Rails/ThreeStateBooleanColumn: # new in 2.19 +# Enabled: true +# Rails/TimeZoneAssignment: # new in 2.10 +# Enabled: true +# Rails/ToFormattedS: # new in 2.15 +# Enabled: true +# Rails/ToSWithArgument: # new in 2.16 +# Enabled: true +# Rails/TopLevelHashWithIndifferentAccess: # new in 2.16 +# Enabled: true +# Rails/TransactionExitStatement: # new in 2.14 +# Enabled: true +# Rails/UnusedRenderContent: # new in 2.21 +# Enabled: true +# Rails/WhereEquals: # new in 2.9 +# Enabled: true +# Rails/WhereExists: # new in 2.7 +# Enabled: true +# Rails/WhereMissing: # new in 2.16 +# Enabled: true +# Rails/WhereNot: # new in 2.8 +# Enabled: true +# Rails/WhereNotWithMultipleConditions: # new in 2.17 +# Enabled: true +# Rails/WhereRange: # new in 2.25 +# Enabled: true +# Capybara/ClickLinkOrButtonStyle: # new in 2.19 +# Enabled: true +# Capybara/MatchStyle: # new in 2.17 +# Enabled: true +# Capybara/NegationMatcher: # new in 2.14 +# Enabled: true +# Capybara/RedundantWithinFind: # new in 2.20 +# Enabled: true +# Capybara/SpecificActions: # new in 2.14 +# Enabled: true +# Capybara/SpecificFinders: # new in 2.13 +# Enabled: true +# Capybara/SpecificMatcher: # new in 2.12 +# Enabled: true +# Capybara/RSpec/HaveSelector: # new in 2.19 +# Enabled: true +# Capybara/RSpec/PredicateMatcher: # new in 2.19 +# Enabled: true +# FactoryBot/AssociationStyle: # new in 2.23 +# Enabled: true +# FactoryBot/ConsistentParenthesesStyle: # new in 2.14 +# Enabled: true +# FactoryBot/ExcessiveCreateList: # new in 2.25 +# Enabled: true +# FactoryBot/FactoryAssociationWithStrategy: # new in 2.23 +# Enabled: true +# FactoryBot/FactoryNameStyle: # new in 2.16 +# Enabled: true +# FactoryBot/IdSequence: # new in 2.24 +# Enabled: true +# FactoryBot/RedundantFactoryOption: # new in 2.23 +# Enabled: true +# FactoryBot/SyntaxMethods: # new in 2.7 +# Enabled: true +# RSpecRails/AvoidSetupHook: # new in 2.4 +# Enabled: true +# RSpecRails/HaveHttpStatus: # new in 2.12 +# Enabled: true +# RSpecRails/InferredSpecType: # new in 2.14 +# Enabled: true +# RSpecRails/MinitestAssertions: # new in 2.17 +# Enabled: true +# RSpecRails/NegationBeValid: # new in 2.23 +# Enabled: true +# RSpecRails/TravelAround: # new in 2.19 +# Enabled: true +# RSpec/BeEmpty: # new in 2.20 +# Enabled: true +# RSpec/BeEq: # new in 2.9.0 +# Enabled: true +# RSpec/BeNil: # new in 2.9.0 +# Enabled: true +# RSpec/ChangeByZero: # new in 2.11 +# Enabled: true +# RSpec/ContainExactly: # new in 2.19 +# Enabled: true +# RSpec/DuplicatedMetadata: # new in 2.16 +# Enabled: true +# RSpec/EmptyMetadata: # new in 2.24 +# Enabled: true +# RSpec/EmptyOutput: # new in 2.29 +# Enabled: true +# RSpec/Eq: # new in 2.24 +# Enabled: true +# RSpec/ExcessiveDocstringSpacing: # new in 2.5 +# Enabled: true +# RSpec/ExpectInLet: # new in 2.30 +# Enabled: true +# RSpec/IdenticalEqualityAssertion: # new in 2.4 +# Enabled: true +# RSpec/IndexedLet: # new in 2.20 +# Enabled: true +# RSpec/IsExpectedSpecify: # new in 2.27 +# Enabled: true +# RSpec/MatchArray: # new in 2.19 +# Enabled: true +# RSpec/MetadataStyle: # new in 2.24 +# Enabled: true +# RSpec/NoExpectationExample: # new in 2.13 +# Enabled: true +# RSpec/PendingWithoutReason: # new in 2.16 +# Enabled: true +# RSpec/ReceiveMessages: # new in 2.23 +# Enabled: true +# RSpec/RedundantAround: # new in 2.19 +# Enabled: true +# RSpec/RedundantPredicateMatcher: # new in 2.26 +# Enabled: true +# RSpec/RemoveConst: # new in 2.26 +# Enabled: true +# RSpec/RepeatedSubjectCall: # new in 2.27 +# Enabled: true +# RSpec/SkipBlockInsideExample: # new in 2.19 +# Enabled: true +# RSpec/SortMetadata: # new in 2.14 +# Enabled: true +# RSpec/SpecFilePathFormat: # new in 2.24 +# Enabled: true +# RSpec/SpecFilePathSuffix: # new in 2.24 +# Enabled: true +# RSpec/SubjectDeclaration: # new in 2.5 +# Enabled: true +# RSpec/UndescriptiveLiteralsDescription: # new in 2.29 +# Enabled: true +# RSpec/VerifiedDoubleReference: # new in 2.10.0 +# Enabled: true +# For more information: https://docs.rubocop.org/rubocop/versioning.html +# The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file. +# +# Please also note that you can opt-in to new cops by default by adding this to your config: +# AllCops: +# NewCops: enable +# Gemspec/DeprecatedAttributeAssignment: # new in 1.30 +# Enabled: true +# Gemspec/DevelopmentDependencies: # new in 1.44 +# Enabled: true +# Gemspec/RequireMFA: # new in 1.23 +# Enabled: true +# Layout/LineContinuationLeadingSpace: # new in 1.31 +# Enabled: true +# Layout/LineContinuationSpacing: # new in 1.31 +# 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/ConstantOverwrittenInRescue: # new in 1.31 +# Enabled: true +# Lint/DeprecatedConstants: # new in 1.8 +# Enabled: true +# Lint/DuplicateBranch: # new in 1.3 +# Enabled: true +# Lint/DuplicateMagicComment: # new in 1.37 +# Enabled: true +# Lint/DuplicateMatchPattern: # new in 1.50 +# 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/ItWithoutArgumentsInBlock: # new in 1.59 +# Enabled: true +# Lint/LambdaWithoutLiteralBlock: # new in 1.8 +# Enabled: true +# Lint/LiteralAssignmentInCondition: # new in 1.58 +# Enabled: true +# Lint/MixedCaseRange: # new in 1.53 +# Enabled: true +# Lint/NoReturnInBeginEndBlocks: # new in 1.2 +# Enabled: true +# Lint/NonAtomicFileOperation: # new in 1.31 +# 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/RedundantRegexpQuantifiers: # new in 1.53 +# Enabled: true +# Lint/RefinementImportMethods: # new in 1.27 +# Enabled: true +# Lint/RequireRangeParentheses: # new in 1.32 +# 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/UselessRescue: # new in 1.43 +# Enabled: true +# Lint/UselessRuby2Keywords: # new in 1.23 +# Enabled: true +# Metrics/CollectionLiteralLength: # new in 1.47 +# Enabled: true +# Naming/BlockForwarding: # new in 1.24 +# Enabled: true +# Security/CompoundHash: # new in 1.28 +# Enabled: true +# Security/IoMethods: # new in 1.22 +# Enabled: true +# Style/ArgumentsForwarding: # new in 1.1 +# Enabled: true +# Style/ArrayIntersect: # new in 1.40 +# Enabled: true +# Style/CollectionCompact: # new in 1.2 +# Enabled: true +# Style/ComparableClamp: # new in 1.44 +# Enabled: true +# Style/ConcatArrayLiterals: # new in 1.41 +# Enabled: true +# Style/DataInheritance: # new in 1.49 +# Enabled: true +# Style/DirEmpty: # new in 1.48 +# Enabled: true +# Style/DocumentDynamicEvalDefinition: # new in 1.1 +# Enabled: true +# Style/EmptyHeredoc: # new in 1.32 +# Enabled: true +# Style/EndlessMethod: # new in 1.8 +# Enabled: true +# Style/EnvHome: # new in 1.29 +# Enabled: true +# Style/ExactRegexpMatch: # new in 1.51 +# Enabled: true +# Style/FetchEnvVar: # new in 1.28 +# Enabled: true +# Style/FileEmpty: # new in 1.48 +# 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/MagicCommentFormat: # new in 1.35 +# Enabled: true +# Style/MapCompactWithConditionalBlock: # new in 1.30 +# Enabled: true +# Style/MapIntoArray: # new in 1.63 +# Enabled: true +# Style/MapToHash: # new in 1.24 +# Enabled: true +# Style/MapToSet: # new in 1.42 +# Enabled: true +# Style/MinMaxComparison: # new in 1.42 +# Enabled: true +# Style/MultilineInPatternThen: # new in 1.16 +# Enabled: true +# Style/NegatedIfElseCondition: # new in 1.2 +# Enabled: true +# Style/NestedFileDirname: # new in 1.26 +# 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/ObjectThen: # new in 1.28 +# Enabled: true +# Style/OpenStructUse: # new in 1.23 +# Enabled: true +# Style/OperatorMethodCall: # new in 1.37 +# Enabled: true +# Style/QuotedSymbols: # new in 1.16 +# Enabled: true +# Style/RedundantArgument: # new in 1.4 +# Enabled: true +# Style/RedundantArrayConstructor: # new in 1.52 +# Enabled: true +# Style/RedundantConstantBase: # new in 1.40 +# Enabled: true +# Style/RedundantCurrentDirectoryInPath: # new in 1.53 +# Enabled: true +# Style/RedundantDoubleSplatHashBraces: # new in 1.41 +# Enabled: true +# Style/RedundantEach: # new in 1.38 +# Enabled: true +# Style/RedundantFilterChain: # new in 1.52 +# Enabled: true +# Style/RedundantHeredocDelimiterQuotes: # new in 1.45 +# Enabled: true +# Style/RedundantInitialize: # new in 1.27 +# Enabled: true +# Style/RedundantLineContinuation: # new in 1.49 +# Enabled: true +# Style/RedundantRegexpArgument: # new in 1.53 +# Enabled: true +# Style/RedundantRegexpConstructor: # new in 1.52 +# Enabled: true +# Style/RedundantSelfAssignmentBranch: # new in 1.19 +# Enabled: true +# Style/RedundantStringEscape: # new in 1.37 +# Enabled: true +# Style/ReturnNilInPredicateMethodDefinition: # new in 1.53 +# Enabled: true +# Style/SelectByRegexp: # new in 1.22 +# Enabled: true +# Style/SendWithLiteralMethodName: # new in 1.64 +# Enabled: true +# Style/SingleLineDoEndBlock: # new in 1.57 +# Enabled: true +# Style/StringChars: # new in 1.12 +# Enabled: true +# Style/SuperArguments: # new in 1.64 +# Enabled: true +# Style/SuperWithArgsParentheses: # new in 1.58 +# Enabled: true +# Style/SwapValues: # new in 1.1 +# Enabled: true +# Style/YAMLFileRead: # new in 1.53 +# Enabled: true +# Rails/ActionControllerFlashBeforeRender: # new in 2.16 +# Enabled: true +# Rails/ActionControllerTestCase: # new in 2.14 +# Enabled: true +# Rails/ActionOrder: # new in 2.17 +# Enabled: true +# Rails/ActiveRecordCallbacksOrder: # new in 2.7 +# Enabled: true +# Rails/ActiveSupportOnLoad: # new in 2.16 +# Enabled: true +# Rails/AddColumnIndex: # new in 2.11 +# Enabled: true +# Rails/AfterCommitOverride: # new in 2.8 +# Enabled: true +# Rails/AttributeDefaultBlockValue: # new in 2.9 +# Enabled: true +# Rails/CompactBlank: # new in 2.13 +# Enabled: true +# Rails/DangerousColumnNames: # new in 2.21 +# Enabled: true +# Rails/DeprecatedActiveModelErrorsMethods: # new in 2.14 +# Enabled: true +# Rails/DotSeparatedKeys: # new in 2.15 +# Enabled: true +# Rails/DuplicateAssociation: # new in 2.14 +# Enabled: true +# Rails/DuplicateScope: # new in 2.14 +# Enabled: true +# Rails/DurationArithmetic: # new in 2.13 +# Enabled: true +# Rails/EagerEvaluationLogMessage: # new in 2.11 +# Enabled: true +# Rails/EnvLocal: # new in 2.22 +# Enabled: true +# Rails/ExpandedDateRange: # new in 2.11 +# Enabled: true +# Rails/FindById: # new in 2.7 +# Enabled: true +# Rails/FreezeTime: # new in 2.16 +# Enabled: true +# Rails/I18nLazyLookup: # new in 2.14 +# Enabled: true +# Rails/I18nLocaleAssignment: # new in 2.11 +# Enabled: true +# Rails/I18nLocaleTexts: # new in 2.14 +# Enabled: true +# Rails/IgnoredColumnsAssignment: # new in 2.17 +# Enabled: true +# Rails/Inquiry: # new in 2.7 +# Enabled: true +# Rails/MailerName: # new in 2.7 +# Enabled: true +# Rails/MatchRoute: # new in 2.7 +# Enabled: true +# Rails/MigrationClassName: # new in 2.14 +# Enabled: true +# Rails/NegateInclude: # new in 2.7 +# Enabled: true +# Rails/Pluck: # new in 2.7 +# Enabled: true +# Rails/PluckInWhere: # new in 2.7 +# Enabled: true +# Rails/RedundantActiveRecordAllMethod: # new in 2.21 +# Enabled: true +# Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13 +# Enabled: true +# Rails/RedundantTravelBack: # new in 2.12 +# Enabled: true +# Rails/RenderInline: # new in 2.7 +# Enabled: true +# Rails/RenderPlainText: # new in 2.7 +# Enabled: true +# Rails/ResponseParsedBody: # new in 2.18 +# Enabled: true +# Rails/RootJoinChain: # new in 2.13 +# Enabled: true +# Rails/RootPathnameMethods: # new in 2.16 +# Enabled: true +# Rails/RootPublicPath: # new in 2.15 +# Enabled: true +# Rails/SelectMap: # new in 2.21 +# Enabled: true +# Rails/ShortI18n: # new in 2.7 +# Enabled: true +# Rails/SquishedSQLHeredocs: # new in 2.8 +# Enabled: true +# Rails/StripHeredoc: # new in 2.15 +# Enabled: true +# Rails/ThreeStateBooleanColumn: # new in 2.19 +# Enabled: true +# Rails/TimeZoneAssignment: # new in 2.10 +# Enabled: true +# Rails/ToFormattedS: # new in 2.15 +# Enabled: true +# Rails/ToSWithArgument: # new in 2.16 +# Enabled: true +# Rails/TopLevelHashWithIndifferentAccess: # new in 2.16 +# Enabled: true +# Rails/TransactionExitStatement: # new in 2.14 +# Enabled: true +# Rails/UnusedRenderContent: # new in 2.21 +# Enabled: true +# Rails/WhereEquals: # new in 2.9 +# Enabled: true +# Rails/WhereExists: # new in 2.7 +# Enabled: true +# Rails/WhereMissing: # new in 2.16 +# Enabled: true +# Rails/WhereNot: # new in 2.8 +# Enabled: true +# Rails/WhereNotWithMultipleConditions: # new in 2.17 +# Enabled: true +# Rails/WhereRange: # new in 2.25 +# Enabled: true +# Capybara/ClickLinkOrButtonStyle: # new in 2.19 +# Enabled: true +# Capybara/MatchStyle: # new in 2.17 +# Enabled: true +# Capybara/NegationMatcher: # new in 2.14 +# Enabled: true +# Capybara/RedundantWithinFind: # new in 2.20 +# Enabled: true +# Capybara/SpecificActions: # new in 2.14 +# Enabled: true +# Capybara/SpecificFinders: # new in 2.13 +# Enabled: true +# Capybara/SpecificMatcher: # new in 2.12 +# Enabled: true +# Capybara/RSpec/HaveSelector: # new in 2.19 +# Enabled: true +# Capybara/RSpec/PredicateMatcher: # new in 2.19 +# Enabled: true +# FactoryBot/AssociationStyle: # new in 2.23 +# Enabled: true +# FactoryBot/ConsistentParenthesesStyle: # new in 2.14 +# Enabled: true +# FactoryBot/ExcessiveCreateList: # new in 2.25 +# Enabled: true +# FactoryBot/FactoryAssociationWithStrategy: # new in 2.23 +# Enabled: true +# FactoryBot/FactoryNameStyle: # new in 2.16 +# Enabled: true +# FactoryBot/IdSequence: # new in 2.24 +# Enabled: true +# FactoryBot/RedundantFactoryOption: # new in 2.23 +# Enabled: true +# FactoryBot/SyntaxMethods: # new in 2.7 +# Enabled: true +# RSpecRails/AvoidSetupHook: # new in 2.4 +# Enabled: true +# RSpecRails/HaveHttpStatus: # new in 2.12 +# Enabled: true +# RSpecRails/InferredSpecType: # new in 2.14 +# Enabled: true +# RSpecRails/MinitestAssertions: # new in 2.17 +# Enabled: true +# RSpecRails/NegationBeValid: # new in 2.23 +# Enabled: true +# RSpecRails/TravelAround: # new in 2.19 +# Enabled: true +# RSpec/BeEmpty: # new in 2.20 +# Enabled: true +# RSpec/BeEq: # new in 2.9.0 +# Enabled: true +# RSpec/BeNil: # new in 2.9.0 +# Enabled: true +# RSpec/ChangeByZero: # new in 2.11 +# Enabled: true +# RSpec/ContainExactly: # new in 2.19 +# Enabled: true +# RSpec/DuplicatedMetadata: # new in 2.16 +# Enabled: true +# RSpec/EmptyMetadata: # new in 2.24 +# Enabled: true +# RSpec/EmptyOutput: # new in 2.29 +# Enabled: true +# RSpec/Eq: # new in 2.24 +# Enabled: true +# RSpec/ExcessiveDocstringSpacing: # new in 2.5 +# Enabled: true +# RSpec/ExpectInLet: # new in 2.30 +# Enabled: true +# RSpec/IdenticalEqualityAssertion: # new in 2.4 +# Enabled: true +# RSpec/IndexedLet: # new in 2.20 +# Enabled: true +# RSpec/IsExpectedSpecify: # new in 2.27 +# Enabled: true +# RSpec/MatchArray: # new in 2.19 +# Enabled: true +# RSpec/MetadataStyle: # new in 2.24 +# Enabled: true +# RSpec/NoExpectationExample: # new in 2.13 +# Enabled: true +# RSpec/PendingWithoutReason: # new in 2.16 +# Enabled: true +# RSpec/ReceiveMessages: # new in 2.23 +# Enabled: true +# RSpec/RedundantAround: # new in 2.19 +# Enabled: true +# RSpec/RedundantPredicateMatcher: # new in 2.26 +# Enabled: true +# RSpec/RemoveConst: # new in 2.26 +# Enabled: true +# RSpec/RepeatedSubjectCall: # new in 2.27 +# Enabled: true +# RSpec/SkipBlockInsideExample: # new in 2.19 +# Enabled: true +# RSpec/SortMetadata: # new in 2.14 +# Enabled: true +# RSpec/SpecFilePathFormat: # new in 2.24 +# Enabled: true +# RSpec/SpecFilePathSuffix: # new in 2.24 +# Enabled: true +# RSpec/SubjectDeclaration: # new in 2.5 +# Enabled: true +# RSpec/UndescriptiveLiteralsDescription: # new in 2.29 +# Enabled: true +# RSpec/VerifiedDoubleReference: # new in 2.10.0 +# Enabled: true