Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cop idea: Remove redundant class definition in scopes and class methods #1107

Open
ydakuka opened this issue Sep 6, 2023 · 2 comments
Open

Comments

@ydakuka
Copy link

ydakuka commented Sep 6, 2023

Describe the solution you'd like

class ModerationComment < ApplicationRecord
  # bad
  scope :categories, -> { ModerationComment.where(resourceable_type: 'Category') }
  scope :sites,      -> { where ModerationComment.arel_table[:resourceable_type].eq('Site') }

  # bad
  def self.domains
    ModerationComment.where(resourceable_type: 'Domain')
  end

  # good
  scope :categories, -> { where(resourceable_type: 'Category') }
  scope :sites,      -> { where arel_table[:resourceable_type].eq('Site') }

  # good
  def self.domains
    where(resourceable_type: 'Domain')
  end
end

Rubocop

ydakuka@yauhenid:~/Work/project$ bin/rails_docker rubocop -V
1.55.1 (using Parser 3.2.2.3, rubocop-ast 1.29.0, running on ruby 2.7.8) [x86_64-linux]
  - rubocop-capybara 2.18.0
  - rubocop-factory_bot 2.23.1
  - rubocop-performance 1.18.0
  - rubocop-rails 2.20.2
  - rubocop-rake 0.6.0
  - rubocop-rspec 2.23.0
  - rubocop-thread_safety 0.5.1
@koic
Copy link
Member

koic commented Oct 7, 2023

I have a concern that the redundancy class name might be specific to inside the scope context or not. The point is whether it has generic beyond just the scope.

@ydakuka ydakuka changed the title Cop idea: Remove redundant class definition in scopes Cop idea: Remove redundant class definition in scopes and class methods Oct 7, 2023
@ydakuka
Copy link
Author

ydakuka commented Oct 28, 2023

I think it should be detected by the Style/ClassMethods cop. https://rubystyle.guide/#def-self-class-methods and https://rubystyle.guide/#class-and-self

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants