hyrax 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.dassie/config/initializers/riiif.rb +22 -20
  3. data/.dassie/package.json +3 -5
  4. data/Dockerfile +34 -14
  5. data/app/controllers/hyrax/dashboard/collections_controller.rb +2 -4
  6. data/app/forms/hyrax/forms/collection_form.rb +5 -3
  7. data/app/indexers/hyrax/valkyrie_indexer.rb +2 -1
  8. data/app/presenters/hyrax/collection_presenter.rb +10 -14
  9. data/app/services/hyrax/listeners.rb +2 -0
  10. data/app/services/hyrax/listeners/member_cleanup_listener.rb +26 -0
  11. data/app/services/hyrax/listeners/object_lifecycle_listener.rb +1 -1
  12. data/app/services/hyrax/listeners/trophy_cleanup_listener.rb +17 -0
  13. data/app/services/hyrax/persist_derivatives.rb +3 -1
  14. data/app/services/hyrax/thumbnail_path_service.rb +1 -1
  15. data/app/services/hyrax/visibility_propagator.rb +30 -1
  16. data/app/views/hyrax/collections/show.html.erb +1 -1
  17. data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +1 -1
  18. data/app/views/hyrax/file_sets/_actions.html.erb +10 -0
  19. data/chart/hyrax/Chart.yaml +2 -2
  20. data/chart/hyrax/templates/_helpers.tpl +8 -0
  21. data/chart/hyrax/templates/branding-pvc.yaml +14 -0
  22. data/chart/hyrax/templates/configmap-env.yaml +8 -1
  23. data/chart/hyrax/templates/deployment-worker.yaml +92 -0
  24. data/chart/hyrax/templates/deployment.yaml +42 -0
  25. data/chart/hyrax/templates/derivatives-pvc.yaml +14 -0
  26. data/chart/hyrax/templates/secrets.yaml +1 -0
  27. data/chart/hyrax/templates/uploads-pvc.yaml +14 -0
  28. data/chart/hyrax/values.yaml +31 -0
  29. data/config/features.rb +47 -43
  30. data/config/initializers/listeners.rb +2 -0
  31. data/documentation/developing-your-hyrax-based-app.md +4 -4
  32. data/documentation/legacyREADME.md +4 -4
  33. data/lib/generators/hyrax/templates/config/initializers/riiif.rb +22 -20
  34. data/lib/hyrax/configuration.rb +8 -0
  35. data/lib/hyrax/engine.rb +1 -1
  36. data/lib/hyrax/valkyrie_can_can_adapter.rb +2 -0
  37. data/lib/hyrax/version.rb +1 -1
  38. data/lib/wings/converter_value_mapper.rb +2 -2
  39. data/lib/wings/valkyrie/persister.rb +7 -5
  40. data/lib/wings/valkyrie/query_service.rb +60 -17
  41. data/template.rb +1 -1
  42. metadata +8 -2
@@ -13,15 +13,22 @@ data:
13
13
  {{- if .Values.memcached.enabled }}
14
14
  MEMCACHED_HOST: {{ template "hyrax.memcached.fullname" . }}
15
15
  {{- end }}
16
+ {{- if .Values.derivativesVolume.enabled }}
17
+ HYRAX_BRANDING_PATH: "/app/samvera/branding"
18
+ HYRAX_DERIVATIVES_PATH: "/app/samvera/derivatives"
19
+ HYRAX_CACHE_PATH: "/app/samvera/file_cache"
20
+ HYRAX_UPLOAD_PATH: "/app/samvera/uploads"
21
+ {{- end }}
16
22
  RACK_ENV: production
17
23
  RAILS_ENV: production
18
24
  {{- if .Values.redis.enabled }}
19
- REDIS_HOST: {{ template "hyrax.redis.fullname" . }}-master
25
+ REDIS_HOST: {{ template "hyrax.redis.host" . }}
20
26
  {{- end }}
21
27
  FCREPO_BASE_PATH: {{ .Values.fcrepoBasePathOverride | default (printf "/%s" (include "hyrax.fullname" .)) | quote }}
22
28
  FCREPO_HOST: {{ template "hyrax.fcrepo.host" . }}
23
29
  FCREPO_PORT: {{ .Values.fcrepo.servicePort | default 8080 | quote }}
24
30
  FCREPO_REST_PATH: {{ .Values.fcrepo.restPath | default "rest" }}
