cul_hydra 1.4.18 → 1.5.0

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
  SHA1:
3
- metadata.gz: 1abaad2cef667fc8e4f772a364ed61c4ea68836e
4
- data.tar.gz: 14dd1fd4b8a69f2956f8c5d0cea7bf00b50c81bb
3
+ metadata.gz: 2baf2571dbbdc2d415c7a2933580386f87a4bfc9
4
+ data.tar.gz: e1aa15a6689b907d3d2100b1aefc8436617b5430
5
5
  SHA512:
6
- metadata.gz: 88d55e63bec1afcd4a31470e4b2c5d45c8d4e1f56cca39fec0b846b89cb2e0a758352e4ae7f05f5696c96f7e8965ea8b4e614193b1689cfb4733e8897f694dce
7
- data.tar.gz: 91305d4506ebb0f13e32916769df96058d0d360e2a5318910152044bf98fc90cb752600420aac59fa7034304772d58f5fabc709194d797a8418afe8bbd35669a
6
+ metadata.gz: 3f81d19b2bd3f9f5ec1f6c9ab94ac4dbd62ef034cfdbe1338e3a2195acb0626acff5c4853a4e668332e66ec0843752d7c1b41da3997121bc54ef7caed05b4690
7
+ data.tar.gz: 35554b9b11df6aa862370ea4d0b2f84f49516d15e6018d88bff4c2c17d68359bcca9e3649c9997d2548e37ebee8a88389af4c0b3df90907b7a0682759aaa4512
@@ -76,16 +76,6 @@ class Concept < GenericAggregator
76
76
  set_singular_rel(:restriction, val, true)
77
77
  end
78
78
 
79
- # a representative image URI for this concept
80
- # https://schema.org/image
81
- def representative_image
82
- get_singular_rel(:schema_image)
83
- end
84
-
85
- def representative_image=(val)
86
- set_singular_rel(:schema_image, val)
87
- end
88
-
89
79
  # a human readable URI segment for this concept
90
80
  # http://www.bbc.co.uk/ontologies/coreconcepts/slug
91
81
  def slug
@@ -116,30 +106,12 @@ class Concept < GenericAggregator
116
106
  set_singular_rel(:short_title, val, true)
117
107
  end
118
108
 
119
- def get_singular_rel(predicate)
120
- property = relationships(predicate).first
121
- return nil unless property
122
- return (property.kind_of? RDF::Literal) ? property.value : property
123
- end
124
-
125
- def set_singular_rel(predicate, value, literal=false)
126
- raise "#{predicate} is a singular property" if value.respond_to? :each
127
- clear_relationship(predicate)
128
- add_relationship(predicate, value, literal) unless value.nil? || value.empty?
129
- end
130
-
131
109
  def to_solr(solr_doc = Hash.new, opts={})
132
110
  solr_doc = super(solr_doc, opts)
133
111
  solr_doc[::ActiveFedora::SolrService.solr_name(:description_text, :displayable)] = description
134
112
  solr_doc
135
113
  end
136
- class SingularRelValidator < ActiveModel::Validator
137
- def validate(record)
138
- [:abstract, :alternative, :restriction, :slug, :source, :schema_image].each do |rel|
139
- record.errors[rel] << "#{rel} must have 0 or 1 values" unless record.relationships(rel).length < 2
140
- end
141
- end
142
- end
143
114
 
144
- validates_with SingularRelValidator
115
+ # validators built for [0..1] RELS properties
116
+ validates_with singular_rel_validator([:abstract, :alternative, :restriction, :slug, :source])
145
117
  end
@@ -56,6 +56,17 @@ module Cul::Hydra::Models::Aggregator
56
56
  return thumb || {:asset=>"cul_hydra/crystal/file.png",:mime=>'image/png'}
57
57
  end
58
58
 
59
+ # a representative image URI for this object
60
+ # defined by the predicate https://schema.org/image
61
+ # @return [String, URI]
62
+ def representative_image
63
+ get_singular_rel(:schema_image)
64
+ end
65
+
66
+ def representative_image=(val)
67
+ set_singular_rel(:schema_image, val)
68
+ end
69
+
59
70
  private
60
71
  def thumb_from_struct(members)
61
72
  puts "thumb thumb_from_struct"
@@ -24,6 +24,23 @@ module Cul::Hydra::Models::Common
24
24
  end
25
25
  @rdf_types
26
26
  end
27
+ def singular_rel_validator(symbols = [])
28
+ r = Class.new(ActiveModel::Validator) do
29
+ def self.symbols=(symbols)
30
+ @symbols = symbols
31
+ end
32
+ def self.symbols
33
+ @symbols ||= []
34
+ end
35
+ def validate(record)
36
+ self.class.symbols.each do |rel|
37
+ record.errors[rel] << "#{rel} must have 0 or 1 values" unless record.relationships(rel).length < 2
38
+ end
39
+ end
40
+ end
41
+ r.symbols = symbols
42
+ r
43
+ end
27
44
  end
