dor-services 4.22.3 → 4.22.4

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.
Files changed (71) hide show
  1. checksums.yaml +8 -8
  2. data/bin/dor-indexer +19 -20
  3. data/bin/dor-indexerd +2 -3
  4. data/config/certs/robots-dor-dev.crt +29 -0
  5. data/config/certs/robots-dor-dev.key +27 -0
  6. data/config/dev_console_env.rb +77 -0
  7. data/lib/dor-services.rb +3 -3
  8. data/lib/dor/config.rb +15 -15
  9. data/lib/dor/datastreams/administrative_metadata_ds.rb +5 -5
  10. data/lib/dor/datastreams/content_metadata_ds.rb +181 -225
  11. data/lib/dor/datastreams/datastream_spec_solrizer.rb +1 -1
  12. data/lib/dor/datastreams/default_object_rights_ds.rb +8 -10
  13. data/lib/dor/datastreams/desc_metadata_ds.rb +35 -34
  14. data/lib/dor/datastreams/embargo_metadata_ds.rb +7 -7
  15. data/lib/dor/datastreams/events_ds.rb +11 -11
  16. data/lib/dor/datastreams/geo_metadata_ds.rb +86 -86
  17. data/lib/dor/datastreams/identity_metadata_ds.rb +19 -19
  18. data/lib/dor/datastreams/role_metadata_ds.rb +3 -3
  19. data/lib/dor/datastreams/simple_dublin_core_ds.rb +13 -13
  20. data/lib/dor/datastreams/version_metadata_ds.rb +5 -5
  21. data/lib/dor/datastreams/workflow_definition_ds.rb +21 -21
  22. data/lib/dor/migrations/identifiable/assert_adminPolicy.rb +1 -1
  23. data/lib/dor/migrations/identifiable/fix_model_assertions.rb +1 -1
  24. data/lib/dor/migrations/identifiable/record_remediation.rb +2 -2
  25. data/lib/dor/migrations/identifiable/uriify_augmented_contentlocation_refs.rb +1 -1
  26. data/lib/dor/migrations/identifiable/uriify_contentlocation_refs.rb +1 -1
  27. data/lib/dor/migrations/processable/unify_workflows.rb +4 -4
  28. data/lib/dor/migrations/versionable/add_missing_version_md.rb +1 -1
  29. data/lib/dor/models/admin_policy_object.rb +1 -1
  30. data/lib/dor/models/assembleable.rb +5 -5
  31. data/lib/dor/models/contentable.rb +27 -27
  32. data/lib/dor/models/describable.rb +168 -179
  33. data/lib/dor/models/discoverable.rb +13 -13
  34. data/lib/dor/models/editable.rb +55 -55
  35. data/lib/dor/models/embargoable.rb +26 -26
  36. data/lib/dor/models/eventable.rb +3 -3
  37. data/lib/dor/models/geoable.rb +8 -8
  38. data/lib/dor/models/governable.rb +14 -14
  39. data/lib/dor/models/identifiable.rb +117 -143
  40. data/lib/dor/models/item.rb +2 -2
  41. data/lib/dor/models/itemizable.rb +9 -9
  42. data/lib/dor/models/presentable.rb +8 -8
  43. data/lib/dor/models/preservable.rb +4 -4
  44. data/lib/dor/models/processable.rb +22 -23
  45. data/lib/dor/models/releaseable.rb +26 -26
  46. data/lib/dor/models/shelvable.rb +14 -14
  47. data/lib/dor/models/upgradable.rb +13 -13
  48. data/lib/dor/models/versionable.rb +2 -2
  49. data/lib/dor/models/workflow_object.rb +4 -4
  50. data/lib/dor/services/cleanup_reset_service.rb +27 -27
  51. data/lib/dor/services/cleanup_service.rb +4 -7
  52. data/lib/dor/services/digital_stacks_service.rb +10 -10
  53. data/lib/dor/services/merge_service.rb +1 -1
  54. data/lib/dor/services/metadata_handlers/mdtoolkit_handler.rb +2 -2
  55. data/lib/dor/services/metadata_service.rb +20 -20
  56. data/lib/dor/services/registration_service.rb +27 -27
  57. data/lib/dor/services/reset_workspace_service.rb +15 -15
  58. data/lib/dor/services/sdr_ingest_service.rb +6 -6
  59. data/lib/dor/services/search_service.rb +2 -2
  60. data/lib/dor/services/suri_service.rb +5 -5
  61. data/lib/dor/services/technical_metadata_service.rb +2 -3
  62. data/lib/dor/utils/ng_tidy.rb +9 -9
  63. data/lib/dor/utils/predicate_patch.rb +1 -1
  64. data/lib/dor/utils/solr_doc_helper.rb +2 -2
  65. data/lib/dor/version.rb +1 -1
  66. data/lib/dor/workflow/document.rb +19 -19
  67. data/lib/dor/workflow/graph.rb +36 -36
  68. data/lib/dor/workflow/process.rb +12 -12
  69. data/lib/tasks/dor.rake +1 -1
  70. data/lib/tasks/rdoc.rake +3 -3
  71. metadata +6 -3