31
+ REDIS_PROVIDER: SIDEKIQ_REDIS_URL
25
32
  SOLR_ADMIN_USER: {{ template "hyrax.solr.username" . }}
26
33
  SOLR_ADMIN_PASSWORD: {{ template "hyrax.solr.password" . }}
27
34
  SOLR_COLLECTION_NAME: {{ template "hyrax.solr.collectionName" . }}
@@ -0,0 +1,92 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: {{ include "hyrax.fullname" . }}-worker
5
+ labels:
6
+ {{- include "hyrax.labels" . | nindent 4 }}
7
+ spec:
8
+ replicas: {{ .Values.worker.replicaCount }}
9
+ selector:
10
+ matchLabels:
11
+ {{- include "hyrax.selectorLabels" . | nindent 6 }}
12
+ template:
13
+ metadata:
14
+ {{- with .Values.podAnnotations }}
15
+ annotations:
16
+ {{- toYaml . | nindent 8 }}
17
+ {{- end }}
18
+ labels:
19
+ {{- include "hyrax.selectorLabels" . | nindent 8 }}
20
+ spec:
21
+ initContainers:
22
+ - name: db-wait
23
+ image: "{{ .Values.worker.image.repository }}:{{ .Values.worker.image.tag | default .Chart.AppVersion }}"
24
+ imagePullPolicy: {{ .Values.worker.image.pullPolicy }}
25
+ envFrom:
26
+ - configMapRef:
27
+ name: {{ include "hyrax.fullname" . }}-env
28
+ - secretRef:
29
+ name: {{ template "hyrax.fullname" . }}
30
+ command:
31
+ - sh
32
+ - -c
33
+ - db-wait.sh "$DB_HOST:$DB_PORT"
34
+ - db-wait.sh "$FCREPO_HOST:$FCREPO_PORT"
35
+ - db-wait.sh "$SOLR_HOST:$SOLR_PORT"
36
+ serviceAccountName: {{ include "hyrax.serviceAccountName" . }}
37
+ securityContext:
38
+ {{- toYaml .Values.podSecurityContext | nindent 8 }}
39
+ containers:
40
+ - name: {{ .Chart.Name }}-worker
41
+ image: "{{ .Values.worker.image.repository }}:{{ .Values.worker.image.tag | default .Chart.AppVersion }}"
42
+ imagePullPolicy: {{ .Values.worker.image.pullPolicy }}
43
+ envFrom:
44
+ - configMapRef:
45
+ name: {{ include "hyrax.fullname" . }}-env
46
+ - secretRef:
47
+ name: {{ template "hyrax.fullname" . }}
48
+ volumeMounts:
49
+ - name: derivatives
50
+ mountPath: /app/samvera/derivatives
51
+ - name: uploads
52
+ subPath: file_cache
53
+ mountPath: /app/samvera/file_cache
54
+ - name: uploads
55
+ subPath: uploads
56
+ mountPath: /app/samvera/uploads
57
+ resources:
58
+ {{- toYaml .Values.worker.resources | nindent 12 }}
59
+ volumes:
60
+ - name: "derivatives"
61
+ {{- if and .Values.derivativesVolume.enabled .Values.derivativesVolume.existingClaim }}
62
+ persistentVolumeClaim:
63
+ claimName: {{ .Values.derivativesVolume.existingClaim }}
64
+ {{- else if .Values.derivativesVolume.enabled }}
65
+ persistentVolumeClaim:
66
+ claimName: {{ template "hyrax.fullname" . }}-derivatives
67
+ {{ else }}
68
+ emptyDir: {}
69
+ {{ end }}
70
+ - name: "uploads"
71
+ {{- if and .Values.uploadsVolume.enabled .Values.uploadsVolume.existingClaim }}
72
+ persistentVolumeClaim:
73
+ claimName: {{ .Values.uploadsVolume.existingClaim }}
74
+ {{- else if .Values.uploadsVolume.enabled }}
75
+ persistentVolumeClaim:
76
+ claimName: {{ template "hyrax.fullname" . }}-uploads
77
+ {{ else }}
78
+ emptyDir: {}
79
+ {{ end }}
80
+
81
+ {{- with .Values.worker.nodeSelector }}
82
+ nodeSelector:
83
+ {{- toYaml . | nindent 8 }}
84
+ {{- end }}
85
+ {{- with .Values.worker.affinity }}
86
+ affinity:
87
+ {{- toYaml . | nindent 8 }}
88
+ {{- end }}
89
+ {{- with .Values.worker.tolerations }}
90
+ tolerations:
91
+ {{- toYaml . | nindent 8 }}
92
+ {{- end }}
@@ -95,8 +95,50 @@ spec:
95
95
  path: {{ .Values.readinessProbe.path | default "/" }}
