class CDMDEXER::TransformWorker
Attributes
batch_size[R]
cdm_endpoint[R]
cdm_item_klass[W]
field_mappings[R]
load_worker_klass[W]
oai_endpoint[R]
records[R]
solr_config[R]
transformer_klass[W]
transformer_worker_klass[W]
Public Instance Methods
cdm_item_klass()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 34 def cdm_item_klass @cdm_item_klass ||= CdmItem end
load_worker_klass()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 42 def load_worker_klass @load_worker_klass ||= LoadWorker end
perform(records, solr_config, cdm_endpoint, oai_endpoint, field_mappings, batch_size)
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 17 def perform(records, solr_config, cdm_endpoint, oai_endpoint, field_mappings, batch_size) @records = records @solr_config = solr_config @cdm_endpoint = cdm_endpoint @oai_endpoint = oai_endpoint @field_mappings = field_mappings @batch_size = batch_size transform_and_load! transform_and_load_compounds! end
transformer_klass()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 38 def transformer_klass @transformer_klass ||= Transformer end
transformer_worker_klass()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 46 def transformer_worker_klass @transformer_worker_klass ||= TransformWorker end
Private Instance Methods
cmd_items()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 75 def cmd_items @cdm_items ||= records.map do |record| cdm_item_klass.new(record: record, cdm_endpoint: cdm_endpoint) end end
complete_records()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 87 def complete_records records.map do |record| cdm_request(*identifier) end end
compound_records()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 71 def compound_records cmd_items.map(&:page).flatten end
transform_and_load!()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 67 def transform_and_load! load_worker_klass.perform_async(transformed_records, [], solr_config) end
transform_and_load_compounds!()
click to toggle source
Recursivly call the transformer_worker with all the the compound data we have collected in the first pass
# File lib/cdmdexer/transform_worker.rb, line 54 def transform_and_load_compounds! compound_records.each_slice(batch_size) do |compound_records_batch| transformer_worker_klass.perform_async( compound_records_batch, solr_config, cdm_endpoint, oai_endpoint, field_mappings, batch_size ) end end
transformed_records()
click to toggle source
# File lib/cdmdexer/transform_worker.rb, line 81 def transformed_records transformer_klass.new(cdm_records: cmd_items.map(&:to_h), oai_endpoint: oai_endpoint, field_mappings: field_mappings).records end