Class: Ddr::Derivatives::UpdateDerivatives

Inherits:
Object
  • Object
show all
Defined in:
lib/ddr/derivatives/update_derivatives.rb

Class Method Summary collapse

Class Method Details

.call(*args) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/ddr/derivatives/update_derivatives.rb', line 4

def self.call(*args)
  event = ActiveSupport::Notifications::Event.new(*args)
  payload = event.payload
  return false if payload[:skip_update_derivatives]
  if event.name == "delete.repo_file" &&
     !file_ids.include?(payload[:file_id])
    return false
  end
  if event.name =~ /\.repo_object\z/ &&
     (file_ids & payload[:datastreams_changed]).empty?
    return false
  end
  obj = ActiveFedora::Base.find(payload[:pid])
  obj.derivatives.update_derivatives(:later)
end

.file_idsObject



20
21
22
# File 'lib/ddr/derivatives/update_derivatives.rb', line 20

def self.file_ids
  Ddr::Datastreams.update_derivatives_on_changed
end