Skip to content

Commit

Permalink
Asset model from mime on bulk ingest task; remove asset ids from task…
Browse files Browse the repository at this point in the history
… when deleting items
  • Loading branch information
Tom Johnson committed Jun 4, 2014
1 parent e785375 commit e8ba4c6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
12 changes: 9 additions & 3 deletions app/models/bulk_task.rb
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ def review_assets

def delete_assets
self.asset_ids.map { |pid| ActiveFedora::Base.find(:pid => pid).first.delete }
self.asset_ids = []
self.status = :deleted
self.save
end
Expand All @@ -130,17 +131,22 @@ def absolute_path

def ingest_bags
Hybag::BulkIngester.new(absolute_path).each do |ingester|
ingester.model_name = args[:model].capitalize # TODO: determine model from content type!
mime = FileMagic.new(FileMagic::MAGIC_MIME).file(ingester.bag.bag_files.first).split(';')[0]
for pattern, asset_class in ASSET_CLASS_LOOKUP
if pattern === mime
klass = asset_class
end
end
ingester.model_name = klass.to_s || GenericAsset.to_s
object = ingester.ingest
object.descMetadata.resource.each_statement do |s|
if s.subject.to_s.start_with? 'http://example.org'
object.descMetadata.resource.delete s
object.descMetadata.resource << RDF::Statement.new(object.descMetadata.rdf_subject, s.predicate, s.object)
end
end
object.content.mimeType = FileMagic.new(FileMagic::MAGIC_MIME).file(ingester.bag.bag_files.first).split(';')[0]
object.content.mimeType = mime
object.format = RDF::URI("http://purl.org/NET/mediatypes/#{object.content.mimeType}")
object.set = collection
object.save
end
end
Expand Down
11 changes: 9 additions & 2 deletions lib/oregon_digital/csv_bulk_ingestible.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,14 @@ def assets_from_csv(directory, ingest=false)
assets = []
CSV.foreach(file, :headers => true, :header_converters => :symbol) do |row|
ingest_file = row.delete(:ingest_filename)[1] if row.headers.include? :ingest_filename
asset = process_row(row)
require 'filemagic'
mime = FileMagic.new(FileMagic::MAGIC_MIME).file(file).split(';')[0]
for pattern, asset_class in ASSET_CLASS_LOOKUP
if pattern === mime
klass = asset_class
end
end
asset = process_row(row, klass || self)
if ingest and ingest_file
begin
asset.content.content = File.read(File.join(directory, ingest_file))
Expand All @@ -48,7 +55,7 @@ def find_csv(directory)
files.first
end

def process_row(row)
def process_row(row, klass=self)
asset = new
row.headers.each do |field|
next if field == :ingest_filename
Expand Down

0 comments on commit e8ba4c6

Please sign in to comment.