Class: Hyrax::Actors::FileActor
- Inherits:
-
Object
- Object
- Hyrax::Actors::FileActor
- Defined in:
- app/actors/hyrax/actors/file_actor.rb
Overview
Spawns asynchronous jobs
Actions for a file identified by file_set and relation (maps to use predicate)
Instance Attribute Summary collapse
-
#file_set ⇒ Object
readonly
Returns the value of attribute file_set.
-
#relation ⇒ Object
readonly
Returns the value of attribute relation.
-
#use_valkyrie ⇒ Object
readonly
Returns the value of attribute use_valkyrie.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#ingest_file(io) ⇒ CharacterizeJob, FalseClass
Persists file as part of file_set and spawns async job to characterize and create derivatives.
-
#initialize(file_set, relation, user) ⇒ FileActor
constructor
A new instance of FileActor.
-
#revert_to(revision_id) ⇒ CharacterizeJob, FalseClass
Reverts file and spawns async job to characterize and create derivatives.
Constructor Details
#initialize(file_set, relation, user) ⇒ FileActor
Returns a new instance of FileActor.
13 14 15 16 17 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 13 def initialize(file_set, relation, user) @file_set = file_set @relation = normalize_relation(relation) @user = user end |
Instance Attribute Details
#file_set ⇒ Object (readonly)
Returns the value of attribute file_set.
8 9 10 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 8 def file_set @file_set end |
#relation ⇒ Object (readonly)
Returns the value of attribute relation.
8 9 10 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 8 def relation @relation end |
#use_valkyrie ⇒ Object (readonly)
Returns the value of attribute use_valkyrie.
8 9 10 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 8 def use_valkyrie @use_valkyrie end |
#user ⇒ Object (readonly)
Returns the value of attribute user.
8 9 10 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 8 def user @user end |
Instance Method Details
#==(other) ⇒ Object
FileSet comparison is limited to IDs, but this should be sufficient, given that most operations here are on the other side of async retrieval in Jobs (based solely on ID).
49 50 51 52 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 49 def ==(other) return false unless other.is_a?(self.class) file_set.id == other.file_set.id && relation == other.relation && user == other.user end |
#ingest_file(io) ⇒ CharacterizeJob, FalseClass
create a job to monitor the temp directory (or in a multi-worker system, directories!) to prune old files that have made it into the repo
Instead of calling this method, use IngestJob to avoid synchronous execution cost
Persists file as part of file_set and spawns async job to characterize and create derivatives.
25 26 27 28 29 30 31 32 33 34 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 25 def ingest_file(io) Hydra::Works::AddFileToFileSet.call(file_set, io, relation, versioning: false) return false unless file_set.save repository_file = create_version(repository_file, user) CharacterizeJob.perform_later(file_set, repository_file.id, pathhint(io)) end |
#revert_to(revision_id) ⇒ CharacterizeJob, FalseClass
Reverts file and spawns async job to characterize and create derivatives.
39 40 41 42 43 44 45 |
# File 'app/actors/hyrax/actors/file_actor.rb', line 39 def revert_to(revision_id) repository_file = repository_file.restore_version(revision_id) return false unless file_set.save create_version(repository_file, user) CharacterizeJob.perform_later(file_set, repository_file.id) end |