96
96
  port: 3000
97
97
  {{- end }}
98
+ volumeMounts:
99
+ - name: branding
100
+ mountPath: /app/samvera/branding
101
+ - name: derivatives
102
+ mountPath: /app/samvera/derivatives
103
+ - name: uploads
104
+ subPath: file_cache
105
+ mountPath: /app/samvera/file_cache
106
+ - name: uploads
107
+ subPath: uploads
108
+ mountPath: /app/samvera/uploads
98
109
  resources:
99
110
  {{- toYaml .Values.resources | nindent 12 }}
111
+ volumes:
112
+ - name: "branding"
113
+ {{- if and .Values.brandingVolume.enabled .Values.brandingVolume.existingClaim }}
114
+ persistentVolumeClaim:
115
+ claimName: {{ .Values.brandingVolume.existingClaim }}
116
+ {{- else if .Values.brandingVolume.enabled }}
117
+ persistentVolumeClaim:
118
+ claimName: {{ template "hyrax.fullname" . }}-branding
119
+ {{ else }}
120
+ emptyDir: {}
121
+ {{ end }}
122
+ - name: "derivatives"
123
+ {{- if and .Values.derivativesVolume.enabled .Values.derivativesVolume.existingClaim }}
124
+ persistentVolumeClaim:
125
+ claimName: {{ .Values.derivativesVolume.existingClaim }}
126
+ {{- else if .Values.derivativesVolume.enabled }}
127
+ persistentVolumeClaim:
128
+ claimName: {{ template "hyrax.fullname" . }}-derivatives
129
+ {{ else }}
130
+ emptyDir: {}
131
+ {{ end }}
132
+ - name: "uploads"
133
+ {{- if and .Values.uploadsVolume.enabled .Values.uploadsVolume.existingClaim }}
134
+ persistentVolumeClaim:
135
+ claimName: {{ .Values.uploadsVolume.existingClaim }}
136
+ {{- else if .Values.uploadsVolume.enabled }}
137
+ persistentVolumeClaim:
138
+ claimName: {{ template "hyrax.fullname" . }}-uploads
139
+ {{ else }}
140
+ emptyDir: {}
141
+ {{ end }}
100
142
  {{- with .Values.nodeSelector }}
101
143
  nodeSelector:
102
144
  {{- toYaml . | nindent 8 }}
@@ -0,0 +1,14 @@
1
+ {{- if and .Values.derivativesVolume.enabled (not .Values.derivativesVolume.existingClaim) }}
2
+ apiVersion: v1
3
+ kind: PersistentVolumeClaim
4
+ metadata:
5
+ name: {{ template "hyrax.fullname" . }}-derivatives
6
+ labels:
7
+ {{- include "hyrax.labels" . | nindent 4 }}
8
+ spec:
9
+ accessModes:
10
+ - ReadWriteMany
11
+ resources:
12
+ requests:
13
+ storage: {{ .Values.derivativesVolume.size }}
14
+ {{- end }}
@@ -10,4 +10,5 @@ data:
10
10
  DATABASE_URL: {{ printf "postgresql://%s:%s@%s/%s?pool=5" ( include "hyrax.postgresql.username" . ) ( include "hyrax.postgresql.password" . ) ( include "hyrax.postgresql.host" . ) ( include "hyrax.postgresql.database" . ) | b64enc }}
11
11
  {{- if .Values.redis.enabled }}
12
12
  REDIS_PASSWORD: {{ .Values.redis.password | b64enc}}
13
+ SIDEKIQ_REDIS_URL: {{ include "hyrax.redis.url" . | b64enc }}
13
14
  {{- end }}
