module Hyrax::Ingest::Transformer

Public Class Methods

all_classes() click to toggle source

@return Set The set of all transformer classes.

# File lib/hyrax/ingest/transformer.rb, line 9
def all_classes
  @all_classes ||= Set.new.tap do |all_classes|
    all_classes << Hyrax::Ingest::Transformer::ToDate
  end
end
factory(class_name, options={}) click to toggle source

@param [Hash] options The key is the transformer class name

and the value is the hash of options to pass to the constructor of the transformer
class.

@return An instance of the transformer class.

# File lib/hyrax/ingest/transformer.rb, line 19
def factory(class_name, 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 or

without namespaces.

@raise [Hyrax::Ingest::Errors::UnknownTransformerClass] When there is no

corresponding transformer class for the given value of the `class_name`
param.

@raise [Hyrax::Ingest::Errors::UnknowntransformerClass] When the value of

`class_name` param is insufficient in determining a transformer class.

@return [Class] The appropriate transformer class.

# File lib/hyrax/ingest/transformer.rb, line 31
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::UnknownTransformerClass.new(class_name, all_classes) if found_classes.count == 0
  raise Hyrax::Ingest::Errors::AmbiguousTransformerClass.new(class_name, found_classes) if found_classes.count > 1
  found_classes.first
end