28
45
 
29
46
  def rdf_types!
@@ -163,11 +180,18 @@ module Cul::Hydra::Models::Common
163
180
  solr_doc
164
181
  end
165
182
 
183
+ # Return a representative file resource for the object
184
+ # @param force_use_of_non_pid_identifier [Boolean] switch to require use of application id in struct map parsing
185
+ # @return [GenericResource] a representative file resource
166
186
  # This method generally shouldn't be called with any parameters (unless we're doing testing)
167
187
  def get_representative_generic_resource(force_use_of_non_pid_identifier=false)
168
188
  return self if self.is_a?(GenericResource)
169
- return nil unless self.is_a?(Cul::Hydra::Models::Aggregator) # Only Aggregators have struct metadata
170
189
 
190
+ # if there's an explicit assignment of representative image, return it
191
+ assigned_image = get_singular_rel(:schema_image)
192
+ return ActiveFedora::Base.find(assigned_image.split('/')[-1]) if assigned_image
193
+
194
+ return nil unless self.is_a?(Cul::Hydra::Models::Aggregator) # Only Aggregators have struct metadata
171
195
  # If we're here, then the object was not a Generic resource.
172
196
  # Try to get child info from a structMat datastream, and fall back to
173
197
  # the first :cul_member_of child if a structMap isn't present
@@ -233,6 +257,9 @@ module Cul::Hydra::Models::Common
233
257
  return nil
234
258
  end
235
259
  end
260
+ rescue ActiveFedora::ObjectNotFoundError
261
+ logger.warn "#{get_singular_rel(:schema_image)} not found in repository for #{self.pid}"
262
+ return nil
236
263
  end
237
264
 
238
265
  def update_datastream_attributes(params={}, opts={})
@@ -263,6 +290,18 @@ module Cul::Hydra::Models::Common
263
290
  {:asset=>("cul_hydra/crystal/kmultiple.png"),:mime_type=>"image/png"}
264
291
  end
265
292
 
293
+ def get_singular_rel(predicate)
294
+ property = relationships(predicate).first
295
+ return nil unless property
296
+ return (property.kind_of? RDF::Literal) ? property.value : property
297
+ end
298
+
299
+ def set_singular_rel(predicate, value, literal=false)
300
+ raise "#{predicate} is a singular property" if value.respond_to? :each
301
+ clear_relationship(predicate)
302
+ add_relationship(predicate, value, literal) unless value.nil? || value.empty?
303
+ end
304
+
266
305
  private
267
306
  def value_changed?(ds,pointer,values)
268
307
  if values.is_a? Hash
@@ -72,4 +72,7 @@ class GenericAggregator < ::ActiveFedora::Base
72
72
  conn.commit
73
73
  end
74
74
  end
75
+
76
+ # validators built for [0..1] RELS properties
77
+ validates_with singular_rel_validator([:schema_image])
75
78
  end
data/config/fedora.yml CHANGED
@@ -1,17 +1,26 @@
1
1
  development:
2
- :user: fedoraAdmin
3
- :password: fedoraAdmin
4
- :url: http://localhost:8983/fedora-test
5
- :time_zone: "America/New_York"
6
-
7
- test:
8
- :user: fedoraAdmin
9
- :password: fedoraAdmin
10
- :url: http://localhost:8983/fedora-test
11
- :time_zone: "America/New_York"
12
-
2
+ user: fedoraAdmin
3
+ password: f+BULUS*^
4
+ url: http://repository.cul.columbia.edu:8080/fedora
5
+ datastreams_root: /ifs/cul/repo/archive/repo-datastreams
6
+ time_zone: "America/New_York"
7
+ test: &TEST
8
+ user: fedoraAdmin
9
+ password: fedoraAdmin
10
+ url: <%= "http://127.0.0.1:#{ENV['TEST_JETTY_PORT'] || 8983}/fedora-test" %>
11
+ datastreams_root: /ifs/cul/repo/archive/repo-datastreams
12
+ time_zone: "America/New_York"
13
13
  production:
14
- :user: fedoraAdmin
15
- :password: f+BULUS*^
16
- :url: http://alcott.cul.columbia.edu:8080/fedora
17
- :time_zone: "America/New_York"
14
+ user: fedoraAdmin
15
+ password: f+BULUS*^
16
+ url: http://repository.cul.columbia.edu:8080/fedora
17
+ datastreams_root: /ifs/cul/repo/archive/repo-datastreams
18
+ time_zone: "America/New_York"
19
+ dcv_test:
20
+ user: fedoraAdmin
21
+ password: f+BULUS*^
22
+ url: http://repository.cul.columbia.edu:8080/fedora
23
+ datastreams_root: /ifs/cul/repo/archive/repo-datastreams
24
+ time_zone: "America/New_York"
25
+ cucumber:
26
+ <<: *TEST
data/config/solr.yml CHANGED
@@ -1,8 +1,17 @@
1
+ # This is a sample config file that does not have multiple solr instances. You will also need to be sure to
2
+ # edit the fedora.yml file to match the solr URL for active-fedora.
3
+ # url: http://katana.cul.columbia.edu:8080/solr-4.7/dcv_private_dev
4
+ test: &TEST
5
+ url: <%= "http://127.0.0.1:#{ENV['TEST_JETTY_PORT'] || 8983}/solr/test" %>
6
+ dcv_dev: &DEV
7
+ url: http://spatha.cul.columbia.edu:8080/solr-4.7/dcv_private_test
8
+ dcv_core: 'dcv_private_dev'
9
+ dcv_test: &IFP
10
+ url: http://spatha.cul.columbia.edu:8080/solr-4.7/dcv_private_test
11
+ dcv_core: 'dcv_private_test'
12
+ cucumber:
13
+ <<: *TEST
14
+ production: &PROD
15
+ url: http://spatha.cul.columbia.edu:8080/solr-4.7/dcv_prod
1
16
  development:
2
- url: http://localhost:8983/solr/test
3
-
4
- test:
5
- url: http://localhost:8983/solr/test
6
-
7
- production:
8
- url: http://katana.cul.columbia.edu:8080/solr-4.7/dcv_private_dev
17
+ <<: *PROD
data/config/subs.yml CHANGED
@@ -1,17 +1,10 @@
1
+ old:
2
+ fedora_server: http://sayers.cul.columbia.edu:8080
3
+ php_server: http://bach.cul.columbia.edu/dev
4
+ djatoka_server: http://iris.cul.columbia.edu:8080
1
5
  development:
2
- djatoka_server: "http://iris.cul.columbia.edu:8080"
3
- fedora_server: "http://sayers.cul.columbia.edu:8080"
4
- php_server: "http://bach.cul.columbia.edu/dev"
6
+ fedora_server: http://repository.cul.columbia.edu:8080
7
+ php_server: http://fedora-svc.cul.columbia.edu/dev
5
8
  test:
6
- djatoka_server: "http://iris.cul.columbia.edu:8080"
7
- fedora_server: "http://sayers.cul.columbia.edu:8080"
8
- php_server: "http://bach.cul.columbia.edu/dev"
9
- production:
10
- djatoka_server: "http://iris.cul.columbia.edu:8080"
11
- fedora_server: "http://alcott.cul.columbia.edu:8080"
12
- php_server: "http://bach.cul.columbia.edu"
13
-
14
- hyacinth_prod:
15
- djatoka_server: "http://iris.cul.columbia.edu:8080"
16
- fedora_server: "http://alcott.cul.columbia.edu:8080"
17
- php_server: "http://bach.cul.columbia.edu"
9
+ fedora_server: http://repository.cul.columbia.edu:8080
10
+ php_server: http://fedora-svc.cul.columbia.edu/dev
@@ -1,6 +1,6 @@
1
1
  module Cul
2
2
  module Hydra
3
- VERSION = '1.4.18'
3
+ VERSION = '1.5.0'
4
4
  def self.version
5
5
  VERSION
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cul_hydra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.18
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Armintor
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-05-07 00:00:00.000000000 Z
12
+ date: 2018-08-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: blacklight
@@ -532,7 +532,6 @@ files:
532
532
  - fixtures/spec/STRUCTMAP/structmap-unlabeled-seq.xml
533
533
  - fixtures/spec/STRUCTMAP/structmap-unordered-seq.xml
534
534
  - lib/cul_hydra.rb
535
- - lib/cul_hydra/#version.rb#
536
535
  - lib/cul_hydra/access_controls_enforcement.rb
537
536
  - lib/cul_hydra/controllers.rb
538
537
  - lib/cul_hydra/controllers/aggregates.rb
@@ -570,7 +569,6 @@ files:
570
569
  - lib/cul_hydra/solrizer/value_mapper.rb
571
570
  - lib/cul_hydra/solrizer_patch.rb
572
571
  - lib/cul_hydra/version.rb
573
- - lib/cul_hydra/version.rb~
574
572
  - lib/tasks/cmodel.rake
575
573
  - lib/tasks/cul_hydra_dev.rake
576
574
  - lib/tasks/index.rake
@@ -597,7 +595,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
597
595
  version: '0'
598
596
  requirements: []
599
597
  rubyforge_project:
600
- rubygems_version: 2.6.14
598
+ rubygems_version: 2.6.11
601
599
  signing_key:
602
600
  specification_version: 4
603
601
  summary: ActiveFedora, OM, and Solrizer implementations for CUL repository apps
@@ -1,8 +0,0 @@
1
- module Cul
2
- module Hydra
3
- VERSION = '1.4.16'
4
- def self.version
5
- VERSION
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Cul
2
- module Hydra
3
- VERSION = '1.4.17'
4
- def self.version
5
- VERSION
6
- end
7
- end
8
- end