2018-10-06 23:10:08 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-05-26 11:16:43 +00:00
|
|
|
module Banzai
|
|
|
|
module ReferenceParser
|
2020-10-16 18:09:04 +00:00
|
|
|
InvalidReferenceType = Class.new(StandardError)
|
|
|
|
|
2016-05-26 11:16:43 +00:00
|
|
|
# Returns the reference parser class for the given type
|
|
|
|
#
|
|
|
|
# Example:
|
|
|
|
#
|
|
|
|
# Banzai::ReferenceParser['issue']
|
|
|
|
#
|
|
|
|
# This would return the `Banzai::ReferenceParser::IssueParser` class.
|
|
|
|
def self.[](name)
|
2019-10-16 03:06:12 +00:00
|
|
|
const_get("#{name.to_s.camelize}Parser", false)
|
2020-10-16 18:09:04 +00:00
|
|
|
rescue NameError
|
|
|
|
raise InvalidReferenceType
|
2016-05-26 11:16:43 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|