@@ -6,8 +6,8 @@ module Dor
6
6
  include Upgradable
7
7
 
8
8
  included do
9
- has_metadata :name => "DC", :type => SimpleDublinCoreDs, :label => 'Dublin Core Record for self object'
10
- has_metadata :name => "identityMetadata", :type => Dor::IdentityMetadataDS, :label => 'Identity Metadata'
9
+ has_metadata :name => 'DC', :type => SimpleDublinCoreDs, :label => 'Dublin Core Record for self object'
10
+ has_metadata :name => 'identityMetadata', :type => Dor::IdentityMetadataDS, :label => 'Identity Metadata'
11
11
  end
12
12
 
13
13
  module ClassMethods
@@ -18,24 +18,22 @@ module Dor
18
18
  end
19
19
  end
20
20
 
21
- def initialize attrs={}
21
+ def initialize attrs = {}
22
22
  if Dor::Config.suri.mint_ids
23
- unless attrs[:pid]
24
- attrs = attrs.merge!({:pid=>Dor::SuriService.mint_id, :new_object => true})
25
- end
23
+ attrs = attrs.merge!({:pid => Dor::SuriService.mint_id, :new_object => true}) unless attrs[:pid]
26
24
  end
27
25
  super
28
26
  end
29
27
 
30
28
  # helper method to get the tags as an array
31
29
  def tags
32
- self.identityMetadata.tag
30
+ identityMetadata.tag
33
31
  end
34
-
32
+
35
33
  # helper method to get just the content type tag
36
34
  def content_type_tag
37
- content_tag=tags.select {|tag| tag.include?('Process : Content Type')}
38
- content_tag.size == 1 ? content_tag[0].split(':').last.strip : ""
35
+ content_tag = tags.select {|tag| tag.include?('Process : Content Type')}
36
+ content_tag.size == 1 ? content_tag[0].split(':').last.strip : ''
39
37
  end
40
38
 
41
39
  # Syntactic sugar for identifying applied DOR Concerns
@@ -53,138 +51,131 @@ module Dor
53
51
  end
54
52
  end
55
53
 
56
- @@collection_hash={}
57
- @@apo_hash={}
58
- @@hydrus_apo_hash={}
59
- @@hydrus_collection_hash={}
60
- def to_solr(solr_doc=Hash.new, *args)
61
- self.assert_content_model
54
+ @@collection_hash = {}
55
+ @@apo_hash = {}
56
+ @@hydrus_apo_hash = {}
57
+ @@hydrus_collection_hash = {}
58
+ def to_solr(solr_doc = {}, *args)
59
+ assert_content_model
62
60
  super(solr_doc)
63
61
  solr_doc[Dor::INDEX_VERSION_FIELD] = Dor::VERSION
64
- solr_doc[solr_name('indexed_at',:date)] = Time.now.utc.xmlschema
62
+ solr_doc[solr_name('indexed_at', :date)] = Time.now.utc.xmlschema
65
63
  add_solr_value(solr_doc, 'indexed_day', Time.now.beginning_of_day.utc.xmlschema, :string, [:searchable, :facetable])
66
64
  datastreams.values.each do |ds|
67
- unless ds.new?
68
- add_solr_value(solr_doc,'ds_specs',ds.datastream_spec_string,:string,[:displayable])
69
- end
65
+ next if ds.new?
66
+ add_solr_value(solr_doc, 'ds_specs', ds.datastream_spec_string, :string, [:displayable])
70
67
  end
