Files
gitlabhq/app/finders
Douwe Maan 68ac20604b Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce into ce-to-ee
# Conflicts:
#	app/controllers/groups/application_controller.rb
#	app/services/test_hook_service.rb
#	app/views/admin/groups/show.html.haml
#	app/views/groups/_settings_nav.html.haml
#	app/views/groups/show.html.haml
#	app/views/layouts/_head.html.haml
#	app/views/projects/_settings_nav.html.haml
#	db/schema.rb
#	features/project/project.feature
#	features/steps/project/project.rb
2015-05-05 10:18:27 +02:00
..
2015-02-06 10:21:48 -08:00

Finders

This type of classes responsible for collection items based on different conditions. To prevent lookup methods in models like this:

class Project
  def issues_for_user_filtered_by(user, filter)
    # A lot of logic not related to project model itself
  end
end

issues = project.issues_for_user_filtered_by(user, params)

Better use this:

issues = IssuesFinder.new.execute(project, user, filter)

It will help keep models thiner.