f93f8f569d
Enables frozen string for the following: * lib/gitlab/patch/**/*.rb * lib/gitlab/popen/**/*.rb * lib/gitlab/profiler/**/*.rb * lib/gitlab/project_authorizations/**/*.rb * lib/gitlab/prometheus/**/*.rb * lib/gitlab/query_limiting/**/*.rb * lib/gitlab/quick_actions/**/*.rb * lib/gitlab/redis/**/*.rb * lib/gitlab/request_profiler/**/*.rb * lib/gitlab/search/**/*.rb * lib/gitlab/sherlock/**/*.rb * lib/gitlab/sidekiq_middleware/**/*.rb * lib/gitlab/slash_commands/**/*.rb * lib/gitlab/sql/**/*.rb * lib/gitlab/template/**/*.rb * lib/gitlab/testing/**/*.rb * lib/gitlab/utils/**/*.rb * lib/gitlab/webpack/**/*.rb Partially addresses gitlab-org/gitlab-ce#47424.
26 lines
533 B
Ruby
26 lines
533 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module View
|
|
module Presenter
|
|
class Factory
|
|
def initialize(subject, **attributes)
|
|
@subject = subject
|
|
@attributes = attributes
|
|
end
|
|
|
|
def fabricate!
|
|
presenter_class.new(subject, attributes)
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :subject, :attributes
|
|
|
|
def presenter_class
|
|
attributes.delete(:presenter_class) { "#{subject.class.name}Presenter".constantize }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|