ddr-models 2.7.2 → 2.7.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ddr/index/fields.rb +5 -0
- data/lib/ddr/models/indexing.rb +4 -1
- data/lib/ddr/models/structure.rb +5 -0
- data/lib/ddr/models/version.rb +1 -1
- data/spec/models/has_struct_metadata_spec.rb +21 -1
- data/spec/models/structure_spec.rb +1 -1
- data/spec/support/structural_metadata_helper.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b40e42bff6d22b301a1b06925cf23a5583bcb727
|
4
|
+
data.tar.gz: d82f30c7c237c53bb375c8f307ce50420059bbc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b2a22ff451d8c58a36b31ab245b9e5b3570e8e994eaca1a5e8f91698ff1c1111767175cd6d6c5bc011662aea234ac1bd88a4a2c96abbc21374ffc896aeee530
|
7
|
+
data.tar.gz: ae332fd91309fdf16e90ed94c3de73f8fa225cdc47404f32ec92f61dc1121f5c8f9d1f9737ed0e3851d975c8cd01a2fc317ed983e5c638a1883205bdad7847f8
|
data/lib/ddr/index/fields.rb
CHANGED
@@ -89,7 +89,12 @@ module Ddr::Index
|
|
89
89
|
SERIES_FACET = Field.new :series_facet, :facetable
|
90
90
|
SETTING_FACET = Field.new :setting_facet, :facetable
|
91
91
|
SPATIAL_FACET = Field.new :spatial_facet, :facetable
|
92
|
+
# STRUCT is interim index field to facilitate conversion of the STRUCTURE index field from
|
93
|
+
# stored and indexed to just stored. The STRUCTURE field will eventually be pointed to this
|
94
|
+
# Field definition.
|
95
|
+
STRUCT = Field.new :structure, solr_name: "structure_ss"
|
92
96
|
STRUCTURE = Field.new :structure, :stored_sortable
|
97
|
+
STRUCTURE_SOURCE = Field.new :structure_source, :stored_sortable
|
93
98
|
SUBJECT_FACET = Field.new :subject_facet, :facetable
|
94
99
|
SUBSERIES_FACET = Field.new :subseries_facet, :facetable
|
95
100
|
TECHMD_COLOR_SPACE = Field.new :techmd_color_space, :symbol
|
data/lib/ddr/models/indexing.rb
CHANGED
@@ -103,7 +103,10 @@ module Ddr::Models
|
|
103
103
|
fields[MULTIRES_IMAGE_FILE_PATH] = multires_image_file_path
|
104
104
|
end
|
105
105
|
if has_struct_metadata?
|
106
|
-
|
106
|
+
# STRUCT is an interim index field to facilitate conversion of STRUCTURE field definition.
|
107
|
+
fields[STRUCT] = fields[STRUCTURE] = structure.dereferenced_structure.to_json
|
108
|
+
fields[STRUCTURE_SOURCE] = structure.repository_maintained? ? Ddr::Models::Structure::REPOSITORY_MAINTAINED
|
109
|
+
: Ddr::Models::Structure::EXTERNALLY_PROVIDED
|
107
110
|
end
|
108
111
|
if has_extracted_text?
|
109
112
|
fields[EXTRACTED_TEXT] = extractedText.content
|
data/lib/ddr/models/structure.rb
CHANGED
@@ -4,6 +4,11 @@ module Ddr::Models
|
|
4
4
|
#
|
5
5
|
class Structure < SimpleDelegator
|
6
6
|
|
7
|
+
# Indicates whether the structure is externally provided or maintained by the repository itself (i.e., is the
|
8
|
+
# default structure for the object).
|
9
|
+
EXTERNALLY_PROVIDED = 'provided'.freeze
|
10
|
+
REPOSITORY_MAINTAINED = 'repository'.freeze
|
11
|
+
|
7
12
|
TYPE_DEFAULT = 'default'.freeze
|
8
13
|
|
9
14
|
# Based on the PCDM Extension 'Use' ontology -- https://github.com/duraspace/pcdm/blob/master/pcdm-ext/use.rdf
|
data/lib/ddr/models/version.rb
CHANGED
@@ -33,9 +33,29 @@ module Ddr::Models
|
|
33
33
|
end
|
34
34
|
it "should index the JSON representation of the structures" do
|
35
35
|
indexing = item.to_solr
|
36
|
-
expect(indexing
|
36
|
+
expect(indexing[Ddr::Index::Fields::STRUCT]).to eq(expected_json)
|
37
37
|
expect(indexing[Ddr::Index::Fields::STRUCTURE]).to eq(expected_json)
|
38
38
|
end
|
39
|
+
describe "structure source" do
|
40
|
+
describe "repository maintained" do
|
41
|
+
before do
|
42
|
+
item.datastreams[Ddr::Datastreams::STRUCT_METADATA].content = simple_structure_xml
|
43
|
+
end
|
44
|
+
it "should index the structure source as repository maintained" do
|
45
|
+
indexing = item.to_solr
|
46
|
+
expect(indexing[Ddr::Index::Fields::STRUCTURE_SOURCE]).to eq(Ddr::Models::Structure::REPOSITORY_MAINTAINED)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
describe "externally provided" do
|
50
|
+
before do
|
51
|
+
item.datastreams[Ddr::Datastreams::STRUCT_METADATA].content = nested_structure_xml
|
52
|
+
end
|
53
|
+
it "should index the structure source as repository maintained" do
|
54
|
+
indexing = item.to_solr
|
55
|
+
expect(indexing[Ddr::Index::Fields::STRUCTURE_SOURCE]).to eq(Ddr::Models::Structure::EXTERNALLY_PROVIDED)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
39
59
|
end
|
40
60
|
|
41
61
|
end
|
@@ -28,7 +28,7 @@ module Ddr::Models
|
|
28
28
|
describe "structure has a metsHdr" do
|
29
29
|
let(:structure) { FactoryGirl.build(:simple_structure) }
|
30
30
|
it "returns the creator" do
|
31
|
-
expect(structure.creator).to eq(
|
31
|
+
expect(structure.creator).to eq(Ddr::Models::Structures::Agent::NAME_REPOSITORY_DEFAULT)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
describe "structure does not have a metsHdr" do
|
@@ -29,7 +29,7 @@ def simple_structure_xml
|
|
29
29
|
<mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink">
|
30
30
|
<metsHdr>
|
31
31
|
<agent ROLE="CREATOR">
|
32
|
-
<name
|
32
|
+
<name>#{Ddr::Models::Structures::Agent::NAME_REPOSITORY_DEFAULT}</name>
|
33
33
|
</agent>
|
34
34
|
</metsHdr>
|
35
35
|
<fileSec>
|
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: 2.7.
|
4
|
+
version: 2.7.3
|
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: 2017-04-
|
12
|
+
date: 2017-04-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -780,7 +780,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
780
780
|
version: '0'
|
781
781
|
requirements: []
|
782
782
|
rubyforge_project:
|
783
|
-
rubygems_version: 2.6.
|
783
|
+
rubygems_version: 2.6.11
|
784
784
|
signing_key:
|
785
785
|
specification_version: 4
|
786
786
|
summary: Models used in the Duke Digital Repository
|