ddr-core 1.2.0.rc2 → 1.2.0.rc3

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: 2d6925972d1974e35d35effa69d27a8b8764006e1a7554236325956ab31b674d
4
- data.tar.gz: 2e1e0c7b49694c06c031bbd44736f6a567590b1fed08a48a7e76bac31d494f22
3
+ metadata.gz: 3ebab371e1259e1586c6965ab7178a509be2ee2213267ccfd15122ec1a970890
4
+ data.tar.gz: 9d108eb264f17016ef13103568fcf569887883f3b902d272deba1af26a8787db
5
5
  SHA512:
6
- metadata.gz: 5646fab91d66b7c9c96a2ee38d5cc86abd0052337e2b0b3bd79a53c4b8dbbfefc0db8f61eee33261d95d898a06d5c47aa865e605dbf1aea64d5d2319d68ad6ce
7
- data.tar.gz: 650f2186d40227f43b7a6e5ba6734d3358006f103bf7dc4f472a174202e866c9660969e092f92bc8f011b0d7073ef0dc4c63ba4b4d3eb10a1d51845ea942030e
6
+ metadata.gz: c59868928e54535e9ed804ef93c60a867c9ec00bdb2f69e5a63874cf5b59e37dcc5796fcbc2c8e59d06b1e29957086aa2360b92cb351b8b02badce21b1ddefdc
7
+ data.tar.gz: bd67b175ee5cff3e11f8eb7867b95124ab6dff4f954d17cf528ab3708e2aacb23c3f4fda5ee57563af258849b1ad215ea9e1041dfdc10a1183c77b0e3c58683b
@@ -21,6 +21,9 @@ module Ddr
21
21
  end
22
22
 
23
23
  def find_by_permanent_id(ark)
24
+ if ark.blank?
25
+ raise ArgumentError, "ARK argument must be present."
26
+ end
24
27
  query = Ddr::Index::Query.new do
25
28
  q *:*
26
29
  where permanent_id: ark
@@ -1,61 +1,53 @@
1
- # TODO: 'https://duldev.atlassian.net/browse/DDR-1755'
2
-
3
1
  module Ddr
4
2
  class FindingAid
5
3
  attr_reader :ead_id
6
4
 
7
- EAD_XMLNS = "urn:isbn:1-931666-22-9"
8
-
9
5
  def initialize(ead_id)
10
6
  @ead_id = ead_id
11
7
  end
12
8
 
9
+ # TODO: use permalinks in the future when all finding aids have ARKs
13
10
  def url
14
- doc.css("eadid").attr("url").text
11
+ [Ddr.finding_aid_base_url, '/catalog/', ead_id].join
15
12
  end
16
13
 
17
- # The finding aid title
18
14
  def title
19
- doc.css("titleproper").children.first.text.strip
15
+ doc.fetch('normalized_title_ssm',[])&.first
20
16
  end
21
17
 
22
18
  def repository
23
- collection.xpath('ead:did/ead:repository/ead:corpname', ead: EAD_XMLNS).text
19
+ doc.fetch('repository_ssm',[])&.first
24
20
  end
25
21
 
26
22
  def collection_date_span
27
- collection.xpath('ead:did/ead:unitdate[@type="inclusive"]', ead: EAD_XMLNS).text
23
+ doc.fetch('normalized_date_ssm',[])&.first
28
24
  end
29
25
 
30
26
  def collection_number
31
- collection.xpath('ead:did/ead:unitid', ead: EAD_XMLNS).text
27
+ doc.fetch('unitid_ssm',[])&.first
32
28
  end
33
29
 
34
30
  def collection_title
35
- collection.xpath('ead:did/ead:unittitle', ead: EAD_XMLNS).text
31
+ doc.fetch('title_ssm',[])&.first
36
32
  end
37
33
 
38
34
  def extent
39
- collection.xpath('ead:did/ead:physdesc/ead:extent', ead: EAD_XMLNS).map(&:text).join("; ")
35
+ doc.fetch('extent_ssm',[]).join("; ")
40
36
  end
41
37
 
42
38
  def abstract
43
- collection.xpath('ead:did/ead:abstract', ead: EAD_XMLNS).text
39
+ first_abstract = doc.fetch('abstract_tesim',[])&.first
40
+ ActionController::Base.helpers.strip_tags(first_abstract)
44
41
  end
45
42
 
46
43
  private
47
44
 
48
- def collection
49
- doc.xpath('//ead:archdesc[@level="collection"]', ead: EAD_XMLNS)
50
- end
51
-
52
- # @raise [OpenURI::HTTPError] if 404, etc.
53
45
  def doc
54
- @doc ||= Nokogiri::XML(open(ead_xml_url))
46
+ @doc ||= JSON.parse(open(arclight_collection_data_url).read)
55
47
  end
56
48
 
57
- def ead_xml_url
58
- Ddr.ead_xml_base_url + ead_id + ".xml"
49
+ def arclight_collection_data_url
50
+ [Ddr.finding_aid_base_url, '/catalog/', ead_id, '/raw.json'].join
59
51
  end
60
52
  end
61
53
  end
@@ -11,7 +11,7 @@ module Ddr
11
11
  obj.published? || !obj.publishable?
12
12
  end
13
13
  cannot :unpublish, Ddr::Resource do |obj|
14
- !obj.published?
14
+ !obj.published? && !obj.nonpublishable?
15
15
  end
16
16
  cannot :make_nonpublishable, Ddr::Resource do |obj|
17
17
  obj.published? || !obj.publishable?
@@ -108,10 +108,15 @@ module Ddr
108
108
  ENV["DDR_AUX_API_URL"]
109
109
  end
110
110
 
111
+ # Deprecated in ddr-core 1.2.0. Remove in future.
111
112
  mattr_accessor :ead_xml_base_url do
112
113
  ENV["EAD_XML_BASE_URL"]
113
114
  end
114
115
 
116
+ mattr_accessor :finding_aid_base_url do
117
+ ENV["FINDING_AID_BASE_URL"] || 'https://archives.lib.duke.edu'
118
+ end
119
+
115
120
  module Core
116
121
 
117
122
  end
@@ -1,5 +1,5 @@
1
1
  module Ddr
2
2
  module Core
3
- VERSION = '1.2.0.rc2'
3
+ VERSION = '1.2.0.rc3'
4
4
  end
5
5
  end
@@ -16,9 +16,9 @@ module Ddr::Index
16
16
 
17
17
  values do
18
18
  attribute :field, FieldAttribute
19
- attribute :value, String
20
- attribute :quote_value, Boolean, default: false
21
- attribute :template, String, default: STANDARD_QUERY
19
+ attribute :value, String, required: true
20
+ attribute :quote_value, Boolean, default: false
21
+ attribute :template, String, default: STANDARD_QUERY
22
22
  end
23
23
 
24
24
  def to_s
@@ -46,7 +46,7 @@ module Ddr::Index
46
46
  alias_method :id, :unique_key
47
47
 
48
48
  def where(field, value)
49
- values = Array(value)
49
+ values = Array(value)
50
50
  if values.size > 1
51
51
  disjunction(field, values)
52
52
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddr-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.rc2
4
+ version: 1.2.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Coble
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-06-19 00:00:00.000000000 Z
14
+ date: 2020-07-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activeresource