ddr-core 1.2.0.rc2 → 1.2.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
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