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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c2dde34fe46a26ca978403ec518b42b60a01a294f67f429cc6501bdb2a977a72
4
- data.tar.gz: 436710baeb6f3a5b02bc855b8a4ac1d205a28e557da2f9a2185fdd5f260d0f8e
3
+ metadata.gz: dd302a231a2cb10cfb34d72a9d68cd7c52b1a19e7b61eaf237498921b00578ff
4
+ data.tar.gz: 3bad65714fa43167182dcf88250f227518d22f376d0ccd822be2fe1048765283
5
5
  SHA512:
6
- metadata.gz: d2e080e41deec4c058a4c77d9082bd0b8de9f70613bb5a0848eb55a3bff6aa86c0fae7ec8f6c5f20213e0540bc3917ec4d15fc58aff0b42500df19577122c2c9
7
- data.tar.gz: d664f13c5fe41acad9252dc7dcf30985a02e9ce77b10343ce5ec62c0959d2ce73924fd93de7c81cd5ec89725cdd3edfb2cc8c72020d326c4fdc7dc133961d8e1
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
- alias_method :pid, :id
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
- query = Ddr::Index::Query.new { id id }
17
- if doc = query.docs.first
18
- return doc
19
- end
20
- raise NotFound, "SolrDocument not found for \"#{id}\"."
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
- raise ArgumentError, "ARK argument must be present."
26
- end
27
- query = Ddr::Index::Query.new do
28
- q *:*
29
- where permanent_id: ark
30
- end
31
- if doc = query.docs.first
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 ||= Valkyrie::MetadataAdapter.find(:index_solr).query_service.find_by(id: id)
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 = 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
- @roles ||= resource.roles
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
- def parent_id
180
- is_part_of || is_member_of_collection
181
- end
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
@@ -13,8 +13,6 @@ module Ddr::Index
13
13
  delegate [:get, :post, :paginate] => :solr
14
14
 
15
15
  def solr
16
- # Changed for Valkyrie
17
- # RSolr.connect(ActiveFedora.solr_config)
18
16
  Blacklight.default_index.connection
19
17
  end
20
18
 
@@ -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 - Valkyrie indexes fields > 1000
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
- page_params = params.dup
96
- page_size = page_params.delete(:rows) || PAGE_SIZE
97
- response = Connection.page(num, page_size, "select", params: page_params)
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.3
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-03-02 00:00:00.000000000 Z
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.0
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.0
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: '1.3'
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: '1.3'
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.0.8
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: []
@@ -1,5 +0,0 @@
1
- module Ddr
2
- module Core
3
- VERSION = '1.4.3'
4
- end
5
- end