Skip to content

Commit

Permalink
[frontend] Fix Rails/FindEach offenses
Browse files Browse the repository at this point in the history
  • Loading branch information
bgeuken authored and DavidKang committed Dec 15, 2017
1 parent de8d669 commit 26f770e
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 34 deletions.
14 changes: 0 additions & 14 deletions .rubocop_todo.yml
Expand Up @@ -281,20 +281,6 @@ Rails/DynamicFindBy:
Rails/FilePath:
Enabled: false

# Offense count: 18
# Cop supports --auto-correct.
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/FindEach:
Exclude:
- 'src/api/app/models/bs_request.rb'
- 'src/api/app/models/bs_request_action_set_bugowner.rb'
- 'src/api/app/models/issue_tracker.rb'
- 'src/api/app/models/owner.rb'
- 'src/api/app/models/package.rb'
- 'src/api/app/models/project.rb'
- 'src/api/app/models/user.rb'

# Offense count: 12
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Expand Down
6 changes: 3 additions & 3 deletions src/api/app/models/bs_request.rb
Expand Up @@ -546,7 +546,7 @@ def changestate_accepted(opts)
end

def changestate_revoked
bs_request_actions.where(type: 'maintenance_release').each do |action|
bs_request_actions.where(type: 'maintenance_release').find_each do |action|
# unlock incident project in the soft way
prj = Project.get_by_name(action.source_project)
if prj.is_locked?
Expand Down Expand Up @@ -811,7 +811,7 @@ def setincident(incident)
touched = false
# all maintenance_incident actions go into the same incident project
p = { request: self, user_id: User.current.id }
bs_request_actions.where(type: 'maintenance_incident').each do |action|
bs_request_actions.where(type: 'maintenance_incident').find_each do |action|
tprj = Project.get_by_name action.target_project

# use an existing incident
Expand Down Expand Up @@ -880,7 +880,7 @@ def review_matches_user?(review, user)

def reviews_for_user_and_others(user)
user_reviews, other_open_reviews = [], []
reviews.where(state: 'new').each do |review|
reviews.where(state: 'new').find_each do |review|
if review_matches_user?(review, user)
user_reviews << review.webui_infos
else
Expand Down
2 changes: 1 addition & 1 deletion src/api/app/models/bs_request_action_set_bugowner.rb
Expand Up @@ -31,7 +31,7 @@ def execute_accept(_opts)
if target_package
object = object.packages.find_by_name!(target_package)
end
object.relationships.where("role_id = ?", bugowner).each(&:destroy)
object.relationships.where("role_id = ?", bugowner).find_each(&:destroy)
object.add_user(person_name, bugowner, true) if person_name # runs with ignoreLock
object.add_group(group_name, bugowner, true) if group_name # runs with ignoreLock
object.store(comment: "set_bugowner request #{bs_request.number}", request: bs_request)
Expand Down
2 changes: 1 addition & 1 deletion src/api/app/models/issue_tracker.rb
Expand Up @@ -182,7 +182,7 @@ def fetch_issues(issues = nil)
end