71
- add_solr_value(solr_doc, 'title_sort', self.label, :string, [:sortable])
72
- rels_doc = Nokogiri::XML(self.datastreams['RELS-EXT'].content)
73
- apos=rels_doc.search('//rdf:RDF/rdf:Description/hydra:isGovernedBy','hydra' => 'http://projecthydra.org/ns/relations#', 'fedora' => 'info:fedora/fedora-system:def/relations-external#', 'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' )
68
+ add_solr_value(solr_doc, 'title_sort', label, :string, [:sortable])
69
+ rels_doc = Nokogiri::XML(datastreams['RELS-EXT'].content)
70
+ apos = rels_doc.search('//rdf:RDF/rdf:Description/hydra:isGovernedBy', 'hydra' => 'http://projecthydra.org/ns/relations#', 'fedora' => 'info:fedora/fedora-system:def/relations-external#', 'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' )
74
71
  apos.each do |apo_node|
75
- druid=apo_node['rdf:resource']
76
- if druid
77
- druid=druid.gsub('info:fedora/','')
78
- if @@apo_hash.has_key? druid or @@hydrus_apo_hash.has_key? druid
79
- add_solr_value(solr_doc, "hydrus_apo_title", @@hydrus_apo_hash[druid], :string, [:searchable, :facetable]) if @@hydrus_apo_hash.has_key? druid
80
- add_solr_value(solr_doc, "apo_title", @@apo_hash[druid] , :string, [:searchable, :facetable]) if @@apo_hash.has_key? druid
81
- else
82
- begin
83
- apo_object=Dor.find(druid)
84
- if apo_object.tags.include? 'Project : Hydrus'
85
- add_solr_value(solr_doc, "hydrus_apo_title", apo_object.label, :string, [:searchable, :facetable])
86
- @@hydrus_apo_hash[druid]=apo_object.label
87
- else
88
- add_solr_value(solr_doc, "apo_title", apo_object.label, :string, [:searchable, :facetable])
89
- @@apo_hash[druid]=apo_object.label
90
- end
91
- rescue
92
- add_solr_value(solr_doc, "apo_title", druid, :string, [:searchable, :facetable])
72
+ druid = apo_node['rdf:resource']
73
+ next unless druid
74
+ druid = druid.gsub('info:fedora/','')
75
+ if @@apo_hash.has_key?(druid) || @@hydrus_apo_hash.has_key?(druid)
76
+ add_solr_value(solr_doc, 'hydrus_apo_title', @@hydrus_apo_hash[druid], :string, [:searchable, :facetable]) if @@hydrus_apo_hash.has_key? druid
77
+ add_solr_value(solr_doc, 'apo_title', @@apo_hash[druid] , :string, [:searchable, :facetable]) if @@apo_hash.has_key? druid
78
+ else
79
+ begin
80
+ apo_object = Dor.find(druid)
81
+ if apo_object.tags.include? 'Project : Hydrus'
82
+ add_solr_value(solr_doc, 'hydrus_apo_title', apo_object.label, :string, [:searchable, :facetable])
83
+ @@hydrus_apo_hash[druid] = apo_object.label
84
+ else
85
+ add_solr_value(solr_doc, 'apo_title', apo_object.label, :string, [:searchable, :facetable])
86
+ @@apo_hash[druid] = apo_object.label
93
87
  end
88
+ rescue
89
+ add_solr_value(solr_doc, 'apo_title', druid, :string, [:searchable, :facetable])
94
90
  end
95
91
  end
96
92
  end
