Class: Bulkrax::Entry
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Bulkrax::Entry
- Includes:
- ExportBehavior, HasLocalProcessing, HasMatchers, ImportBehavior, StatusInfo
- Defined in:
- app/models/bulkrax/entry.rb
Instance Attribute Summary collapse
-
#all_attrs ⇒ Object
Returns the value of attribute all_attrs.
Class Method Summary collapse
-
.data_for_entry(_data, _source_id, _parser) ⇒ Object
Returns formatted data from the given file for a single Entry.
-
.fields_from_data(_data) ⇒ Object
Retrieve fields from the file.
- .parent_field(parser) ⇒ Object
-
.read_data(_path) ⇒ Object
Read the data from the supplied path.
Instance Method Summary collapse
- #build ⇒ Object
- #exporter? ⇒ Boolean
-
#fetch_field_mapping ⇒ Object
Returns field_mapping hash based on whether or not generated metadata should be included.
- #find_collection(collection_identifier) ⇒ Object
- #importer? ⇒ Boolean
- #last_run ⇒ Object
- #source_identifier ⇒ Object
- #valid_system_id(model_class) ⇒ Object
- #work_identifier ⇒ Object
Methods included from HasLocalProcessing
Methods included from StatusInfo
#current_status, #failed?, #last_error, #set_status_info, #status, #status_at, #succeeded?
Methods included from ExportBehavior
#build_export_metadata, #build_for_exporter, #filename, #hyrax_record
Methods included from ImportBehavior
#active_id_for_authority?, #add_admin_set_id, #add_collections, #add_rights_statement, #add_user_to_permission_templates!, #add_visibility, #build_for_importer, #build_metadata, #child_jobs, #collections_created?, #factory, #factory_class, #find_collection_ids, #override_rights_statement, #parent_jobs, #rights_statement, #sanitize_controlled_uri_value, #sanitize_controlled_uri_values!, #validate_value
Methods included from HasMatchers
#add_metadata, #excluded?, #field_supported?, #field_to, #get_object_name, #matched_metadata, #multiple?, #multiple_metadata, #set_parsed_data, #set_parsed_object_data, #single_metadata, #supported_bulkrax_fields
Instance Attribute Details
#all_attrs ⇒ Object
Returns the value of attribute all_attrs.
25 26 27 |
# File 'app/models/bulkrax/entry.rb', line 25 def all_attrs @all_attrs end |
Class Method Details
.data_for_entry(_data, _source_id, _parser) ⇒ Object
Returns formatted data from the given file for a single Entry
63 64 65 |
# File 'app/models/bulkrax/entry.rb', line 63 def self.data_for_entry(_data, _source_id, _parser) raise StandardError, 'Not Implemented' end |
.fields_from_data(_data) ⇒ Object
Retrieve fields from the file
48 49 50 |
# File 'app/models/bulkrax/entry.rb', line 48 def self.fields_from_data(_data) raise StandardError, 'Not Implemented' end |
.parent_field(parser) ⇒ Object
84 85 86 |
# File 'app/models/bulkrax/entry.rb', line 84 def self.parent_field(parser) parser. end |
.read_data(_path) ⇒ Object
Read the data from the supplied path
55 56 57 |
# File 'app/models/bulkrax/entry.rb', line 55 def self.read_data(_path) raise StandardError, 'Not Implemented' end |
Instance Method Details
#build ⇒ Object
88 89 90 91 92 93 94 |
# File 'app/models/bulkrax/entry.rb', line 88 def build return if type.nil? self.save if self.new_record? # must be saved for statuses return build_for_importer if importer? return build_for_exporter if exporter? end |
#exporter? ⇒ Boolean
100 101 102 |
# File 'app/models/bulkrax/entry.rb', line 100 def exporter? self.importerexporter_type == 'Bulkrax::Exporter' end |
#fetch_field_mapping ⇒ Object
Returns field_mapping hash based on whether or not generated metadata should be included
76 77 78 79 80 81 82 |
# File 'app/models/bulkrax/entry.rb', line 76 def fetch_field_mapping return self.mapping if importerexporter. self.mapping.each do |key, value| self.mapping.delete(key) if value[] end end |
#find_collection(collection_identifier) ⇒ Object
115 116 117 118 119 120 |
# File 'app/models/bulkrax/entry.rb', line 115 def find_collection(collection_identifier) return unless Collection.properties.keys.include?(work_identifier) Collection.where( work_identifier => collection_identifier ).detect { |m| m.send(work_identifier).include?(collection_identifier) } end |
#importer? ⇒ Boolean
96 97 98 |
# File 'app/models/bulkrax/entry.rb', line 96 def importer? self.importerexporter_type == 'Bulkrax::Importer' end |
#last_run ⇒ Object
111 112 113 |
# File 'app/models/bulkrax/entry.rb', line 111 def last_run self.importerexporter&.last_run end |
#source_identifier ⇒ Object
67 68 69 |
# File 'app/models/bulkrax/entry.rb', line 67 def source_identifier parser&.source_identifier&.to_s || 'source_identifier' end |
#valid_system_id(model_class) ⇒ Object
104 105 106 107 108 109 |
# File 'app/models/bulkrax/entry.rb', line 104 def valid_system_id(model_class) return true if model_class.properties.keys.include?(work_identifier) raise( "#{model_class} does not implement the system_identifier_field: #{work_identifier}" ) end |
#work_identifier ⇒ Object
71 72 73 |
# File 'app/models/bulkrax/entry.rb', line 71 def work_identifier parser&.work_identifier&.to_s || 'source' end |