@@ -0,0 +1,14 @@
1
+ {{- if and .Values.uploadsVolume.enabled (not .Values.uploadsVolume.existingClaim) }}
2
+ apiVersion: v1
3
+ kind: PersistentVolumeClaim
4
+ metadata:
5
+ name: {{ template "hyrax.fullname" . }}-uploads
6
+ labels:
7
+ {{- include "hyrax.labels" . | nindent 4 }}
8
+ spec:
9
+ accessModes:
10
+ - ReadWriteMany
11
+ resources:
12
+ requests:
13
+ storage: {{ .Values.uploadsVolume.size }}
14
+ {{- end }}
@@ -19,6 +19,24 @@ externalSolrUser: ""
19
19
  externalSolrPassword: ""
20
20
  externalSolrCollection: "hyrax"
21
21
 
22
+ brandingVolume:
23
+ enabled: true
24
+ existingClaim: ""
25
+ size: 2Gi
26
+ storageClass: ""
27
+
28
+ derivativesVolume:
29
+ enabled: true
30
+ existingClaim: ""
31
+ size: 10Gi
32
+ storageClass: ""
33
+
34
+ uploadsVolume:
35
+ enabled: true
36
+ existingClaim: ""
37
+ size: 20Gi
38
+ storageClass: ""
39
+
22
40
  # configuration for an external/existing fcrepo service;
23
41
  # ignored if `fcrepo.enabled` is true
24
42
  externalFcrepoHost: ""
@@ -98,6 +116,19 @@ readinessProbe:
98
116
 
99
117
  resources: {}
100
118
 
119
+ worker:
120
+ replicaCount: 3
121
+ image:
122
+ repository: samveralabs/dassie-worker
123
+ pullPolicy: IfNotPresent
124
+ tag: ""
125
+ imagePullSecrets: []
126
+ podSecurityContext: {}
127
+ nodeSelector: {}
128
+ tolerations: []
129
+ affinity: {}
130
+ resources: {}
131
+
101
132
  fcrepo:
102
133
  enabled: true
103
134
  externalDatabaseUsername: "hyrax"
data/config/features.rb CHANGED
@@ -1,46 +1,50 @@
1
1
  # frozen_string_literal: true
2
2
  Flipflop.configure do
3
- # Strategies will be used in the order listed here.
4
- strategy :cookie
5
- strategy :active_record, class: Hyrax::Feature
6
- strategy Hyrax::Strategies::YamlStrategy, config: Hyrax.config.feature_config_path
7
- strategy :default
8
-
9
- feature :proxy_deposit,
10
- default: true,
11
- description: "Depositors may designate proxies to deposit works on their behalf"
12
-
13
- feature :transfer_works,
14
- default: true,
15
- description: "Depositors may transfer their works to another user"
16
-
17
- # Note, if this is deactivated, a default admin set will be created and all
18
- # works will be assigned to it when they are created.
19
- feature :assign_admin_set,
20
- default: true,
21
- description: "Ability to assign uploaded items to an admin set"
22
-
23
- feature :show_deposit_agreement,
24
- default: true,
25
- description: "Show a deposit agreement to users creating works"
26
-
27
- feature :active_deposit_agreement_acceptance,
28
- default: Hyrax.config.active_deposit_agreement_acceptance?,
29
- description: "Require an active acceptance of the deposit agreement by checking a checkbox"
30
-
31
- feature :batch_upload,
32
- default: false,
33
- description: "Enable uploading batches of works"
34
-
35
- feature :hide_private_items,
36
- default: false,
37
- description: "Do not show the private items."
38
-
39
- feature :hide_users_list,
40
- default: true,
41
- description: "Do not show users list unless user has authenticated."
42
-
43
- feature :cache_work_iiif_manifest,
44
- default: false,
45
- description: "Use Rails.cache to cache the JSON document for IIIF manifests"
3
+ begin
4
+ # Strategies will be used in the order listed here.
5
+ strategy :cookie
6
+ strategy :active_record, class: Hyrax::Feature
7
+ strategy Hyrax::Strategies::YamlStrategy, config: Hyrax.config.feature_config_path
8
+ strategy :default
9
+
10
+ feature :proxy_deposit,
11
+ default: true,
12
+ description: "Depositors may designate proxies to deposit works on their behalf"
13
+
14
+ feature :transfer_works,
15
+ default: true,
16
+ description: "Depositors may transfer their works to another user"
17
+
18
+ # Note, if this is deactivated, a default admin set will be created and all
19
+ # works will be assigned to it when they are created.
20
+ feature :assign_admin_set,
21
+ default: true,
22
+ description: "Ability to assign uploaded items to an admin set"
23
+
24
+ feature :show_deposit_agreement,
25
+ default: true,
26
+ description: "Show a deposit agreement to users creating works"
27
+
28
+ feature :active_deposit_agreement_acceptance,
29
+ default: Hyrax.config.active_deposit_agreement_acceptance?,
30
+ description: "Require an active acceptance of the deposit agreement by checking a checkbox"
31
+
32
+ feature :batch_upload,
33
+ default: false,
34
+ description: "Enable uploading batches of works"
35
+
36
+ feature :hide_private_items,
37
+ default: false,
38
+ description: "Do not show the private items."
39
+
40
+ feature :hide_users_list,
41
+ default: true,
42
+ description: "Do not show users list unless user has authenticated."
43
+
44
+ feature :cache_work_iiif_manifest,
45
+ default: false,
46
+ description: "Use Rails.cache to cache the JSON document for IIIF manifests"
47
+ rescue Flipflop::StrategyError, Flipflop::FeatureError => err
48
+ Rails.logger.warn "Ignoring #{err}: #{err.message}"
49
+ end
46
50
  end
