ddr-models 3.0.0.beta.9 → 3.0.0.beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/initializers/active_fedora_base.rb +1 -6
- data/lib/ddr/auth/ability_definitions/datastream_ability_definitions.rb +5 -5
- data/lib/ddr/datastreams.rb +4 -7
- data/lib/ddr/derivatives/thumbnail.rb +2 -2
- data/lib/ddr/index/fields.rb +2 -2
- data/lib/ddr/models/file.rb +7 -1
- data/lib/ddr/models/files/fits_xml_file.rb +0 -1
- data/lib/ddr/models/governable.rb +0 -20
- data/lib/ddr/models/has_content.rb +4 -4
- data/lib/ddr/models/has_struct_metadata.rb +4 -3
- data/lib/ddr/models/has_thumbnail.rb +1 -1
- data/lib/ddr/models/solr_document.rb +3 -3
- data/lib/ddr/models/version.rb +1 -1
- data/spec/managers/derivatives_manager_spec.rb +4 -4
- data/spec/models/active_fedora_base_spec.rb +2 -2
- data/spec/models/file_spec.rb +0 -22
- data/spec/{datastreams/fits_datastream_spec.rb → models/fits_xml_file_spec.rb} +2 -2
- data/spec/models/has_struct_metadata_spec.rb +3 -3
- metadata +4 -6
- data/lib/ddr/datastreams/descriptive_metadata_datastream.rb +0 -43
- data/lib/ddr/datastreams/fits_datastream.rb +0 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acfc5ee132f67a3bcd39524c3cb2b3b54e6904a3
|
4
|
+
data.tar.gz: 8ee6e1cf1e7cbd8cd023d3ccc851b7eea2950803
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e470d2d199991ca2d8f8cdcd0300cc8c9c28f5d5339132c18d5f892ede55197577a030adbcbcf5966edfd3f79d72b2825c4e78216902760f0582337d23a0a90
|
7
|
+
data.tar.gz: 17a7d44df2345a1c740afc6f4f9fb08243858cbb4b9a8bd1a16c8b91c8567b4db633c7a33c661d18bf02b9e148deb3e3a0d7030bda432611b9e9bcca472edae7
|
@@ -37,13 +37,8 @@ ActiveFedora::Base.class_eval do
|
|
37
37
|
governable? && admin_policy.present?
|
38
38
|
end
|
39
39
|
|
40
|
-
def has_rights_metadata?
|
41
|
-
ds = self.datastreams[Ddr::Datastreams::RIGHTS_METADATA]
|
42
|
-
ds && ds.size && ds.size > 0
|
43
|
-
end
|
44
|
-
|
45
40
|
def can_have_struct_metadata?
|
46
|
-
datastreams.key? Ddr::
|
41
|
+
datastreams.key? Ddr::Models::File::STRUCT_METADATA
|
47
42
|
end
|
48
43
|
|
49
44
|
def has_struct_metadata?
|
@@ -8,11 +8,11 @@ module Ddr
|
|
8
8
|
# Datastreams not listed cannot be downloaded, except of
|
9
9
|
# course by the :manage ability.
|
10
10
|
DATASTREAM_DOWNLOAD_ABILITIES = {
|
11
|
-
Ddr::
|
12
|
-
Ddr::
|
13
|
-
Ddr::
|
14
|
-
Ddr::
|
15
|
-
Ddr::
|
11
|
+
Ddr::Models::File::CONTENT => :download,
|
12
|
+
Ddr::Models::File::EXTRACTED_TEXT => :download,
|
13
|
+
Ddr::Models::File::FITS => :read,
|
14
|
+
Ddr::Models::File::STRUCT_METADATA => :read,
|
15
|
+
Ddr::Models::File::THUMBNAIL => :read,
|
16
16
|
}.freeze
|
17
17
|
|
18
18
|
def call
|
data/lib/ddr/datastreams.rb
CHANGED
@@ -3,13 +3,6 @@ module Ddr
|
|
3
3
|
extend ActiveSupport::Autoload
|
4
4
|
extend Deprecation
|
5
5
|
|
6
|
-
CONTENT = "content".freeze
|
7
|
-
DESC_METADATA = "descMetadata".freeze
|
8
|
-
EXTRACTED_TEXT = "extractedText".freeze
|
9
|
-
FITS = "fits".freeze
|
10
|
-
STRUCT_METADATA = "structMetadata".freeze
|
11
|
-
THUMBNAIL = "thumbnail".freeze
|
12
|
-
|
13
6
|
CHECKSUM_TYPE_MD5 = "MD5"
|
14
7
|
CHECKSUM_TYPE_SHA1 = "SHA-1"
|
15
8
|
CHECKSUM_TYPE_SHA256 = "SHA-256"
|
@@ -20,6 +13,10 @@ module Ddr
|
|
20
13
|
|
21
14
|
def self.const_missing(name)
|
22
15
|
case name
|
16
|
+
when :CONTENT, :DESC_METADATA, :EXTRACTED_TEXT, :FITS, :STRUCT_METADATA, :THUMBNAIL
|
17
|
+
Deprecation.warn(self, "Ddr::Datastreams::#{name} is deprecated." \
|
18
|
+
" Use Ddr::Models::File::#{name} instead.")
|
19
|
+
Ddr::Models::File.const_get(name)
|
23
20
|
when :FitsDatastream
|
24
21
|
Deprecation.warn(self, "Ddr::Datastreams::FitsDatastream is deprecated." \
|
25
22
|
" Use Ddr::Models::FitsXmlFile instead.")
|
@@ -28,9 +28,9 @@ module Ddr::Derivatives
|
|
28
28
|
def store(object, output_path)
|
29
29
|
output_file = File.open(output_path, 'rb')
|
30
30
|
object.reload if object.persisted?
|
31
|
-
object.add_file output_file, path: Ddr::
|
31
|
+
object.add_file output_file, path: Ddr::Models::File::THUMBNAIL, mime_type: generator.class.output_mime_type
|
32
32
|
object.save!
|
33
33
|
end
|
34
34
|
|
35
35
|
end
|
36
|
-
end
|
36
|
+
end
|
data/lib/ddr/index/fields.rb
CHANGED
@@ -88,8 +88,8 @@ module Ddr::Index
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def self.descmd
|
91
|
-
@descmd ||= Ddr::
|
92
|
-
Field.new
|
91
|
+
@descmd ||= Ddr::Models::DescriptiveMetadata.field_names.map do |base|
|
92
|
+
Field.new(base, :stored_searchable)
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
data/lib/ddr/models/file.rb
CHANGED
@@ -2,9 +2,15 @@ require 'tempfile'
|
|
2
2
|
|
3
3
|
module Ddr::Models
|
4
4
|
class File < ActiveFedora::File
|
5
|
-
extend AutoVersion
|
6
5
|
extend Deprecation
|
7
6
|
|
7
|
+
CONTENT = "content".freeze
|
8
|
+
DESC_METADATA = "descMetadata".freeze
|
9
|
+
EXTRACTED_TEXT = "extractedText".freeze
|
10
|
+
FITS = "fits".freeze
|
11
|
+
STRUCT_METADATA = "structMetadata".freeze
|
12
|
+
THUMBNAIL = "thumbnail".freeze
|
13
|
+
|
8
14
|
DEFAULT_FILE_EXTENSION = "bin"
|
9
15
|
STRFTIME_FORMAT = "%Y-%m-%dT%H:%M:%S.%LZ"
|
10
16
|
|
@@ -9,26 +9,6 @@ module Ddr
|
|
9
9
|
class_name: "Collection"
|
10
10
|
end
|
11
11
|
|
12
|
-
def inherited_permissions
|
13
|
-
admin_policy ? admin_policy.default_permissions : []
|
14
|
-
end
|
15
|
-
|
16
|
-
def inherited_rights
|
17
|
-
admin_policy.datastreams[Ddr::Datastreams::DEFAULT_RIGHTS] if admin_policy
|
18
|
-
end
|
19
|
-
|
20
|
-
# Creates convenience methods:
|
21
|
-
# inherited_discover_users, inherited_discover_groups,
|
22
|
-
# inherited_read_users, inherited_read_groups,
|
23
|
-
# inherited_edit_user, inherited_edit_groups
|
24
|
-
["discover", "read", "edit"].each do |access|
|
25
|
-
["user", "group"].each do |type|
|
26
|
-
define_method("inherited_#{access}_#{type}s") do
|
27
|
-
admin_policy ? admin_policy.send("default_#{access}_#{type}s") : []
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
12
|
def copy_admin_policy_from(other)
|
33
13
|
if admin_policy = other.admin_policy
|
34
14
|
self.admin_policy = admin_policy
|
@@ -5,9 +5,9 @@ module Ddr
|
|
5
5
|
extend Deprecation
|
6
6
|
|
7
7
|
included do
|
8
|
-
contains Ddr::
|
9
|
-
contains Ddr::
|
10
|
-
contains Ddr::
|
8
|
+
contains Ddr::Models::File::CONTENT, class_name: 'Ddr::Models::File'
|
9
|
+
contains Ddr::Models::File::EXTRACTED_TEXT, class_name: 'Ddr::Models::File'
|
10
|
+
contains Ddr::Models::File::FITS, class_name: 'Ddr::Models::FitsXmlFile'
|
11
11
|
|
12
12
|
property :legacy_original_filename,
|
13
13
|
predicate: RDF::Vocab::PREMIS.hasOriginalName,
|
@@ -26,7 +26,7 @@ module Ddr
|
|
26
26
|
|
27
27
|
# Convenience method wrapping FileManagement#add_file
|
28
28
|
def upload(file, opts={})
|
29
|
-
add_file(file, opts.merge(path: Ddr::
|
29
|
+
add_file(file, opts.merge(path: Ddr::Models::File::CONTENT))
|
30
30
|
end
|
31
31
|
|
32
32
|
# Set content to file and save
|
@@ -4,13 +4,14 @@ module Ddr
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
included do
|
7
|
-
contains Ddr::
|
7
|
+
contains Ddr::Models::File::STRUCT_METADATA,
|
8
|
+
class_name: 'Ddr::Models::StructuralMetadataFile'
|
8
9
|
end
|
9
10
|
|
10
11
|
def structure
|
11
12
|
unless @structure
|
12
|
-
if datastreams[Ddr::
|
13
|
-
@structure = Ddr::Models::Structure.new(Nokogiri::XML(datastreams[Ddr::
|
13
|
+
if datastreams[Ddr::Models::File::STRUCT_METADATA].content
|
14
|
+
@structure = Ddr::Models::Structure.new(Nokogiri::XML(datastreams[Ddr::Models::File::STRUCT_METADATA].content))
|
14
15
|
end
|
15
16
|
end
|
16
17
|
@structure
|
@@ -135,15 +135,15 @@ module Ddr::Models
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def has_thumbnail?
|
138
|
-
has_datastream?(Ddr::
|
138
|
+
has_datastream?(Ddr::Models::File::THUMBNAIL)
|
139
139
|
end
|
140
140
|
|
141
141
|
def has_content?
|
142
|
-
has_datastream?(Ddr::
|
142
|
+
has_datastream?(Ddr::Models::File::CONTENT)
|
143
143
|
end
|
144
144
|
|
145
145
|
def content_ds
|
146
|
-
datastreams[Ddr::
|
146
|
+
datastreams[Ddr::Models::File::CONTENT]
|
147
147
|
end
|
148
148
|
|
149
149
|
def content_mime_type
|
data/lib/ddr/models/version.rb
CHANGED
@@ -24,7 +24,7 @@ module Ddr
|
|
24
24
|
end
|
25
25
|
|
26
26
|
describe "generators called" do
|
27
|
-
before { object.add_file file, path: Ddr::
|
27
|
+
before { object.add_file file, path: Ddr::Models::File::CONTENT }
|
28
28
|
context "all derivatives" do
|
29
29
|
context "not multires_image_able" do
|
30
30
|
let(:object) { ContentBearing.new }
|
@@ -85,10 +85,10 @@ module Ddr
|
|
85
85
|
describe "thumbnail" do
|
86
86
|
let(:object) { ContentBearing.create }
|
87
87
|
it "should create content in the thumbnail datastream" do
|
88
|
-
expect(object.datastreams[Ddr::
|
88
|
+
expect(object.datastreams[Ddr::Models::File::THUMBNAIL]).to_not be_present
|
89
89
|
object.derivatives.generate_derivative Ddr::Derivatives::DERIVATIVES[:thumbnail]
|
90
|
-
expect(object.datastreams[Ddr::
|
91
|
-
expect(object.datastreams[Ddr::
|
90
|
+
expect(object.datastreams[Ddr::Models::File::THUMBNAIL]).to be_present
|
91
|
+
expect(object.datastreams[Ddr::Models::File::THUMBNAIL].size).to be > 0
|
92
92
|
end
|
93
93
|
end
|
94
94
|
describe "ptif" do
|
@@ -95,7 +95,7 @@ RSpec.describe ActiveFedora::Base do
|
|
95
95
|
end
|
96
96
|
describe "#has_thumbnail?" do
|
97
97
|
let(:thumbnailable) { Thumbnailable.new }
|
98
|
-
before { allow(thumbnailable.datastreams[Ddr::
|
98
|
+
before { allow(thumbnailable.datastreams[Ddr::Models::File::THUMBNAIL]).to receive(:has_content?).and_return(true) }
|
99
99
|
it "should return true if object has a thumbnail, else false" do
|
100
100
|
expect(thumbnailable).to have_thumbnail
|
101
101
|
expect(Thumbnailable.new).not_to have_thumbnail
|
@@ -121,7 +121,7 @@ RSpec.describe ActiveFedora::Base do
|
|
121
121
|
end
|
122
122
|
describe "#has_content?" do
|
123
123
|
let(:contentable) { Contentable.new }
|
124
|
-
before { allow(contentable.datastreams[Ddr::
|
124
|
+
before { allow(contentable.datastreams[Ddr::Models::File::CONTENT]).to receive(:has_content?).and_return(true) }
|
125
125
|
it "should return true if object has content, else false" do
|
126
126
|
expect(contentable).to have_content
|
127
127
|
expect(Contentable.new).not_to have_content
|
data/spec/models/file_spec.rb
CHANGED
@@ -3,28 +3,6 @@ require 'spec_helper'
|
|
3
3
|
module Ddr::Models
|
4
4
|
RSpec.describe File do
|
5
5
|
|
6
|
-
describe "versioning" do
|
7
|
-
let(:obj) { FactoryGirl.build(:component) }
|
8
|
-
describe "on create" do
|
9
|
-
it "creates a version" do
|
10
|
-
expect { obj.save }.to change { obj.content.has_versions? }.from(false).to(true)
|
11
|
-
obj.save
|
12
|
-
expect(obj.content.versions.all.size).to eq 1
|
13
|
-
end
|
14
|
-
end
|
15
|
-
describe "on update" do
|
16
|
-
it "creates a version" do
|
17
|
-
obj.save
|
18
|
-
expect {
|
19
|
-
obj.upload fixture_file_upload("imageB.tif", "image/tiff")
|
20
|
-
obj.save
|
21
|
-
}.to change {
|
22
|
-
obj.content.versions.all.size
|
23
|
-
}.by(1)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
6
|
describe "#tempfile" do
|
29
7
|
describe "when the datastream has no content" do
|
30
8
|
it "should raise an exception" do
|
@@ -13,7 +13,7 @@ module Ddr
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
context "existing structural metadata" do
|
16
|
-
before { item.datastreams[Ddr::
|
16
|
+
before { item.datastreams[Ddr::Models::File::STRUCT_METADATA].content = simple_structure }
|
17
17
|
it "should return the structural metadata" do
|
18
18
|
expect(item.structure.to_xml).to be_equivalent_to(simple_structure)
|
19
19
|
end
|
@@ -35,7 +35,7 @@ module Ddr
|
|
35
35
|
|
36
36
|
describe "indexing" do
|
37
37
|
let(:expected_json) { multiple_struct_maps_structure_to_json }
|
38
|
-
before { item.datastreams[Ddr::
|
38
|
+
before { item.datastreams[Ddr::Models::File::STRUCT_METADATA].content = multiple_struct_maps_structure }
|
39
39
|
it "should index the JSON representation of the structure" do
|
40
40
|
indexing = item.to_solr
|
41
41
|
expect(indexing.keys).to include(Ddr::Index::Fields::STRUCT_MAPS)
|
@@ -45,4 +45,4 @@ module Ddr
|
|
45
45
|
|
46
46
|
end
|
47
47
|
end
|
48
|
-
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddr-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.beta.
|
4
|
+
version: 3.0.0.beta.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Coble
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-02-
|
12
|
+
date: 2016-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -469,8 +469,6 @@ files:
|
|
469
469
|
- lib/ddr/auth/user.rb
|
470
470
|
- lib/ddr/auth/web_auth_context.rb
|
471
471
|
- lib/ddr/datastreams.rb
|
472
|
-
- lib/ddr/datastreams/descriptive_metadata_datastream.rb
|
473
|
-
- lib/ddr/datastreams/fits_datastream.rb
|
474
472
|
- lib/ddr/derivatives.rb
|
475
473
|
- lib/ddr/derivatives/derivative.rb
|
476
474
|
- lib/ddr/derivatives/generators/generator.rb
|
@@ -604,7 +602,6 @@ files:
|
|
604
602
|
- spec/auth/web_auth_context_spec.rb
|
605
603
|
- spec/controllers/application_controller_spec.rb
|
606
604
|
- spec/controllers/users/sessions_controller_spec.rb
|
607
|
-
- spec/datastreams/fits_datastream_spec.rb
|
608
605
|
- spec/derivatives/multires_image_spec.rb
|
609
606
|
- spec/derivatives/png_generator_spec.rb
|
610
607
|
- spec/derivatives/ptif_generator_spec.rb
|
@@ -704,6 +701,7 @@ files:
|
|
704
701
|
- spec/models/file_management_spec.rb
|
705
702
|
- spec/models/file_spec.rb
|
706
703
|
- spec/models/finding_aid_spec.rb
|
704
|
+
- spec/models/fits_xml_file_spec.rb
|
707
705
|
- spec/models/has_admin_metadata_spec.rb
|
708
706
|
- spec/models/has_children_spec.rb
|
709
707
|
- spec/models/has_struct_metadata_spec.rb
|
@@ -778,7 +776,6 @@ test_files:
|
|
778
776
|
- spec/auth/web_auth_context_spec.rb
|
779
777
|
- spec/controllers/application_controller_spec.rb
|
780
778
|
- spec/controllers/users/sessions_controller_spec.rb
|
781
|
-
- spec/datastreams/fits_datastream_spec.rb
|
782
779
|
- spec/derivatives/multires_image_spec.rb
|
783
780
|
- spec/derivatives/png_generator_spec.rb
|
784
781
|
- spec/derivatives/ptif_generator_spec.rb
|
@@ -878,6 +875,7 @@ test_files:
|
|
878
875
|
- spec/models/file_management_spec.rb
|
879
876
|
- spec/models/file_spec.rb
|
880
877
|
- spec/models/finding_aid_spec.rb
|
878
|
+
- spec/models/fits_xml_file_spec.rb
|
881
879
|
- spec/models/has_admin_metadata_spec.rb
|
882
880
|
- spec/models/has_children_spec.rb
|
883
881
|
- spec/models/has_struct_metadata_spec.rb
|
@@ -1,43 +0,0 @@
|
|
1
|
-
module Ddr
|
2
|
-
module Datastreams
|
3
|
-
class DescriptiveMetadataDatastream < MetadataDatastream
|
4
|
-
|
5
|
-
class_attribute :vocabularies
|
6
|
-
self.vocabularies = [RDF::DC, Ddr::Vocab::DukeTerms].freeze
|
7
|
-
|
8
|
-
def self.default_attributes
|
9
|
-
super.merge(:mimeType => 'application/n-triples')
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.indexers
|
13
|
-
# Add term_name => [indexers] mapping to customize indexing
|
14
|
-
{}
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.default_indexers
|
18
|
-
[:stored_searchable]
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.indexers_for(term_name)
|
22
|
-
indexers.fetch(term_name, default_indexers)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Add terms from the vocabularies as properties
|
26
|
-
vocabularies.each do |vocab|
|
27
|
-
Ddr::Vocab::Vocabulary.property_terms(vocab).each do |term|
|
28
|
-
term_name = Ddr::Vocab::Vocabulary.term_name(vocab, term)
|
29
|
-
property term_name, predicate: term do |index|
|
30
|
-
index.as *indexers_for(term_name)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Override ActiveFedora::Rdf::Indexing#apply_prefix(name) to not
|
36
|
-
# prepend the index field name with a string based on the datastream id.
|
37
|
-
def apply_prefix(name)
|
38
|
-
name
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
@@ -1,85 +0,0 @@
|
|
1
|
-
module Ddr::Datastreams
|
2
|
-
class FitsDatastream < ActiveFedora::OmDatastream
|
3
|
-
extend AutoVersion
|
4
|
-
|
5
|
-
FITS_XMLNS = "http://hul.harvard.edu/ois/xml/ns/fits/fits_output".freeze
|
6
|
-
FITS_SCHEMA = "http://hul.harvard.edu/ois/xml/xsd/fits/fits_output.xsd".freeze
|
7
|
-
|
8
|
-
EXIFTOOL = "Exiftool"
|
9
|
-
|
10
|
-
set_terminology do |t|
|
11
|
-
t.root(path: "fits",
|
12
|
-
xmlns: FITS_XMLNS,
|
13
|
-
schema: FITS_SCHEMA)
|
14
|
-
t.version(path: {attribute: "version"})
|
15
|
-
t.timestamp(path: {attribute: "timestamp"})
|
16
|
-
t.identification {
|
17
|
-
t.identity {
|
18
|
-
t.mimetype(path: {attribute: "mimetype"})
|
19
|
-
t.format_label(path: {attribute: "format"})
|
20
|
-
t.version
|
21
|
-
t.externalIdentifier
|
22
|
-
t.pronom_identifier(path: "externalIdentifier", attributes: {type: "puid"})
|
23
|
-
}
|
24
|
-
}
|
25
|
-
t.fileinfo {
|
26
|
-
t.size
|
27
|
-
t.creatingApplicationName
|
28
|
-
t.created
|
29
|
-
t.lastmodified
|
30
|
-
}
|
31
|
-
t.filestatus {
|
32
|
-
t.valid
|
33
|
-
t.well_formed(path: "well-formed")
|
34
|
-
}
|
35
|
-
t.metadata {
|
36
|
-
t.image {
|
37
|
-
t.imageWidth
|
38
|
-
t.imageHeight
|
39
|
-
t.colorSpace
|
40
|
-
}
|
41
|
-
t.document {
|
42
|
-
# TODO - configure to get from Tika?
|
43
|
-
# t.encoding
|
44
|
-
}
|
45
|
-
t.text
|
46
|
-
t.audio
|
47
|
-
t.video
|
48
|
-
}
|
49
|
-
|
50
|
-
## proxy terms
|
51
|
-
# identification / identity
|
52
|
-
t.media_type proxy: [:identification, :identity, :mimetype]
|
53
|
-
t.format_label proxy: [:identification, :identity, :format_label]
|
54
|
-
t.format_version proxy: [:identification, :identity, :version]
|
55
|
-
t.pronom_identifier proxy: [:identification, :identity, :pronom_identifier]
|
56
|
-
# filestatus
|
57
|
-
t.valid proxy: [:filestatus, :valid]
|
58
|
-
t.well_formed proxy: [:filestatus, :well_formed]
|
59
|
-
# fileinfo
|
60
|
-
t.created proxy: [:fileinfo, :created]
|
61
|
-
t.creating_application proxy: [:fileinfo, :creatingApplicationName]
|
62
|
-
t.extent proxy: [:fileinfo, :size]
|
63
|
-
# image metadata
|
64
|
-
t.image_width proxy: [:metadata, :image, :imageWidth]
|
65
|
-
t.image_height proxy: [:metadata, :image, :imageHeight]
|
66
|
-
t.color_space proxy: [:metadata, :image, :colorSpace]
|
67
|
-
end
|
68
|
-
|
69
|
-
def self.xml_template
|
70
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
71
|
-
xml.fits("xmlns"=>FITS_XMLNS,
|
72
|
-
"xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
|
73
|
-
"xsi:schemaLocation"=>"http://hul.harvard.edu/ois/xml/ns/fits/fits_output http://hul.harvard.edu/ois/xml/xsd/fits/fits_output.xsd")
|
74
|
-
end
|
75
|
-
builder.doc
|
76
|
-
end
|
77
|
-
|
78
|
-
def modified
|
79
|
-
ng_xml
|
80
|
-
.xpath("//fits:fileinfo/fits:lastmodified[@toolname != '#{EXIFTOOL}']", fits: FITS_XMLNS)
|
81
|
-
.map(&:text)
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
85
|
-
end
|