ddr-core 1.4.3 → 1.5.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.
- checksums.yaml +4 -4
- data/app/models/concerns/ddr/solr_document_behavior.rb +40 -28
- data/lib/ddr/index/connection.rb +0 -2
- data/lib/ddr/index/fields.rb +2 -2
- data/lib/ddr/index/query_result.rb +4 -3
- metadata +13 -15
- data/lib/ddr/core/version.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd302a231a2cb10cfb34d72a9d68cd7c52b1a19e7b61eaf237498921b00578ff
|
4
|
+
data.tar.gz: 3bad65714fa43167182dcf88250f227518d22f376d0ccd822be2fe1048765283
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0f763d15a06561cd30a93571235c12e280e970fc9ac1fd1d85bf518827aa19baeabe75b75d7dfcc61cad7086cc4ec3cec1d191f0acceab2cd1b4dd2af9efdca
|
7
|
+
data.tar.gz: af7f6b1bbbd2de0b6fa0f40b6bafdb7c3e6720bde6512ae980ca05b3b3bcaae022f4ca314fd98c96ad98a01f7d244924d1027f2446f04fcc273ed08ac5f8ea3b
|
@@ -5,34 +5,41 @@ module Ddr
|
|
5
5
|
module SolrDocumentBehavior
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
|
+
class NotFound < Error; end
|
9
|
+
|
8
10
|
included do
|
9
|
-
|
11
|
+
delegate :query_service,
|
12
|
+
:resource_factory,
|
13
|
+
to: :metadata_adapter
|
10
14
|
end
|
11
15
|
|
12
|
-
class NotFound < Error; end
|
13
|
-
|
14
16
|
module ClassMethods
|
15
17
|
def find(id)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
raise ArgumentError, "ID argument must be present." if id.blank?
|
19
|
+
|
20
|
+
response = Blacklight.default_index.find(id)
|
21
|
+
response.documents.first
|
22
|
+
|
23
|
+
rescue Blacklight::Exceptions::RecordNotFound => e
|
24
|
+
raise NotFound, e
|
21
25
|
end
|
22
26
|
|
23
27
|
def find_by_permanent_id(ark)
|
24
|
-
if ark.blank?
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
return doc
|
28
|
+
raise ArgumentError, "ARK argument must be present." if ark.blank?
|
29
|
+
|
30
|
+
response = Blacklight.default_index.search(q: "#{Ddr::Index::Fields::PERMANENT_ID}:\"#{ark}\"", rows: 1)
|
31
|
+
|
32
|
+
if doc = response.documents.first
|
33
|
+
doc
|
34
|
+
else
|
35
|
+
raise NotFound, "Permanent ID: #{ark}"
|
33
36
|
end
|
34
|
-
raise NotFound, "SolrDocument not found for permanent id \"#{ark}\"."
|
35
37
|
end
|
38
|
+
end # ClassMethods
|
39
|
+
|
40
|
+
def pid
|
41
|
+
warn "DEPRECATION: #pid is deprecated. Use #id instead."
|
42
|
+
id
|
36
43
|
end
|
37
44
|
|
38
45
|
def inspect
|
@@ -56,8 +63,12 @@ module Ddr
|
|
56
63
|
super
|
57
64
|
end
|
58
65
|
|
66
|
+
def metadata_adapter
|
67
|
+
Valkyrie::MetadataAdapter.find(:index_solr)
|
68
|
+
end
|
69
|
+
|
59
70
|
def resource
|
60
|
-
@resource ||=
|
71
|
+
@resource ||= resource_factory.to_resource(object: self)
|
61
72
|
end
|
62
73
|
|
63
74
|
def object_create_date
|
@@ -134,7 +145,7 @@ module Ddr
|
|
134
145
|
end
|
135
146
|
|
136
147
|
def targets_count
|
137
|
-
@targets_count
|
148
|
+
@targets_count ||= targets.count
|
138
149
|
end
|
139
150
|
|
140
151
|
def has_target?
|
@@ -150,7 +161,7 @@ module Ddr
|
|
150
161
|
end
|
151
162
|
|
152
163
|
def roles
|
153
|
-
|
164
|
+
resource.roles
|
154
165
|
end
|
155
166
|
|
156
167
|
def resource_roles
|
@@ -176,9 +187,14 @@ module Ddr
|
|
176
187
|
Ddr::Contact.call(research_help_contact) if research_help_contact
|
177
188
|
end
|
178
189
|
|
179
|
-
|
180
|
-
|
181
|
-
|
190
|
+
#
|
191
|
+
# Fall back to PARENT_ID field, which supersedes IS_PART_OF and _IS_MEMBER_OF_COLLECTION
|
192
|
+
# for this usage.
|
193
|
+
# Cf. https://duldev.atlassian.net/browse/DDR-2296
|
194
|
+
#
|
195
|
+
# def parent_id
|
196
|
+
# is_part_of || is_member_of_collection
|
197
|
+
# end
|
182
198
|
|
183
199
|
def has_parent?
|
184
200
|
parent_id.present?
|
@@ -307,10 +323,6 @@ module Ddr
|
|
307
323
|
|
308
324
|
private
|
309
325
|
|
310
|
-
def query_service
|
311
|
-
@query_service ||= Valkyrie::MetadataAdapter.find(:index_solr).query_service
|
312
|
-
end
|
313
|
-
|
314
326
|
def get_date(field)
|
315
327
|
parse_date(self[field])
|
316
328
|
end
|
data/lib/ddr/index/connection.rb
CHANGED
data/lib/ddr/index/fields.rb
CHANGED
@@ -37,8 +37,8 @@ module Ddr::Index
|
|
37
37
|
DATE_SORT = Field.new :date_sort, :sortable
|
38
38
|
DC_IS_PART_OF = Field.new :isPartOf, :symbol
|
39
39
|
DEPOSITOR = Field.new :depositor, :stored_sortable
|
40
|
-
# DDR-1997 - description should always be indexed as _tesim regardless of length
|
41
|
-
# characters in length as _tsim only
|
40
|
+
# DDR-1997 - description should always be indexed as _tesim regardless of length.
|
41
|
+
# Valkyrie indexes fields > 1000 characters in length as _tsim only.
|
42
42
|
DESCRIPTION = Field.new :description, :stored_searchable # stored_searchable produces _tesim
|
43
43
|
DISPLAY_FORMAT = Field.new :display_format, :stored_sortable
|
44
44
|
DOI = Field.new :doi, :symbol
|
@@ -92,9 +92,10 @@ module Ddr::Index
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def page(num)
|
95
|
-
|
96
|
-
page_size =
|
97
|
-
|
95
|
+
data = params.dup
|
96
|
+
page_size = data.delete(:rows) || PAGE_SIZE
|
97
|
+
opts = { method: :post, data: data }
|
98
|
+
response = Connection.page(num, page_size, 'select', opts)
|
98
99
|
response.docs
|
99
100
|
end
|
100
101
|
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddr-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4
|
4
|
+
version: 1.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Coble
|
8
8
|
- David Chandek-Stark
|
9
9
|
- Ayse Durmaz
|
10
10
|
- Hugh Cayless
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2021-
|
14
|
+
date: 2021-05-18 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activeresource
|
@@ -89,14 +89,14 @@ dependencies:
|
|
89
89
|
requirements:
|
90
90
|
- - "~>"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: 2.1
|
92
|
+
version: '2.1'
|
93
93
|
type: :runtime
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
97
|
- - "~>"
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version: 2.1
|
99
|
+
version: '2.1'
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: grouper-rest-client
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,16 +157,16 @@ dependencies:
|
|
157
157
|
name: omniauth-shibboleth
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
|
-
- - "
|
160
|
+
- - ">="
|
161
161
|
- !ruby/object:Gem::Version
|
162
|
-
version: '
|
162
|
+
version: '0'
|
163
163
|
type: :runtime
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
166
166
|
requirements:
|
167
|
-
- - "
|
167
|
+
- - ">="
|
168
168
|
- !ruby/object:Gem::Version
|
169
|
-
version: '
|
169
|
+
version: '0'
|
170
170
|
- !ruby/object:Gem::Dependency
|
171
171
|
name: virtus
|
172
172
|
requirement: !ruby/object:Gem::Requirement
|
@@ -294,8 +294,7 @@ dependencies:
|
|
294
294
|
- !ruby/object:Gem::Version
|
295
295
|
version: '0'
|
296
296
|
description: Models used in the Duke Digital Repository
|
297
|
-
email:
|
298
|
-
- lib-drs@duke.edu
|
297
|
+
email:
|
299
298
|
executables: []
|
300
299
|
extensions: []
|
301
300
|
extra_rdoc_files: []
|
@@ -388,7 +387,6 @@ files:
|
|
388
387
|
- lib/ddr/auth/web_auth_context.rb
|
389
388
|
- lib/ddr/core.rb
|
390
389
|
- lib/ddr/core/engine.rb
|
391
|
-
- lib/ddr/core/version.rb
|
392
390
|
- lib/ddr/error.rb
|
393
391
|
- lib/ddr/files.rb
|
394
392
|
- lib/ddr/fits.rb
|
@@ -441,7 +439,7 @@ licenses:
|
|
441
439
|
- BSD-3-Clause
|
442
440
|
metadata:
|
443
441
|
allowed_push_host: https://rubygems.org
|
444
|
-
post_install_message:
|
442
|
+
post_install_message:
|
445
443
|
rdoc_options: []
|
446
444
|
require_paths:
|
447
445
|
- lib
|
@@ -456,8 +454,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
456
454
|
- !ruby/object:Gem::Version
|
457
455
|
version: '0'
|
458
456
|
requirements: []
|
459
|
-
rubygems_version: 3.
|
460
|
-
signing_key:
|
457
|
+
rubygems_version: 3.2.17
|
458
|
+
signing_key:
|
461
459
|
specification_version: 4
|
462
460
|
summary: Models used in the Duke Digital Repository
|
463
461
|
test_files: []
|