97
- collections=rels_doc.search('//rdf:RDF/rdf:Description/fedora:isMemberOfCollection','fedora' => 'info:fedora/fedora-system:def/relations-external#', 'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' )
93
+ collections = rels_doc.search('//rdf:RDF/rdf:Description/fedora:isMemberOfCollection', 'fedora' => 'info:fedora/fedora-system:def/relations-external#', 'rdf' => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')
98
94
  collections.each do |collection_node|
99
- druid=collection_node['rdf:resource']
100
- if(druid)
101
- druid=druid.gsub('info:fedora/','')
102
- if @@collection_hash.has_key? druid or @@hydrus_collection_hash.has_key? druid
103
- add_solr_value(solr_doc, "hydrus_collection_title", @@hydrus_collection_hash[druid], :string, [:searchable, :facetable]) if @@hydrus_collection_hash.has_key? druid
104
- add_solr_value(solr_doc, "collection_title", @@collection_hash[druid], :string, [:searchable, :facetable]) if @@collection_hash.has_key? druid
105
- else
106
- begin
107
- collection_object=Dor.find(druid)
108
- if collection_object.tags.include? 'Project : Hydrus'
109
- add_solr_value(solr_doc, "hydrus_collection_title", collection_object.label, :string, [:searchable, :facetable])
110
- @@hydrus_collection_hash[druid]=collection_object.label
111
- else
112
- add_solr_value(solr_doc, "collection_title", collection_object.label, :string, [:searchable, :facetable])
113
- @@collection_hash[druid]=collection_object.label
114
- end
115
- rescue
116
- add_solr_value(solr_doc, "collection_title", druid, :string, [:searchable, :facetable])
95
+ druid = collection_node['rdf:resource']
96
+ next unless druid
97
+ druid = druid.gsub('info:fedora/', '')
98
+ if @@collection_hash.has_key?(druid) || @@hydrus_collection_hash.has_key?(druid)
99
+ add_solr_value(solr_doc, 'hydrus_collection_title', @@hydrus_collection_hash[druid], :string, [:searchable, :facetable]) if @@hydrus_collection_hash.has_key? druid
100
+ add_solr_value(solr_doc, 'collection_title', @@collection_hash[druid], :string, [:searchable, :facetable]) if @@collection_hash.has_key? druid
101
+ else
102
+ begin
103
+ collection_object = Dor.find(druid)
104
+ if collection_object.tags.include? 'Project : Hydrus'
105
+ add_solr_value(solr_doc, 'hydrus_collection_title', collection_object.label, :string, [:searchable, :facetable])
106
+ @@hydrus_collection_hash[druid] = collection_object.label
107
+ else
108
+ add_solr_value(solr_doc, 'collection_title', collection_object.label, :string, [:searchable, :facetable])
109
+ @@collection_hash[druid] = collection_object.label
117
110
  end
111
+ rescue
112
+ add_solr_value(solr_doc, 'collection_title', druid, :string, [:searchable, :facetable])
118
113
  end
119
114
  end
120
115
  end
121
116
  # Fix for ActiveFedora 3.3 to ensure all date fields are properly formatted as UTC XML Schema datetime strings
122
- solr_doc.each_pair { |k,v|
123
- if k =~ /(_dt|_date)$/
124
- if v.is_a?(Array)
125
- solr_doc[k] = v.collect { |t| Time.parse(t.to_s).utc.xmlschema }
126
- else
127
- solr_doc[k] = Time.parse(v.to_s).utc.xmlschema
128
- end
117
+ solr_doc.each_pair { |k, v|
118
+ next unless k =~ /(_dt|_date)$/
119
+ if v.is_a?(Array)
120
+ solr_doc[k] = v.collect { |t| Time.parse(t.to_s).utc.xmlschema }
121
+ else
122
+ solr_doc[k] = Time.parse(v.to_s).utc.xmlschema
129
123
  end
130
124
  }
131
-
132
125
  solr_doc
133
126
  end
127
+
134
128
  def set_source_id(source_id)
135
- self.identityMetadata.sourceId = source_id
129
+ identityMetadata.sourceId = source_id
136
130
  end
137
131
 
138
- def add_other_Id(type,val)
139
- if self.identityMetadata.otherId(type).length>0
132
+ def add_other_Id(type, val)
133
+ if identityMetadata.otherId(type).length > 0
140
134
  raise 'There is an existing entry for '+node_name+', consider using update_other_identifier.'
141
135
  end
142
- identity_metadata_ds = self.identityMetadata
136
+ identity_metadata_ds = identityMetadata
143
137
  identity_metadata_ds.add_otherId(type+':'+val)
144
138
  end
145
139
 
146
- def update_other_Id(type,new_val, val=nil)
147
- identity_metadata_ds = self.identityMetadata
148
- ds_xml=identity_metadata_ds.ng_xml
149
- #split the thing they sent in to find the node name
150
- updated=false
140
+ def update_other_Id(type, new_val, val = nil)
141
+ identity_metadata_ds = identityMetadata
142
+ ds_xml = identity_metadata_ds.ng_xml
143
+ # split the thing they sent in to find the node name
144
+ updated = false
151
145
  ds_xml.search('//otherId[@name=\''+type+'\']').each do |node|
152
- if node.content==val or val==nil
153
- node.content=new_val
154
- updated=true
155
- end
146
+ next unless node.content == val || val.nil?
147
+ node.content = new_val
148
+ updated = true
156
149
  end
157
- return updated
150
+ updated
158
151
  end
159
152
 
160
- def remove_other_Id(type,val=nil)
161
- ds_xml=self.identityMetadata.ng_xml
162
- #split the thing they sent in to find the node name
163
- removed=false
164
-
153
+ def remove_other_Id(type, val = nil)
154
+ ds_xml = identityMetadata.ng_xml
155
+ # split the thing they sent in to find the node name
156
+ removed = false
165
157
  ds_xml.search('//otherId[@name=\''+type+'\']').each do |node|
166
- if node.content===val or val==nil
167
- node.remove
168
- removed=true
169
- end
158
+ next unless node.content === val || val.nil?
159
+ node.remove
160
+ removed = true
170
161
  end
171
- return removed
162
+ removed
172
163
  end
173
164
 
174
165
  # turns a tag string into an array with one element per tag part.
175
166
  # split on ":", disregard leading and trailing whitespace on tokens.
176
167
  def split_tag_to_arr(tag_str)
177
- return tag_str.split(":").map {|str| str.strip}
168
+ tag_str.split(':').map {|str| str.strip}
178
169
  end
179
170
 
180
171
  # turn a tag array back into a tag string with a standard format
181
172
  def normalize_tag_arr(tag_arr)
182
- return tag_arr.join(' : ')
173
+ tag_arr.join(' : ')
183
174
  end
184
175
 
185
176
  # take a tag string and return a normalized tag string
186
177
  def normalize_tag(tag_str)
187
- return normalize_tag_arr(split_tag_to_arr(tag_str))
178
+ normalize_tag_arr(split_tag_to_arr(tag_str))
188
179
  end
189
180
 
190
181
  # take a proposed tag string and a list of the existing tags for the object being edited. if
@@ -192,49 +183,34 @@ module Dor
192
183
  # explanatory message.
193
184
  def validate_and_normalize_tag(tag_str, existing_tag_list)
194
185
  tag_arr = validate_tag_format(tag_str)
195
-
196
- # note that the comparison for duplicate tags is case-insensitive, but we don't change case as part of the normalized version
186
+ # note that the comparison for duplicate tags is case-insensitive, but we don't change case as part of the normalized version
197
187
  # we return, because we want to preserve the user's intended case.
198
188
  normalized_tag = normalize_tag_arr(tag_arr)
199
189
  dupe_existing_tag = existing_tag_list.detect { |existing_tag| normalize_tag(existing_tag).downcase == normalized_tag.downcase }
200
- if dupe_existing_tag
201
- raise "An existing tag (#{dupe_existing_tag}) is the same, consider using update_tag?"
202
- end
203
-
204
- return normalized_tag
190
+ raise "An existing tag (#{dupe_existing_tag}) is the same, consider using update_tag?" if dupe_existing_tag
191
+ normalized_tag
205
192
  end
206
-
207
- #Ensure that an administrative tag meets the proper mininum format
208
- #
209
- #@params tag_str [String] the tag
210
- #
211
- #@return [Array] the tag split into an array via ':'
193
+
194
+ # Ensure that an administrative tag meets the proper mininum format
195
+ # @param [String] tag_str the tag
196
+ # @return [Array] the tag split into an array via ':'
212
197
  def validate_tag_format(tag_str)
213
198
  tag_arr = split_tag_to_arr(tag_str)
214
-
215
- if tag_arr.length < 2
216
- raise "Invalid tag structure: tag '#{tag_str}' must have at least 2 elements"
217
- end
218
-
219
- if tag_arr.detect {|str| str.empty?}
220
- raise "Invalid tag structure: tag '#{tag_str}' contains empty elements"
221
- end
222
-
223
- return tag_arr
224
-
199
+ raise "Invalid tag structure: tag '#{tag_str}' must have at least 2 elements" if tag_arr.length < 2
200
+ raise "Invalid tag structure: tag '#{tag_str}' contains empty elements" if tag_arr.detect {|str| str.empty?}
201
+ tag_arr
225
202
  end
226
-
227
- #Add an administrative tag to an item, you will need to seperately save the item to write it to fedora
228
- #
229
- #@param tag [string] The tag you wish to add
203
+
204
+ # Add an administrative tag to an item, you will need to seperately save the item to write it to fedora
205
+ # @param tag [string] The tag you wish to add
230
206
  def add_tag(tag)
231
- identity_metadata_ds = self.identityMetadata
232
- normalized_tag = validate_and_normalize_tag(tag, identity_metadata_ds.tags)
233
- identity_metadata_ds.add_value(:tag, normalized_tag)
207
+ identity_metadata_ds = identityMetadata
208
+ normalized_tag = validate_and_normalize_tag(tag, identity_metadata_ds.tags)
209
+ identity_metadata_ds.add_value(:tag, normalized_tag)
234
210
  end
235
-
211
+
236
212
  def remove_tag(tag)
237
- identity_metadata_ds = self.identityMetadata
213
+ identity_metadata_ds = identityMetadata
238
214
  ds_xml = identity_metadata_ds.ng_xml
239
215
  removed = false
240
216
  ds_xml.search('//tag').each do |node|
@@ -243,32 +219,30 @@ module Dor
243
219
  removed = true
244
220
  end
245
221
  end
246
- return removed
222
+ removed
247
223
  end
248
-
249
- #Removes all displayTypes from an item in preparation of adding a new display type
250
- #
251
- #@return Boolean True if displayTypes were removed, False if no displayTypes were removed
224
+
225
+ # Removes all displayTypes from an item in preparation of adding a new display type
226
+ # @return Boolean True if displayTypes were removed, False if no displayTypes were removed
252
227
  def remove_displayTypes
253
228
  removed = false
254
- self.identityMetadata.ng_xml.search('//displayType').each do |node|
255
- node.remove
256
- removed = true
229
+ identityMetadata.ng_xml.search('//displayType').each do |node|
230
+ node.remove
231
+ removed = true
257
232
  end
258
- return removed
233
+ removed
259
234
  end
260
235
 
261
236
  def update_tag(old_tag, new_tag)
262
- identity_metadata_ds = self.identityMetadata
237
+ identity_metadata_ds = identityMetadata
263
238
  ds_xml = identity_metadata_ds.ng_xml
264
239
  updated = false
265
240
  ds_xml.search('//tag').each do |node|
266
- if normalize_tag(node.content) == normalize_tag(old_tag)
267
- node.content = normalize_tag(new_tag)
268
- updated = true
269
- end
241
+ next unless normalize_tag(node.content) == normalize_tag(old_tag)
242
+ node.content = normalize_tag(new_tag)
243
+ updated = true
270
244
  end
271
- return updated
245
+ updated
272
246
  end
273
247
  end
274
248
  end
@@ -1,7 +1,7 @@
1
1
  module Dor
2
2
  module BasicItem
3
3
  extend ActiveSupport::Concern
4
-
4
+
5
5
  include Identifiable
6
6
  include Processable
7
7
  include Governable
@@ -17,7 +17,7 @@ module Dor
17
17
  include Geoable
18
18
  include Releaseable
19
19
  end
20
-
20
+
21
21
  class Abstract < ::ActiveFedora::Base
22
22
  include Identifiable
23
23
  end
@@ -8,20 +8,20 @@ module Dor
8
8
  included do
9
9
  has_metadata :name => "contentMetadata", :type => Dor::ContentMetadataDS, :label => 'Content Metadata', :control_group => 'M'
10
10
  end
11
-
11
+
12
12
  DIFF_FILENAME = 'cm_inv_diff'
13
13
  DIFF_QUERY = DIFF_FILENAME.gsub('_', '-')
14
14
 
15
15
  # Deletes all cm_inv_diff files in the workspace for the Item
16
16
  def clear_diff_cache
17
17
  if Dor::Config.stacks.local_workspace_root.nil?
18
- raise ArgumentError, 'Missing Dor::Config.stacks.local_workspace_root'
18
+ raise ArgumentError, 'Missing Dor::Config.stacks.local_workspace_root'
19
19
  end
20
- druid = DruidTools::Druid.new(self.pid, Dor::Config.stacks.local_workspace_root)
20
+ druid = DruidTools::Druid.new(pid, Dor::Config.stacks.local_workspace_root)
21
21
  diff_pattern = File.join(druid.temp_dir, DIFF_FILENAME + '.*')
22
22
  FileUtils.rm_f Dir.glob(diff_pattern)
23
23
  end
24
-
24
+
25
25
  # Retrieves file difference manifest for contentMetadata from SDR
26
26
  #
27
27
  # @param [String] subset keyword for file attributes :shelve, :preserve, :publish. Default is :all.
@@ -29,7 +29,7 @@ module Dor
29
29
  # @return [String] XML contents of cm_inv_diff manifest
30
30
  def get_content_diff(subset = :all, version = nil)
31
31
  if Dor::Config.stacks.local_workspace_root.nil?
32
- raise Dor::ParameterError, 'Missing Dor::Config.stacks.local_workspace_root'
32
+ raise Dor::ParameterError, 'Missing Dor::Config.stacks.local_workspace_root'
33
33
  end
34
34
  unless %w{all shelve preserve publish}.include?(subset.to_s)
35
35
  raise Dor::ParameterError, "Invalid subset value: #{subset}"
@@ -40,17 +40,17 @@ module Dor
40
40
  raise Dor::ParameterError, 'Missing Dor::Config.sdr.rest_client'
41
41
  end
42
42
  sdr_client = Dor::Config.sdr.rest_client
43
- current_content = self.datastreams['contentMetadata'].content
43
+ current_content = datastreams['contentMetadata'].content
44
44
  if current_content.nil?
45
45
  raise Dor::Exception, "Missing contentMetadata datastream"
46
46
  end
47
47
  query_string = { :subset => subset.to_s }
48
48
  query_string[:version] = version.to_s unless version.nil?
49
49
  query_string = URI.encode_www_form(query_string)
50
- sdr_query = "objects/#{self.pid}/#{DIFF_QUERY}?#{query_string}"
50
+ sdr_query = "objects/#{pid}/#{DIFF_QUERY}?#{query_string}"
51
51
  response = sdr_client[sdr_query].post(current_content, :content_type => 'application/xml')
52
52
  response
53
53
  end
54
-
54
+
55
55
  end
56
- end
56
+ end
@@ -17,7 +17,7 @@ module Dor
17
17
 
18
18
  # Bypass this method if there are no image resources in contentMetadata
19
19
  def build_iiif_manifest pub_obj_doc
20
- id = self.pid.split(':').last
20
+ id = pid.split(':').last
21
21
 
22
22
  lbl_node = pub_obj_doc.at_xpath '//oai_dc:dc/dc:title', DC_NS
23
23
  if lbl_node.nil?
@@ -32,13 +32,13 @@ module Dor
32
32
  '@id' => "#{purl_base_uri}/iiif/manifest.json",
33
33
  'label' => lbl,
34
34
  'attribution' => 'Provided by the Stanford University Libraries',
35
- 'logo' => {
36
- '@id' => "https://stacks.stanford.edu/image/iiif/wy534zh7137%2FSULAIR_rosette/full/400,/0/default.jpg",
37
- 'service' => {
38
- '@context' => "http://iiif.io/api/image/2/context.json",
39
- '@id' => "https://stacks.stanford.edu/image/iiif/wy534zh7137%2FSULAIR_rosette",
40
- 'profile' => "http://iiif.io/api/image/2/level1.json"
41
- }
35
+ 'logo' => {
36
+ '@id' => "https://stacks.stanford.edu/image/iiif/wy534zh7137%2FSULAIR_rosette/full/400,/0/default.jpg",
37
+ 'service' => {
38
+ '@context' => "http://iiif.io/api/image/2/context.json",
39
+ '@id' => "https://stacks.stanford.edu/image/iiif/wy534zh7137%2FSULAIR_rosette",
40
+ 'profile' => "http://iiif.io/api/image/2/level1.json"
41
+ }
42
42
  },
43
43
  'seeAlso' => {
44
44
  '@id' => "#{purl_base_uri}.mods",