class FedoraMigrate::TargetConstructor
Attributes
candidates[RW]
source[RW]
target[RW]
Public Class Methods
new(source)
click to toggle source
# File lib/fedora_migrate/target_constructor.rb, line 5 def initialize(source) @source = source end
Public Instance Methods
build()
click to toggle source
# File lib/fedora_migrate/target_constructor.rb, line 9 def build raise FedoraMigrate::Errors::MigrationError, "No qualified targets found in #{source.pid}" if target.nil? target.new(id: FedoraMigrate::Mover.id_component(source)) end
Private Instance Methods
class_from_model(model)
click to toggle source
# File lib/fedora_migrate/target_constructor.rb, line 31 def class_from_model(model) FedoraMigrate::Mover.id_component(model).constantize rescue NameError nil end
determine_target()
click to toggle source
# File lib/fedora_migrate/target_constructor.rb, line 20 def determine_target Array(candidates).map { |model| vet(model) }.compact.first end
namespaced_class_from_model(model)
click to toggle source
# File lib/fedora_migrate/target_constructor.rb, line 37 def namespaced_class_from_model(model) FedoraMigrate::Mover.id_component(model).split(/_/).map(&:camelize).join('::').constantize rescue NameError nil end
vet(model)
click to toggle source
# File lib/fedora_migrate/target_constructor.rb, line 24 def vet(model) klass = class_from_model(model) klass ||= namespaced_class_from_model(model) Logger.debug "rejecting #{model} for target" if klass.nil? klass end