Module: ExportHelpers
- Included in:
- ArchivesSpaceService
- Defined in:
- backend/app/lib/export.rb
Instance Method Summary (collapse)
-
- (Object) generate_dc(id)
-
- (Object) generate_eac(id, type)
-
- (Object) generate_ead(id, include_unpublished, include_daos, use_numbered_c_tags)
-
- (Object) generate_labels(id)
-
- (Object) generate_marc(id)
-
- (Object) generate_mets(id)
-
- (Object) generate_mods(id)
-
- (Object) generate_pdf_from_ead(ead)
-
- (Object) pdf_response(pdf)
-
- (Object) stream_response(streamer)
-
- (Object) tsv_response(tsv)
-
- (Object) xml_response(xml)
Instance Method Details
- (Object) generate_dc(id)
41 42 43 44 45 |
# File 'backend/app/lib/export.rb', line 41 def generate_dc(id) obj = resolve_references(DigitalObject.to_jsonmodel(id), ['repository', 'linked_agents', 'subjects']) dc = ASpaceExport.model(:dc).from_digital_object(JSONModel(:digital_object).new(obj)) ASpaceExport::serialize(dc) end |
- (Object) generate_eac(id, type)
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'backend/app/lib/export.rb', line 82 def generate_eac(id, type) klass = Kernel.const_get(type.camelize) events = [] agent = klass.get_or_die(id) relationship_defn = klass.find_relationship(:linked_agents) = relationship_defn.find_by_participant(agent).map{|relation| = relation.other_referent_than(agent) next unless [Resource, ArchivalObject, DigitalObject, DigitalObjectComponent].include?(.class) RequestContext.open(:repo_id => .repo_id) do { :role => BackendEnumSource.values_for_ids(relation[:role_id])[relation[:role_id]], :record => .class.to_jsonmodel(, :skip_relationships => true) } end }.compact obj = resolve_references(klass.to_jsonmodel(agent), ['related_agents']) repo_json = Repository.to_jsonmodel(RequestContext.get(:repo_id)) repo = JSONModel(:repository).new(repo_json) eac = ASpaceExport.model(:eac).from_agent(JSONModel(type.intern).new(obj), events, , repo) ASpaceExport::serialize(eac) end |
- (Object) generate_ead(id, include_unpublished, include_daos, use_numbered_c_tags)
69 70 71 72 73 74 75 76 77 78 79 |
# File 'backend/app/lib/export.rb', line 69 def generate_ead(id, include_unpublished, include_daos, ) obj = resolve_references(Resource.to_jsonmodel(id), ['repository', 'linked_agents', 'subjects', 'tree', 'digital_object']) opts = { :include_unpublished => include_unpublished, :include_daos => include_daos, :use_numbered_c_tags => } ead = ASpaceExport.model(:ead).from_resource(JSONModel(:resource).new(obj), opts) ASpaceExport::stream(ead) end |
- (Object) generate_labels(id)
34 35 36 37 38 |
# File 'backend/app/lib/export.rb', line 34 def generate_labels(id) obj = resolve_references(Resource.to_jsonmodel(id), ['tree', 'repository']) labels = ASpaceExport.model(:labels).from_resource(JSONModel(:resource).new(obj)) ASpaceExport::serialize(labels, :serializer => :tsv) end |
- (Object) generate_marc(id)
62 63 64 65 66 |
# File 'backend/app/lib/export.rb', line 62 def generate_marc(id) obj = resolve_references(Resource.to_jsonmodel(id), ['repository', 'linked_agents', 'subjects']) marc = ASpaceExport.model(:marc21).from_resource(JSONModel(:resource).new(obj)) ASpaceExport::serialize(marc) end |
- (Object) generate_mets(id)
48 49 50 51 52 |
# File 'backend/app/lib/export.rb', line 48 def generate_mets(id) obj = resolve_references(DigitalObject.to_jsonmodel(id), ['repository::agent_representation', 'linked_agents', 'subjects', 'tree']) mets = ASpaceExport.model(:mets).from_digital_object(JSONModel(:digital_object).new(obj)) ASpaceExport::serialize(mets) end |
- (Object) generate_mods(id)
55 56 57 58 59 |
# File 'backend/app/lib/export.rb', line 55 def generate_mods(id) obj = resolve_references(DigitalObject.to_jsonmodel(id), ['repository::agent_representation', 'linked_agents', 'subjects', 'tree']) mods = ASpaceExport.model(:mods).from_digital_object(JSONModel(:digital_object).new(obj)) ASpaceExport::serialize(mods) end |
- (Object) generate_pdf_from_ead(ead)
13 14 15 16 17 |
# File 'backend/app/lib/export.rb', line 13 def generate_pdf_from_ead( ead ) xml = "" ead.each { |e| xml << e } ASFop.new(xml).to_pdf_stream end |
- (Object) pdf_response(pdf)
9 10 11 |
# File 'backend/app/lib/export.rb', line 9 def pdf_response(pdf) [status, {"Content-Type" => "application/pdf"}, pdf ] end |
- (Object) stream_response(streamer)
24 25 26 |
# File 'backend/app/lib/export.rb', line 24 def stream_response(streamer) [status, {"Content-Type" => "application/xml"}, streamer] end |
- (Object) tsv_response(tsv)
29 30 31 |
# File 'backend/app/lib/export.rb', line 29 def tsv_response(tsv) [status, {"Content-Type" => "text/tab-separated-values"}, [tsv + "\n"]] end |
- (Object) xml_response(xml)
19 20 21 |
# File 'backend/app/lib/export.rb', line 19 def xml_response(xml) [status, {"Content-Type" => "application/xml"}, [xml + "\n"]] end |