module Hyrax::Ingest::Fetcher
Public Class Methods
all_classes()
click to toggle source
@return Set The set of all fetcher classes.
# File lib/hyrax/ingest/fetcher.rb, line 15 def all_classes @all_classes ||= Set.new.tap do |all_classes| all_classes << Hyrax::Ingest::Fetcher::XMLFile all_classes << Hyrax::Ingest::Fetcher::YAMLFile all_classes << Hyrax::Ingest::Fetcher::CSVFile all_classes << Hyrax::Ingest::Fetcher::Literal all_classes << Hyrax::Ingest::Fetcher::PremisEventType all_classes << Hyrax::Ingest::Fetcher::RdfUri all_classes << Hyrax::Ingest::Fetcher::DateTime end end
factory(class_name, options={})
click to toggle source
@param [string] options The key is the fetcher class name
and the value is the hash of options to pass to the constructor of the fetcher class.
@return An instance of the fetcher class.
# File lib/hyrax/ingest/fetcher.rb, line 31 def factory(class_name, options={}) options ||= {} find_class_by_name(class_name).new(options) end
find_class_by_name(class_name)
click to toggle source
@param [String] class_name The stringified class name, with our
without namespaces.
@raise [Hyrax::Ingest::Errors::UnknownFetcherClass] When there is no
corresponding fetcher class for the given value of the `class_name` param.
@raise [Hyrax::Ingest::Errors::UnknownfetcherClass] When the value of
`class_name` param is insufficient in determining a fetcher class.
@return [Class] The appropriate fetcher class.
# File lib/hyrax/ingest/fetcher.rb, line 44 def find_class_by_name(class_name) found_classes = all_classes.select do |class_const| (class_const.to_s == class_name) || (class_const.to_s =~ /::#{class_name}/) end raise Hyrax::Ingest::Errors::UnknownFetcherClass.new(class_name, all_classes) if found_classes.count == 0 raise Hyrax::Ingest::Errors::AmbiguousFetcherClass.new(class_name, found_classes) if found_classes.count > 1 found_classes.first end