diff --git a/CHANGELOG.md b/CHANGELOG.md index 38925bb..03f67ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## Unreleased + +- Update Rubocop Rails to [v2.23.1](https://github.com/rubocop/rubocop-rails/releases/tag/v2.23.1) +- First time fully configured. This was done partly in consultation at [Test Double](https://testdouble.com/) and partly through [this fantastic RailsConf talk in 2023](https://www.youtube.com/watch?v=QVilOzkLdlI)! + ## [0.2.0] - Update Rubocop Rails to [v2.20.2](https://github.com/rubocop/rubocop-rails/releases/tag/v2.20.2) diff --git a/Gemfile.lock b/Gemfile.lock index 057743a..d000521 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,7 +3,7 @@ PATH specs: standard-rails (0.2.0) lint_roller (~> 1.0) - rubocop-rails (~> 2.20.2) + rubocop-rails (~> 2.23.1) GEM remote: https://rubygems.org/ @@ -48,15 +48,16 @@ GEM rubocop-ast (>= 1.28.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.29.0) + rubocop-ast (1.30.0) parser (>= 3.2.1.0) rubocop-performance (1.19.0) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.20.2) + rubocop-rails (2.23.1) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) + rubocop-ast (>= 1.30.0, < 2.0) ruby-progressbar (1.13.0) standard (1.31.0) language_server-protocol (~> 3.17.0.2) diff --git a/config/base.yml b/config/base.yml index 9db8cae..35043a9 100644 --- a/config/base.yml +++ b/config/base.yml @@ -28,950 +28,408 @@ AllCops: Lint/RedundantSafeNavigation: Enabled: false -Rails: - DocumentationBaseURL: https://docs.rubocop.org/rubocop-rails +Lint/SafeNavigationChain: + Enabled: true + AllowedMethods: + - present? + - blank? + - presence + - presence_in + - try + - try! + - in? Rails/ActionControllerFlashBeforeRender: Enabled: false - SafeAutoCorrect: false - VersionAdded: '2.16' Rails/ActionControllerTestCase: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#integration-testing' - Reference: 'https://api.rubyonrails.org/classes/ActionController/TestCase.html' - SafeAutoCorrect: false - VersionAdded: '2.14' - Include: - - '**/test/**/*.rb' Rails/ActionFilter: - Enabled: false - VersionAdded: '0.19' - EnforcedStyle: action - SupportedStyles: - - action - - filter - Include: - - app/controllers/**/*.rb - - app/mailers/**/*.rb + Enabled: true Rails/ActionOrder: Enabled: false - VersionAdded: '2.17' - ExpectedOrder: - - index - - show - - new - - edit - - create - - update - - destroy - Include: - - app/controllers/**/*.rb Rails/ActiveRecordAliases: - Enabled: false - VersionAdded: '0.53' - SafeAutoCorrect: false + Enabled: true Rails/ActiveRecordCallbacksOrder: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#callbacks-order' - VersionAdded: '2.7' - Include: - - app/models/**/*.rb + Enabled: true Rails/ActiveRecordOverride: Enabled: true - Severity: warning - VersionAdded: '0.67' - VersionChanged: '2.18' - Include: - - app/models/**/*.rb Rails/ActiveSupportAliases: Enabled: false - VersionAdded: '0.48' Rails/ActiveSupportOnLoad: - Enabled: false - Reference: - - 'https://api.rubyonrails.org/classes/ActiveSupport/LazyLoadHooks.html' - - 'https://guides.rubyonrails.org/engines.html#available-load-hooks' - SafeAutoCorrect: false - VersionAdded: '2.16' + Enabled: true Rails/AddColumnIndex: - Enabled: false - VersionAdded: '2.11' - Include: - - db/migrate/*.rb + Enabled: true Rails/AfterCommitOverride: - Enabled: false - VersionAdded: '2.8' + Enabled: true Rails/ApplicationController: Enabled: true - SafeAutoCorrect: false - VersionAdded: '2.4' - VersionChanged: '2.5' Rails/ApplicationJob: Enabled: true - SafeAutoCorrect: false - VersionAdded: '0.49' - VersionChanged: '2.5' Rails/ApplicationMailer: Enabled: true - SafeAutoCorrect: false - VersionAdded: '2.4' - VersionChanged: '2.5' Rails/ApplicationRecord: Enabled: true - SafeAutoCorrect: false - VersionAdded: '0.49' - VersionChanged: '2.5' - Exclude: - - db/migrate/*.rb Rails/ArelStar: - Enabled: false - SafeAutoCorrect: false - VersionAdded: '2.9' + Enabled: true Rails/AssertNot: Enabled: false - VersionAdded: '0.56' - Include: - - '**/test/**/*' Rails/AttributeDefaultBlockValue: - Enabled: false - VersionAdded: '2.9' - Include: - - 'app/models/**/*' + Enabled: true Rails/BelongsTo: Enabled: true - Reference: - - https://guides.rubyonrails.org/5_0_release_notes.html - - https://github.com/rails/rails/pull/18937 - VersionAdded: '0.62' Rails/Blank: Enabled: true - SafeAutoCorrect: false - VersionAdded: '0.48' - VersionChanged: '2.10' - # Convert usages of `nil? || empty?` to `blank?` - NilOrEmpty: true - # Convert usages of `!present?` to `blank?` - NotPresent: true - # Convert usages of `unless present?` to `if blank?` - UnlessPresent: true Rails/BulkChangeTable: - Enabled: false - Reference: - - https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-change_table - - https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/Table.html - VersionAdded: '0.57' - Database: null - SupportedDatabases: - - mysql - - postgresql - Include: - - db/migrate/*.rb + Enabled: true Rails/CompactBlank: - Enabled: false - Safe: false - VersionAdded: '2.13' + Enabled: true Rails/ContentTag: - Enabled: false - Reference: - - 'https://github.com/rubocop/rubocop-rails/issues/260' - - 'https://github.com/rails/rails/issues/25195' - - 'https://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-content_tag' - VersionAdded: '2.6' - VersionChanged: '2.12' - # This `Exclude` config prevents false positives for `tag` calls to `has_one: tag` and Puma configuration: - # https://puma.io/puma/Puma/DSL.html#tag-instance_method - # No helpers are used in normal models and configs. - Exclude: - - app/models/**/*.rb - - config/**/*.rb + Enabled: true Rails/CreateTableWithTimestamps: Enabled: true - VersionAdded: '0.52' - Include: - - db/migrate/*.rb - Exclude: - # Respect the `active_storage_variant_records` table of `*_create_active_storage_tables.active_storage.rb` - # auto-generated by `bin/rails active_storage:install` even if `created_at` is not specified. - - db/migrate/*_create_active_storage_tables.active_storage.rb + +Rails/DangerousColumnNames: + Enabled: true Rails/Date: Enabled: true - VersionAdded: '0.30' - VersionChanged: '2.11' - # The value `strict` disallows usage of `Date.today`, `Date.current`, - # `Date#to_time` etc. - # The value `flexible` allows usage of `Date.current`, `Date.yesterday`, etc - # (but not `Date.today`) which are overridden by ActiveSupport to handle current - # time zone. - EnforcedStyle: flexible - SupportedStyles: - - strict - - flexible - AllowToTime: true Rails/DefaultScope: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#avoid-default-scope' - VersionAdded: '2.7' Rails/Delegate: Enabled: false - VersionAdded: '0.21' - VersionChanged: '0.50' - # When set to true, using the target object as a prefix of the - # method name without using the `delegate` method will be a - # violation. When set to false, this case is legal. - EnforceForPrefixed: true Rails/DelegateAllowBlank: - Enabled: false - VersionAdded: '0.44' + Enabled: true Rails/DeprecatedActiveModelErrorsMethods: Enabled: false - Severity: warning - Safe: false - VersionAdded: '2.14' - VersionChanged: '2.18' Rails/DotSeparatedKeys: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#dot-separated-keys' - VersionAdded: '2.15' + Enabled: true Rails/DuplicateAssociation: - Enabled: false - Severity: warning - VersionAdded: '2.14' - VersionChanged: '2.18' + Enabled: true + Autocorrect: false Rails/DuplicateScope: - Enabled: false - Severity: warning - VersionAdded: '2.14' - VersionChanged: '2.18' + Enabled: true Rails/DurationArithmetic: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#duration-arithmetic' - VersionAdded: '2.13' + Enabled: true Rails/DynamicFindBy: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#find_by' - Safe: false - VersionAdded: '0.44' - VersionChanged: '2.10' - # The `Whitelist` has been deprecated, Please use `AllowedMethods` instead. - Whitelist: - - find_by_sql - - find_by_token_for - AllowedMethods: - - find_by_sql - - find_by_token_for - AllowedReceivers: - - Gem::Specification - - page # Prevents a warning for `page.find_by_id`. See: https://github.com/rubocop/rubocop-rails/issues/778 + Enabled: true Rails/EagerEvaluationLogMessage: - Enabled: false - Reference: 'https://guides.rubyonrails.org/debugging_rails_applications.html#impact-of-logs-on-performance' - VersionAdded: '2.11' + Enabled: true Rails/EnumHash: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#enums' - VersionAdded: '2.3' - Include: - - app/models/**/*.rb + Enabled: true Rails/EnumUniqueness: - Enabled: false - VersionAdded: '0.46' - Include: - - app/models/**/*.rb + Enabled: true + +Rails/EnvLocal: + Enabled: true Rails/EnvironmentComparison: - Enabled: false - VersionAdded: '0.52' + Enabled: true Rails/EnvironmentVariableAccess: Enabled: true - # TODO: Set to `pending` status in RuboCop Rails 2 series when migration doc will be written. - VersionAdded: '2.10' - VersionChanged: '2.11' - Include: - - app/**/*.rb - - lib/**/*.rb - Exclude: - - lib/**/*.rake - AllowReads: false - AllowWrites: false Rails/Exit: - Enabled: false - VersionAdded: '0.41' - Include: - - app/**/*.rb - - config/**/*.rb - - lib/**/*.rb - Exclude: - - lib/**/*.rake + Enabled: true Rails/ExpandedDateRange: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#date-time-range' - VersionAdded: '2.11' + Enabled: true Rails/FilePath: - Enabled: false - VersionAdded: '0.47' - VersionChanged: '2.4' - EnforcedStyle: slashes - SupportedStyles: - - slashes - - arguments + Enabled: true Rails/FindBy: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#find_by' - VersionAdded: '0.30' - VersionChanged: '2.11' - IgnoreWhereFirst: true - Include: - - app/models/**/*.rb + Enabled: true Rails/FindById: - Enabled: false - Favor the use of `find` over `where.take!`, `find_by!`, and `find_by_id!` when you - need to retrieve a single record by primary key when you expect it to be found. - StyleGuide: 'https://rails.rubystyle.guide/#find' - VersionAdded: '2.7' + Enabled: true Rails/FindEach: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#find-each' - Safe: false - VersionAdded: '0.30' - VersionChanged: '2.19' - Include: - - app/models/**/*.rb - AllowedMethods: - # Methods that don't work well with `find_each`. - - order - - limit - - select - - lock - AllowedPatterns: [] + Enabled: true Rails/FreezeTime: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#freeze-time' - VersionAdded: '2.16' - SafeAutoCorrect: false Rails/HasAndBelongsToMany: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#has-many-through' - VersionAdded: '0.12' - Include: - - app/models/**/*.rb + Enabled: true Rails/HasManyOrHasOneDependent: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#has_many-has_one-dependent-option' - VersionAdded: '0.50' - Include: - - app/models/**/*.rb + Enabled: true Rails/HelperInstanceVariable: - Enabled: false - VersionAdded: '2.0' - Include: - - app/helpers/**/*.rb + Enabled: true Rails/HttpPositionalArguments: - Enabled: false - VersionAdded: '0.44' - Include: - - 'spec/**/*' - - 'test/**/*' + Enabled: true Rails/HttpStatus: Enabled: false - VersionAdded: '0.54' - VersionChanged: '2.11' - EnforcedStyle: symbolic - SupportedStyles: - - numeric - - symbolic Rails/I18nLazyLookup: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#lazy-lookup' - Reference: 'https://guides.rubyonrails.org/i18n.html#lazy-lookup' - VersionAdded: '2.14' - Include: - - 'app/controllers/**/*.rb' Rails/I18nLocaleAssignment: - Enabled: false - VersionAdded: '2.11' - Include: - - spec/**/*.rb - - test/**/*.rb + Enabled: true Rails/I18nLocaleTexts: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#locale-texts' - VersionAdded: '2.14' Rails/IgnoredColumnsAssignment: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#append-ignored-columns' - SafeAutoCorrect: false - VersionAdded: '2.17' + Enabled: true Rails/IgnoredSkipActionFilterOption: - Enabled: false - Reference: 'https://api.rubyonrails.org/classes/AbstractController/Callbacks/ClassMethods.html#method-i-_normalize_callback_options' - VersionAdded: '0.63' - Include: - - app/controllers/**/*.rb - - app/mailers/**/*.rb + Enabled: true Rails/IndexBy: Enabled: false - VersionAdded: '2.5' - VersionChanged: '2.8' Rails/IndexWith: Enabled: false - VersionAdded: '2.5' - VersionChanged: '2.8' Rails/Inquiry: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#inquiry' - VersionAdded: '2.7' Rails/InverseOf: - Enabled: false - Reference: - - https://guides.rubyonrails.org/association_basics.html#bi-directional-associations - - https://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#module-ActiveRecord::Associations::ClassMethods-label-Setting+Inverses - VersionAdded: '0.52' - IgnoreScopes: false - Include: - - app/models/**/*.rb + Enabled: true Rails/LexicallyScopedActionFilter: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#lexically-scoped-action-filter' - Safe: false - VersionAdded: '0.52' - Include: - - app/controllers/**/*.rb - - app/mailers/**/*.rb + Enabled: true Rails/LinkToBlank: - Enabled: false - Reference: - - https://mathiasbynens.github.io/rel-noopener/ - - https://html.spec.whatwg.org/multipage/links.html#link-type-noopener - - https://html.spec.whatwg.org/multipage/links.html#link-type-noreferrer - VersionAdded: '0.62' + Enabled: true Rails/MailerName: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#mailer-name' - SafeAutoCorrect: false - VersionAdded: '2.7' - Include: - - app/mailers/**/*.rb + Enabled: true Rails/MatchRoute: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#no-match-routes' - VersionAdded: '2.7' - Include: - - config/routes.rb - - config/routes/**/*.rb + Enabled: true Rails/MigrationClassName: - Enabled: false - VersionAdded: '2.14' - Include: - - db/migrate/*.rb + Enabled: true Rails/NegateInclude: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#exclude' - Safe: false - VersionAdded: '2.7' - VersionChanged: '2.9' Rails/NotNullColumn: Enabled: false - VersionAdded: '0.43' - Include: - - db/migrate/*.rb Rails/OrderById: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#order-by-id' - VersionAdded: '2.8' + Enabled: true Rails/Output: - Enabled: false - SafeAutoCorrect: false - VersionAdded: '0.15' - VersionChanged: '0.19' - Include: - - app/**/*.rb - - config/**/*.rb - - db/**/*.rb - - lib/**/*.rb + Enabled: true Rails/OutputSafety: Enabled: false - VersionAdded: '0.41' Rails/Pick: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#pick' - Safe: false - VersionAdded: '2.6' + Enabled: true Rails/Pluck: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#pluck' - Safe: false - VersionAdded: '2.7' - VersionChanged: '2.18' + Enabled: true Rails/PluckId: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#ids' - Safe: false - VersionAdded: '2.7' + Enabled: true Rails/PluckInWhere: - Enabled: false - Safe: false - VersionAdded: '2.7' - VersionChanged: '2.8' - EnforcedStyle: conservative - SupportedStyles: - - conservative - - aggressive + Enabled: true Rails/PluralizationGrammar: Enabled: false - VersionAdded: '0.35' Rails/Presence: - Enabled: false - VersionAdded: '0.52' + Enabled: true Rails/Present: Enabled: false - VersionAdded: '0.48' - VersionChanged: '0.67' - # Convert usages of `!nil? && !empty?` to `present?` - NotNilAndNotEmpty: true - # Convert usages of `!blank?` to `present?` - NotBlank: true - # Convert usages of `unless blank?` to `if present?` - UnlessBlank: true Rails/RakeEnvironment: Enabled: false - Safe: false - VersionAdded: '2.4' - VersionChanged: '2.6' - Include: - - '**/Rakefile' - - '**/*.rake' - Exclude: - - 'lib/capistrano/tasks/**/*.rake' Rails/ReadWriteAttribute: + Enabled: true + +Rails/RedundantActiveRecordAllMethod: Enabled: false - Checks for read_attribute(:attr) and - write_attribute(:attr, val). - StyleGuide: 'https://rails.rubystyle.guide#read-attribute' - VersionAdded: '0.20' - VersionChanged: '0.29' - Include: - - app/models/**/*.rb Rails/RedundantAllowNil: - Enabled: false - Finds redundant use of `allow_nil` when `allow_blank` is set to - certain values in model validations. - VersionAdded: '0.67' - Include: - - app/models/**/*.rb + Enabled: true Rails/RedundantForeignKey: - Enabled: false - VersionAdded: '2.6' + Enabled: true Rails/RedundantPresenceValidationOnBelongsTo: Enabled: true - SafeAutoCorrect: false - VersionAdded: '2.13' Rails/RedundantReceiverInWithOptions: - Enabled: false - VersionAdded: '0.52' + Enabled: true Rails/RedundantTravelBack: - Enabled: false - VersionAdded: '2.12' - Include: - - spec/**/*.rb - - test/**/*.rb + Enabled: true Rails/ReflectionClassName: - Enabled: false - Safe: false - VersionAdded: '0.64' - VersionChanged: '2.10' + Enabled: true Rails/RefuteMethods: Enabled: false - VersionAdded: '0.56' - EnforcedStyle: assert_not - SupportedStyles: - - assert_not - - refute - Include: - - '**/test/**/*' Rails/RelativeDateConstant: - Enabled: false - SafeAutoCorrect: false - VersionAdded: '0.48' - VersionChanged: '2.13' + Enabled: true Rails/RenderInline: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#inline-rendering' - VersionAdded: '2.7' Rails/RenderPlainText: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#plain-text-rendering' - VersionAdded: '2.7' - # Convert only when `content_type` is explicitly set to `text/plain`. - ContentTypeCompatibility: true + Enabled: true Rails/RequestReferer: Enabled: false - VersionAdded: '0.41' - EnforcedStyle: referer - SupportedStyles: - - referer - - referrer Rails/RequireDependency: Enabled: false - Reference: 'https://guides.rubyonrails.org/autoloading_and_reloading_constants.html' - VersionAdded: '2.10' Rails/ResponseParsedBody: Enabled: false - Safe: false - VersionAdded: '2.18' - VersionChanged: '2.19' - Include: - - spec/controllers/**/*.rb - - spec/requests/**/*.rb - - test/controllers/**/*.rb - - test/integration/**/*.rb Rails/ReversibleMigration: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#reversible-migration' - Reference: 'https://api.rubyonrails.org/classes/ActiveRecord/Migration/CommandRecorder.html' - VersionAdded: '0.47' - VersionChanged: '2.13' - Include: - - db/**/*.rb + Enabled: true Rails/ReversibleMigrationMethodDefinition: - Enabled: false - VersionAdded: '2.10' - VersionChanged: '2.13' - Include: - - db/**/*.rb + Enabled: true Rails/RootJoinChain: - Enabled: false - VersionAdded: '2.13' + Enabled: true Rails/RootPathnameMethods: - Enabled: false - SafeAutoCorrect: false - VersionAdded: '2.16' + Enabled: true Rails/RootPublicPath: - Enabled: false - VersionAdded: '2.15' + Enabled: true Rails/SafeNavigation: Enabled: true - VersionAdded: '0.43' - # This will convert usages of `try` to use safe navigation as well as `try!`. - # `try` and `try!` work slightly differently. `try!` and safe navigation will - # both raise a `NoMethodError` if the receiver of the method call does not - # implement the intended method. `try` will not raise an exception for this. - ConvertTry: false Rails/SafeNavigationWithBlank: Enabled: true - VersionAdded: '2.4' - # While the safe navigation operator is generally a good idea, when - # checking `foo&.blank?` in a conditional, `foo` being `nil` will actually - # do the opposite of what the author intends. - # - # foo&.blank? #=> nil - # foo.blank? #=> true - SafeAutoCorrect: false Rails/SaveBang: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#save-bang' - VersionAdded: '0.42' - VersionChanged: '0.59' - AllowImplicitReturn: true - AllowedReceivers: [] - SafeAutoCorrect: false + Enabled: true Rails/SchemaComment: Enabled: false - Enforces the use of the `comment` option when adding a new table or column - to the database during a migration. - VersionAdded: '2.13' Rails/ScopeArgs: Enabled: true - VersionAdded: '0.19' - VersionChanged: '2.12' - Include: - - app/models/**/*.rb + +Rails/SelectMap: + Enabled: false Rails/ShortI18n: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#short-i18n' - VersionAdded: '2.7' - EnforcedStyle: conservative - SupportedStyles: - - conservative - - aggressive Rails/SkipsModelValidations: Enabled: false - Use methods that skips model validations with caution. - See reference for more information. - Reference: 'https://guides.rubyonrails.org/active_record_validations.html#skipping-validations' - VersionAdded: '0.47' - VersionChanged: '2.7' - ForbiddenMethods: - - decrement! - - decrement_counter - - increment! - - increment_counter - - insert - - insert! - - insert_all - - insert_all! - - toggle! - - touch - - touch_all - - update_all - - update_attribute - - update_column - - update_columns - - update_counters - - upsert - - upsert_all - AllowedMethods: [] Rails/SquishedSQLHeredocs: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#squished-heredocs' - VersionAdded: '2.8' - VersionChanged: '2.9' - # Some SQL syntax (e.g. PostgreSQL comments and functions) requires newlines - # to be preserved in order to work, thus autocorrection is not safe. - SafeAutoCorrect: false Rails/StripHeredoc: Enabled: true - StyleGuide: 'https://rails.rubystyle.guide/#prefer-squiggly-heredoc' - VersionAdded: '2.15' + +Rails/StripHeredoc: + Enabled: true Rails/TableNameAssignment: Enabled: false - Do not use `self.table_name =`. Use Inflections or `table_name_prefix` instead. - StyleGuide: 'https://rails.rubystyle.guide/#keep-ar-defaults' - VersionAdded: '2.14' - Include: - - app/models/**/*.rb Rails/ThreeStateBooleanColumn: - Enabled: true - StyleGuide: 'https://rails.rubystyle.guide/#three-state-boolean' - VersionAdded: '2.19' - Include: - - db/**/*.rb + Enabled: pending Rails/TimeZone: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide#time' - Reference: 'http://danilenko.org/2012/7/6/rails_timezones' - SafeAutoCorrect: false - VersionAdded: '0.30' - VersionChanged: '2.13' - # The value `strict` means that `Time` should be used with `zone`. - # The value `flexible` allows usage of `in_time_zone` instead of `zone`. - EnforcedStyle: flexible - SupportedStyles: - - strict - - flexible - Exclude: - - '**/*.gemspec' + Enabled: true Rails/TimeZoneAssignment: Enabled: true - Reference: 'https://thoughtbot.com/blog/its-about-time-zones' - VersionAdded: '2.10' - Include: - - spec/**/*.rb - - test/**/*.rb Rails/ToFormattedS: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#prefer-to-fs' + Enabled: true EnforcedStyle: to_fs - SupportedStyles: - - to_fs - - to_formatted_s - VersionAdded: '2.15' Rails/ToSWithArgument: - Enabled: false - Safe: false - VersionAdded: '2.16' + Enabled: true Rails/TopLevelHashWithIndifferentAccess: - Enabled: false - Reference: 'https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#top-level-hashwithindifferentaccess-is-soft-deprecated' - Severity: warning - VersionAdded: '2.16' - VersionChanged: '2.18' + Enabled: true Rails/TransactionExitStatement: - Enabled: false - Reference: - - https://github.com/rails/rails/commit/15aa4200e083 - VersionAdded: '2.14' + Enabled: true Rails/UniqBeforePluck: Enabled: true - VersionAdded: '0.40' - VersionChanged: '2.13' - EnforcedStyle: conservative - SupportedStyles: - - conservative - - aggressive - SafeAutoCorrect: false Rails/UniqueValidationWithoutIndex: - Enabled: false - VersionAdded: '2.5' - Include: - - app/models/**/*.rb + Enabled: true Rails/UnknownEnv: Enabled: false - Severity: warning - VersionAdded: '0.51' - VersionChanged: '2.18' - Environments: - - development - - test - - production Rails/UnusedIgnoredColumns: Enabled: true - VersionAdded: '2.11' - Include: - - app/models/**/*.rb + +Rails/UnusedRenderContent: + Enabled: true Rails/Validation: - Enabled: false - VersionAdded: '0.9' - VersionChanged: '0.41' - Include: - - app/models/**/*.rb + Enabled: true Rails/WhereEquals: - Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#hash-conditions' - SafeAutoCorrect: false - VersionAdded: '2.9' - VersionChanged: '2.10' + Enabled: true Rails/WhereExists: Enabled: false - SafeAutoCorrect: false - EnforcedStyle: exists - SupportedStyles: - - exists - - where - VersionAdded: '2.7' - VersionChanged: '2.10' Rails/WhereMissing: Enabled: true - StyleGuide: 'https://rails.rubystyle.guide/#finding-missing-relationship-records' - VersionAdded: '2.16' Rails/WhereNot: Enabled: true - StyleGuide: 'https://rails.rubystyle.guide/#hash-conditions' - VersionAdded: '2.8' Rails/WhereNotWithMultipleConditions: Enabled: false - StyleGuide: 'https://rails.rubystyle.guide/#where-not-with-multiple-attributes' - Severity: warning - VersionAdded: '2.17' - VersionChanged: '2.18' + +Style/InvertibleUnlessCondition: + Enabled: false diff --git a/lib/standard/rails/load_rubocop_rails_without_the_monkey_patch.rb b/lib/standard/rails/load_rubocop_rails_without_the_monkey_patch.rb index 713550e..5da0fd6 100644 --- a/lib/standard/rails/load_rubocop_rails_without_the_monkey_patch.rb +++ b/lib/standard/rails/load_rubocop_rails_without_the_monkey_patch.rb @@ -7,7 +7,7 @@ # of RuboCop built-in cops in this file, we need to monitor it for changes # in rubocop-rails and keep it up to date. # -# Last updated from rubocop-rails v2.20.2 +# Last updated from rubocop-rails v2.23.1 # frozen_string_literal: true @@ -29,6 +29,14 @@ RuboCop::Cop::Style::HashExcept.minimum_target_ruby_version(2.0) +RuboCop::Cop::Style::InverseMethods.singleton_class.prepend( + Module.new do + def autocorrect_incompatible_with + super.push(RuboCop::Cop::Rails::NegateInclude) + end + end +) + RuboCop::Cop::Style::MethodCallWithArgsParentheses.singleton_class.prepend( Module.new do def autocorrect_incompatible_with diff --git a/standard-rails.gemspec b/standard-rails.gemspec index 9897c04..52c1672 100644 --- a/standard-rails.gemspec +++ b/standard-rails.gemspec @@ -30,5 +30,5 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_dependency "lint_roller", "~> 1.0" - spec.add_dependency "rubocop-rails", "~> 2.20.2" + spec.add_dependency "rubocop-rails", "~> 2.23.1" end