Class: CurationConcern::GenericFileActor

Inherits:
Sufia::GenericFile::Actor
  • Object
show all
Includes:
Worthwhile::ManagesEmbargoesActor
Defined in:
app/actors/curation_concern/generic_file_actor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Worthwhile::ManagesEmbargoesActor

#copy_visibility, #interpret_embargo_visibility, #interpret_lease_visibility, #interpret_visibility

Constructor Details

#initialize(generic_file, user, attributes) ⇒ GenericFileActor

Returns a new instance of GenericFileActor.



7
8
9
10
11
12
13
# File 'app/actors/curation_concern/generic_file_actor.rb', line 7

def initialize(generic_file, user, attributes)
  super(generic_file, user)
  # we're setting attributes and curation_concern to bridge the difference
  # between Sufia::GenericFile::Actor and ManagesEmbargoesActor
  @curation_concern = generic_file
  @attributes = attributes
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



5
6
7
# File 'app/actors/curation_concern/generic_file_actor.rb', line 5

def attributes
  @attributes
end

#curation_concernObject (readonly)

Returns the value of attribute curation_concern.



5
6
7
# File 'app/actors/curation_concern/generic_file_actor.rb', line 5

def curation_concern
  @curation_concern
end

Instance Method Details

#create_metadata(batch_id) ⇒ Object



29
30
31
32
33
34
# File 'app/actors/curation_concern/generic_file_actor.rb', line 29

def (batch_id)
  if batch_id
    generic_file.visibility = load_parent(batch_id).visibility
  end
  super
end

#load_parent(batch_id) ⇒ Object



36
37
38
# File 'app/actors/curation_concern/generic_file_actor.rb', line 36

def load_parent(batch_id)
  @parent ||= GenericWork.find(batch_id)
end

#update_metadata(_, _) ⇒ Object

we can trim this down a bit when Sufia 7.1 is released (adds update_visibility)



16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/actors/curation_concern/generic_file_actor.rb', line 16

def (_, _)
  interpret_visibility
  generic_file.visibility = attributes[:visibility] if attributes.key?(:visibility)
  generic_file.attributes = generic_file.sanitize_attributes(attributes)
  generic_file.date_modified = DateTime.now
  remove_from_feature_works if generic_file.visibility_changed? && !generic_file.public?
  save_and_record_committer do
    if Sufia.config.respond_to?(:after_update_metadata)
      Sufia.config..call(generic_file, user)
    end
  end
end