@@ -2,12 +2,14 @@
2
2
 
3
3
  Hyrax.publisher.subscribe(Hyrax::Listeners::AclIndexListener.new)
4
4
  Hyrax.publisher.subscribe(Hyrax::Listeners::ActiveFedoraAclIndexListener.new)
5
+ Hyrax.publisher.subscribe(Hyrax::Listeners::MemberCleanupListener.new)
5
6
  Hyrax.publisher.subscribe(Hyrax::Listeners::MetadataIndexListener.new)
6
7
  Hyrax.publisher.subscribe(Hyrax::Listeners::BatchNotificationListener.new)
7
8
  Hyrax.publisher.subscribe(Hyrax::Listeners::ObjectLifecycleListener.new)
8
9
  Hyrax.publisher.subscribe(Hyrax::Listeners::FileSetLifecycleListener.new)
9
10
  Hyrax.publisher.subscribe(Hyrax::Listeners::FileSetLifecycleNotificationListener.new)
10
11
  Hyrax.publisher.subscribe(Hyrax::Listeners::ProxyDepositListener.new)
12
+ Hyrax.publisher.subscribe(Hyrax::Listeners::TrophyCleanupListener.new)
11
13
  Hyrax.publisher.subscribe(Hyrax::Listeners::WorkflowListener.new)
12
14
 
13
15
  # Publish events from old style Hyrax::Callbacks to trigger the listeners