def self.update_all_issues
IssueTracker.all.each do |t|
IssueTracker.all.find_each do |t|
next unless t.enable_fetch
IssueTrackerUpdateIssuesJob.perform_later(t.id)
end
Expand Down
15 changes: 8 additions & 7 deletions src/api/app/models/owner.rb
Expand Up @@ -160,13 +160,14 @@ def self.find_containers_without_definition(rootproject, devel = true, filter =
roles, maintained_groups]).pluck(:name)
# relationship in project object by user
Project.joins(relationships: :user).where("projects.id in (?) AND role_id in (?) AND users.state = 'confirmed'",
projects, roles).each do |prj|
projects, roles).find_each do |prj|
defined_packages += prj.packages.pluck(:name)
end
# relationship in project object by group
Project.joins(:relationships).where("projects.id in (?) AND role_id in (?) AND group_id IN (?)", projects, roles, maintained_groups).each do |prj|
defined_packages += prj.packages.pluck(:name)
end
Project.joins(:relationships).
where("projects.id in (?) AND role_id in (?) AND group_id IN (?)", projects, roles, maintained_groups).find_each do |prj|
defined_packages += prj.packages.pluck(:name)
end
# accept all incident containers in release projects. the main package (link) is enough here
defined_packages += Package.where(project_id: projects).
joins("LEFT JOIN projects ON packages.project_id=projects.id LEFT JOIN package_kinds ON packages.id=package_kinds.package_id").
Expand Down Expand Up @@ -233,7 +234,7 @@ def self.find_containers(rootproject, owner, devel = true, filter = %w(maintaine
Project.where(id: found_projects).pluck(:name).each do |prj|
maintainers << Owner.new(rootproject: rootproject.name, project: prj)
end
Package.where(id: found_packages).each do |pkg|
Package.where(id: found_packages).find_each do |pkg|
maintainers << Owner.new(rootproject: rootproject.name, project: pkg.project.name, package: pkg.name)
end

Expand Down Expand Up @@ -331,14 +332,14 @@ def self._extract_from_container(m, r, sql, objfilter)
usersql = sql << " AND user_id = " << objfilter.id.to_s if objfilter.class == User
groupsql = sql << " AND group_id = " << objfilter.id.to_s if objfilter.class == Group

r.users.where(usersql).each do |p|
r.users.where(usersql).find_each do |p|
next unless p.user.state == "confirmed"
m.users ||= {}
m.users[p.role.title] ||= []
m.users[p.role.title] << p.user.login
end unless objfilter.class == Group

r.groups.where(groupsql).each do |p|
r.groups.where(groupsql).find_each do |p|
next if p.group.users.where(state: "confirmed").empty?
m.groups ||= {}
m.groups[p.role.title] ||= []
Expand Down
2 changes: 1 addition & 1 deletion src/api/app/models/package.rb
Expand Up @@ -1203,7 +1203,7 @@ def remove_linked_packages
end

def remove_devel_packages
Package.where(develpackage: self).each do |devel_package|
Package.where(develpackage: self).find_each do |devel_package|
devel_package.develpackage = nil
devel_package.store
devel_package.reset_cache
Expand Down
8 changes: 4 additions & 4 deletions src/api/app/models/project.rb
Expand Up @@ -349,7 +349,7 @@ def update_instance(namespace = 'OBS', name = 'UpdateProject')
def cleanup_linking_projects
# replace links to this project with links to the "deleted" project
LinkedProject.transaction do
LinkedProject.where(linked_db_project: self).each do |lp|
LinkedProject.where(linked_db_project: self).find_each do |lp|
id = lp.db_project_id
lp.destroy
Rails.cache.delete("xml_project_#{id}")
Expand Down Expand Up @@ -423,7 +423,7 @@ def self.get_by_name(name, opts = {})
raise UnknownObjectError, name
end
if opts[:includeallpackages]
Package.joins(:flags).where(project_id: dbp.id).where("flags.flag='sourceaccess'").each do |pkg|
Package.joins(:flags).where(project_id: dbp.id).where("flags.flag='sourceaccess'").find_each do |pkg|
raise ReadAccessError, name unless Package.check_access? pkg
end
end
Expand Down Expand Up @@ -1099,7 +1099,7 @@ def sync_repository_pathes
next unless path.link.project.kind == ipe.link.project.kind
# is this path pointing to some repository which is used in another
# of my repositories?
repositories.joins(:path_elements).where("path_elements.repository_id = ?", ipe.link).each do |my_repo|
repositories.joins(:path_elements).where("path_elements.repository_id = ?", ipe.link).find_each do |my_repo|
next if my_repo == repo # do not add my self
next if repo.path_elements.where(link: my_repo).count > 0
elements = repo.path_elements.where(position: ipe.position)
Expand Down Expand Up @@ -1731,7 +1731,7 @@ def guess_release_target_from_package(package, parsed_targets)
target_mapping[rt_value[:reponame]] = rt_key
end

package.flags.where(flag: :build, status: 'enable').each do |flag|
package.flags.where(flag: :build, status: 'enable').find_each do |flag|
rt_key = target_mapping[flag.repo]
return rt_key if rt_key
end
Expand Down
6 changes: 3 additions & 3 deletions src/api/app/models/user.rb
Expand Up @@ -608,7 +608,7 @@ def lock!
save!

# lock also all home projects to avoid unneccessary builds
Project.where("name like ?", "#{home_project_name}%").each do |prj|
Project.where("name like ?", "#{home_project_name}%").find_each do |prj|
next if prj.is_locked?
prj.lock("User account got locked")
end
Expand All @@ -619,7 +619,7 @@ def delete!
save!

# wipe also all home projects
Project.where("name like ?", "#{home_project_name}%").each do |prj|
Project.where("name like ?", "#{home_project_name}%").find_each do |prj|
prj.commit_opts = { comment: "User account got deleted" }
prj.destroy
end
Expand Down Expand Up @@ -719,7 +719,7 @@ def involved_patchinfos

ids = PackageIssue.open_issues_of_owner(id).with_patchinfo.distinct.pluck(:package_id)

Package.where(id: ids).each do |p|
Package.where(id: ids).find_each do |p|
hash = { package: { project: p.project.name, name: p.name } }
issues = Array.new

Expand Down

0 comments on commit 26f770e

Please sign in to comment.