mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
29 lines
610 B
Ruby
29 lines
610 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Reporting
|
|
class ReportLoader
|
|
def initialize(report_type, report_subtype = nil)
|
|
@report_type = report_type
|
|
@report_subtype = report_subtype
|
|
end
|
|
|
|
def report_class
|
|
"#{report_module}::#{report_subtype.camelize}".constantize
|
|
rescue NameError
|
|
begin
|
|
"#{report_module}::Base".constantize
|
|
rescue NameError
|
|
raise Reporting::Errors::ReportNotFound
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :report_type, :report_subtype
|
|
|
|
def report_module
|
|
"Reporting::Reports::#{report_type.camelize}"
|
|
end
|
|
end
|
|
end
|