@@ -30,7 +30,7 @@ A Hyrax-based application includes lots of dependencies. We provide a [Docker im
30
30
  You can also try [Running Hyrax-based application in local VM](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide#running-hyrax-based-application-in-local-vm) which uses Ubuntu.
31
31
 
32
32
  This document contains instructions specific to setting up an app with __Hyrax
33
- v3.0.0__. If you are looking for instructions on installing a different
33
+ v3.0.1__. If you are looking for instructions on installing a different
34
34
  version, be sure to select the appropriate branch or tag from the drop-down
35
35
  menu above.
36
36
 
@@ -105,11 +105,11 @@ Starting up Redis will depend on your operating system, and may in fact already
105
105
 
106
106
  ## Rails
107
107
 
108
- Hyrax requires Rails 5. We recommend the latest Rails 5.2 release.
108
+ Hyrax requires Rails 5. We recommend the latest Rails 5.2.5 release.
109
109
 
110
110
  ```
111
111
  # If you don't already have Rails at your disposal...
112
- gem install rails -v 5.2.4.4
112
+ gem install rails -v 5.2.5
113
113
  ```
114
114
 
115
115
  ### JavaScript runtime
@@ -125,7 +125,7 @@ NOTE: The steps need to be done in order to create a new Hyrax based app.
125
125
  Generate a new Rails application using the template.
126
126
 
127
127
  ```
128
- rails _5.2.4.4_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v3.0.0/template.rb
128
+ rails _5.2.5_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v3.0.1/template.rb
129
129
  ```
130
130
 
131
131
  Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
@@ -50,7 +50,7 @@ The Samvera community is here to help. Please see our [support guide](./.github/
50
50
  # Getting started
51
51
 
52
52
  This document contains instructions specific to setting up an app with __Hyrax
53
- v3.0.0-rc3__. If you are looking for instructions on installing a different
53
+ v3.0.1__. If you are looking for instructions on installing a different
54
54
  version, be sure to select the appropriate branch or tag from the drop-down
55
55
  menu above.
56
56
 
@@ -139,11 +139,11 @@ Starting up Redis will depend on your operating system, and may in fact already
139
139
 
140
140
  ## Rails
141
141
 
142
- Hyrax requires Rails 5. We recommend the latest Rails 5.2 release.
142
+ Hyrax requires Rails 5. We recommend the latest Rails 5.2.5 release.
143
143
 
144
144
  ```
145
145
  # If you don't already have Rails at your disposal...
146
- gem install rails -v 5.2.4.4
146
+ gem install rails -v 5.2.5
147
147
  ```
148
148
 
149
149
  ### JavaScript runtime
@@ -159,7 +159,7 @@ NOTE: The steps need to be done in order to create a new Hyrax based app.
159
159
  Generate a new Rails application using the template.
160
160
 
161
161
  ```
162
- rails _5.2.4.4_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v3.0.0-rc3/template.rb
162
+ rails _5.2.5_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v3.0.1/template.rb
163
163
  ```
164
164
 
165
165
  Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
@@ -1,27 +1,29 @@
1
1
  # frozen_string_literal: true
2
- Riiif::Image.file_resolver = Riiif::HttpFileResolver.new
3
- Riiif::Image.info_service = lambda do |id, _file|
4
- # id will look like a path to a pcdm:file
5
- # (e.g. rv042t299%2Ffiles%2F6d71677a-4f80-42f1-ae58-ed1063fd79c7)
6
- # but we just want the id for the FileSet it's attached to.
2
+ ActiveSupport::Reloader.to_prepare do
3
+ Riiif::Image.file_resolver = Riiif::HttpFileResolver.new
4
+ Riiif::Image.info_service = lambda do |id, _file|
5
+ # id will look like a path to a pcdm:file
6
+ # (e.g. rv042t299%2Ffiles%2F6d71677a-4f80-42f1-ae58-ed1063fd79c7)
7
+ # but we just want the id for the FileSet it's attached to.
7
8
 
8
- # Capture everything before the first slash
9
- fs_id = id.sub(/\A([^\/]*)\/.*/, '\1')
10
- resp = Hyrax::SolrService.get("id:#{fs_id}")
11
- doc = resp['response']['docs'].first
12
- raise "Unable to find solr document with id:#{fs_id}" unless doc
13
- { height: doc['height_is'], width: doc['width_is'], format: doc['mime_type_ssi'], channels: doc['alpha_channels_ssi'] }
14
- end
9
+ # Capture everything before the first slash
10
+ fs_id = id.sub(/\A([^\/]*)\/.*/, '\1')
11
+ resp = Hyrax::SolrService.get("id:#{fs_id}")
12
+ doc = resp['response']['docs'].first
13
+ raise "Unable to find solr document with id:#{fs_id}" unless doc
14
+ { height: doc['height_is'], width: doc['width_is'], format: doc['mime_type_ssi'], channels: doc['alpha_channels_ssi'] }
15
+ end
15
16
 
16
- Riiif::Image.file_resolver.id_to_uri = lambda do |id|
17
- Hyrax::Base.id_to_uri(CGI.unescape(id)).tap do |url|
18
- Rails.logger.info "Riiif resolved #{id} to #{url}"
17
+ Riiif::Image.file_resolver.id_to_uri = lambda do |id|
18
+ Hyrax::Base.id_to_uri(CGI.unescape(id)).tap do |url|
19
+ Rails.logger.info "Riiif resolved #{id} to #{url}"
20
+ end
19
21
  end
20
- end
21
22
 
22
- Riiif::Image.authorization_service = Hyrax::IIIFAuthorizationService
23
+ Riiif::Image.authorization_service = Hyrax::IIIFAuthorizationService
23
24
 
24
- Riiif.not_found_image = Rails.root.join('app', 'assets', 'images', 'us_404.svg')
25
- Riiif.unauthorized_image = Rails.root.join('app', 'assets', 'images', 'us_404.svg')
25
+ Riiif.not_found_image = Rails.root.join('app', 'assets', 'images', 'us_404.svg')
26
+ Riiif.unauthorized_image = Rails.root.join('app', 'assets', 'images', 'us_404.svg')
26
27
 
27
- Riiif::Engine.config.cache_duration = 365.days
28
+ Riiif::Engine.config.cache_duration = 365.days
29
+ end