Class: Hyrax::Configuration
- Inherits:
-
Object
- Object
- Hyrax::Configuration
- Includes:
- Callbacks
- Defined in:
- lib/hyrax/configuration.rb
Overview
Handles configuration for the Hyrax engine.
This class provides a series of accessors for setting and retrieving global engine options. For convenient reference, options are grouped into the following functional areas:
-
Groups
-
Identifiers
-
IIIF
-
Local Storage
-
System Dependencies
-
Theme
-
Valkyrie
Groups
Hyrax has special handling for three groups: “admin”, “registered”, and “public”.
These settings support using custom names for these functional groups in object ACLs.
Identifiers
IIIF
Objects in Hyrax serve out IIIF manifests. These configuration options toggle server availability, allow customization of image and info URL generation, and provide other hooks for custom IIIF behavior.
Local Storage
Hyrax applications need local disk access to store working copies of files for a variety of purposes. Some of these storage paths need to be available all application processes. These options control the paths to use for each type of file.
System Dependiencies
Theme
Options related to the overall appearance of Hyrax.
Valkyrie
Experimental: Options for toggling Hyrax’s experimental “Wings” valkyrie adapter and configuring valkyrie.
Analytics collapse
-
#analytic_start_date ⇒ Object
Returns the value of attribute analytic_start_date.
-
#analytics ⇒ Object
Returns the value of attribute analytics.
- #analytics_provider ⇒ Object
- #analytics_start_date ⇒ Object
Groups collapse
- #admin_user_group_name ⇒ String
- #public_user_group_name ⇒ String
- #registered_user_group_name ⇒ String
Identifier Minting collapse
-
#enable_noids ⇒ Object
writeonly
Sets the attribute enable_noids.
- #minter_statefile ⇒ Object
- #noid_minter_class ⇒ Object
- #noid_template ⇒ Object
IIIF collapse
-
#iiif_image_compliance_level_uri ⇒ String
URL that indicates your IIIF image server compliance level.
-
#iiif_image_server ⇒ Object
writeonly
Sets the attribute iiif_image_server.
-
#iiif_image_size_default ⇒ #String
IIIF image size default.
-
#iiif_image_url_builder ⇒ #call
URL that resolves to an image provided by a IIIF image server.
-
#iiif_info_url_builder ⇒ #call
URL that resolves to an info.json file provided by a IIIF image server.
-
#iiif_manifest_cache_duration ⇒ Integer
Duration in which we should cache the generated IIIF manifest.
-
#iiif_metadata_fields ⇒ #Array
IIIF metadata - fields to display in the metadata section.
-
#rendering_predicate ⇒ RDF::URI
Set predicate for rendering to dc:hasFormat as defined in IIIF Presentation API context: iiif.io/api/presentation/2/context.json.
Local Storage collapse
- #bagit_dir ⇒ Object
- #branding_path ⇒ Object
- #cache_path ⇒ Object
- #derivatives_path ⇒ Object
- #upload_path ⇒ Object
- #working_path ⇒ Object
System Dependencies collapse
- #enable_ffmpeg ⇒ Object
- #ffmpeg_path ⇒ Object
- #fits_message_length ⇒ Object
- #fits_path ⇒ Object
- #import_export_jar_file_path ⇒ Object
- #virus_scanner ⇒ Object
Theme collapse
- #banner_image ⇒ Object
- #breadcrumb_builder ⇒ Object
- #disable_wings ⇒ Boolean
-
#display_media_download_link ⇒ Object
writeonly
Sets the attribute display_media_download_link.
Valkyrie collapse
-
#query_index_from_valkyrie ⇒ Boolean
Whether to use the experimental valkyrie index.
Instance Attribute Summary collapse
-
#active_deposit_agreement_acceptance ⇒ Object
writeonly
Sets the attribute active_deposit_agreement_acceptance.
- #activity_to_show_default_seconds_since_now ⇒ Object
-
#admin_set_model ⇒ #constantize
A string representation of the admin set model.
- #admin_set_predicate ⇒ Object
-
#arkivo_api ⇒ Object
writeonly
Sets the attribute arkivo_api.
- #audit_user_key ⇒ Object
- #batch_user_key ⇒ Object
-
#browse_everything ⇒ Object
writeonly
Sets the attribute browse_everything.
- #characterization_proxy ⇒ Object
-
#characterization_runner ⇒ Object
Override characterization runner.
-
#characterization_service ⇒ #run
@ see Hyrax::Characterization::ValkyrieCharacterizationService.
-
#citations ⇒ Object
writeonly
Sets the attribute citations.
-
#collection_model ⇒ #constantize
A string representation of the collection model.
- #collection_type_index_field ⇒ Object
- #contact_email ⇒ Object
-
#default_active_workflow_name ⇒ String
When an admin set is created, we need to activate a workflow.
-
#derivative_services ⇒ Array
The registered candidate derivative services.
-
#display_microdata ⇒ Object
writeonly
Sets the attribute display_microdata.
-
#display_share_button_when_not_logged_in ⇒ Object
writeonly
Should a button with “Share my work” show on the front page to users who are not logged in?.
-
#enable_local_ingest ⇒ Object
Returns the value of attribute enable_local_ingest.
-
#extract_full_text ⇒ Object
writeonly
Sets the attribute extract_full_text.
- #feature_config_path ⇒ Object
- #fixity_service ⇒ Object
- #id_field ⇒ Object
- #identifier_registrars ⇒ Object
- #index_field_mapper ⇒ Object
- #ingest_queue_name ⇒ Object
- #libreoffice_path ⇒ Object
- #license_service_class ⇒ Object
- #lock_retry_count ⇒ Object
- #lock_retry_delay ⇒ Object
- #lock_time_to_live ⇒ Object
- #logger ⇒ Logger
- #max_days_between_fixity_checks ⇒ Object
- #max_notifications_for_dashboard ⇒ Object
- #microdata_default_type ⇒ Object
- #owner_permission_levels ⇒ Object
- #permission_levels ⇒ Object
- #permission_options ⇒ Object
- #persistent_hostpath ⇒ Object
- #publisher ⇒ Object
- #range_for_number_of_results_to_display_per_page ⇒ Array<Integer>
-
#realtime_notifications ⇒ Object
writeonly
rubocop:disable Layout/LineLength.
-
#redis_connection ⇒ Object
Returns the value of attribute redis_connection.
- #redis_namespace ⇒ Object
- #registered_ingest_dirs ⇒ Object
- #rights_statement_service_class ⇒ Object
- #show_work_item_rows ⇒ Object
- #solr_default_method ⇒ Object
- #solr_select_path ⇒ Object
- #subject_prefix ⇒ Object
- #system_user_key ⇒ Object
-
#temp_file_base ⇒ Object
Returns the value of attribute temp_file_base.
- #translate_id_to_uri ⇒ Object
- #translate_uri_to_id ⇒ Object
- #uploader ⇒ Object
-
#visibility_map ⇒ Hyrax::VisibilityMap
A mapping from visibility string values to permissions; the default and reference implementation is provided by VisibilityMap.
-
#work_requires_files ⇒ Object
writeonly
Sets the attribute work_requires_files.
Analytics collapse
Identifier Minting collapse
IIIF collapse
-
#iiif_image_server? ⇒ Boolean
Enable IIIF image service.
Theme collapse
Valkyrie collapse
- #branding_storage_adapter ⇒ Valkyrie::StorageAdapter
- #branding_storage_adapter=(adapter) ⇒ Object
- #derivatives_storage_adapter ⇒ Valkyrie::StorageAdapter
- #derivatives_storage_adapter=(adapter) ⇒ Object
-
#index_adapter ⇒ #save, ...
An indexing adapter.
- #index_adapter=(adapter) ⇒ Object
-
#use_valkyrie? ⇒ Boolean
Whether to use experimental valkyrie storage features.
Instance Method Summary collapse
- #active_deposit_agreement_acceptance? ⇒ Boolean
-
#admin_set_class ⇒ Class
The configured admin set model class.
- #arkivo_api? ⇒ Boolean
- #browse_everything? ⇒ Boolean
- #citations? ⇒ Boolean
-
#collection_class ⇒ Class
The configured collection model class.
-
#curation_concerns ⇒ Array<Class>
The registered curation concerns.
-
#default_admin_set ⇒ Hyrax::AdministrativeSet
The default admin set.
-
#default_admin_set_id ⇒ String
The default admin set id.
- #display_microdata? ⇒ Boolean
- #display_share_button_when_not_logged_in? ⇒ Boolean
- #extract_full_text? ⇒ Boolean
-
#geonames_username=(username) ⇒ Object
rubocop:enable Layout/LineLength.
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #realtime_notifications? ⇒ Boolean
-
#register_curation_concern(*curation_concern_types) ⇒ Object
Registers the given curation concern model in the configuration.
-
#register_roles {|Hyrax::RoleRegistry| ... } ⇒ TrueClass
Exposes a means to register application critical roles.
-
#registered_curation_concern_types ⇒ Array<String>
The normalization done by this method must occur after the initialization process so it can take advantage of irregular inflections from config/initializers/inflections.rb.
-
#reset_default_admin_set ⇒ Object
If the default admin set is changed, call reset.
- #work_requires_files? ⇒ Boolean
Methods included from Callbacks
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
63 64 65 66 67 |
# File 'lib/hyrax/configuration.rb', line 63 def initialize @registered_concerns = [] @role_registry = Hyrax::RoleRegistry.new @default_active_workflow_name = DEFAULT_ACTIVE_WORKFLOW_NAME end |
Instance Attribute Details
#active_deposit_agreement_acceptance=(value) ⇒ Object (writeonly)
Sets the attribute active_deposit_agreement_acceptance
675 676 677 |
# File 'lib/hyrax/configuration.rb', line 675 def active_deposit_agreement_acceptance=(value) @active_deposit_agreement_acceptance = value end |
#activity_to_show_default_seconds_since_now ⇒ Object
646 647 648 |
# File 'lib/hyrax/configuration.rb', line 646 def activity_to_show_default_seconds_since_now @activity_to_show_default_seconds_since_now ||= 24 * 60 * 60 end |
#admin_set_model ⇒ #constantize
Returns a string representation of the admin set model.
738 739 740 |
# File 'lib/hyrax/configuration.rb', line 738 def admin_set_model @admin_set_model ||= 'AdminSet' end |
#admin_set_predicate ⇒ Object
682 683 684 |
# File 'lib/hyrax/configuration.rb', line 682 def admin_set_predicate @admin_set_predicate ||= ::RDF::Vocab::DC.isPartOf end |
#admin_user_group_name ⇒ String
168 169 170 |
# File 'lib/hyrax/configuration.rb', line 168 def admin_user_group_name @admin_user_group_name ||= 'admin' end |
#analytic_start_date ⇒ Object
Returns the value of attribute analytic_start_date.
149 150 151 |
# File 'lib/hyrax/configuration.rb', line 149 def analytic_start_date @analytic_start_date end |
#analytics ⇒ Object
Returns the value of attribute analytics.
120 121 122 |
# File 'lib/hyrax/configuration.rb', line 120 def analytics @analytics end |
#analytics_provider ⇒ Object
129 130 131 132 |
# File 'lib/hyrax/configuration.rb', line 129 def analytics_provider @analytics_provider ||= ENV.fetch('HYRAX_ANALYTICS_PROVIDER', 'google') end |
#analytics_start_date ⇒ Object
142 143 144 145 |
# File 'lib/hyrax/configuration.rb', line 142 def analytics_start_date @analytics_start_date ||= ENV.fetch('ANALYTICS_START_DATE', Time.zone.today - 1.year) end |
#arkivo_api=(value) ⇒ Object (writeonly)
Sets the attribute arkivo_api
650 651 652 |
# File 'lib/hyrax/configuration.rb', line 650 def arkivo_api=(value) @arkivo_api = value end |
#audit_user_key ⇒ Object
711 712 713 |
# File 'lib/hyrax/configuration.rb', line 711 def audit_user_key @audit_user_key ||= '[email protected]' end |
#bagit_dir ⇒ Object
304 305 306 |
# File 'lib/hyrax/configuration.rb', line 304 def bagit_dir @bagit_dir ||= "tmp/descriptions" end |
#banner_image ⇒ Object
391 392 393 394 |
# File 'lib/hyrax/configuration.rb', line 391 def # This image can be used for free and without attribution. See here for source and license: https://github.com/samvera/hyrax/issues/1551#issuecomment-326624909 @banner_image ||= 'https://user-images.githubusercontent.com/101482/29949206-ffa60d2c-8e67-11e7-988d-4910b8787d56.jpg' end |
#batch_user_key ⇒ Object
706 707 708 |
# File 'lib/hyrax/configuration.rb', line 706 def batch_user_key @batch_user_key ||= '[email protected]' end |
#branding_path ⇒ Object
334 335 336 |
# File 'lib/hyrax/configuration.rb', line 334 def branding_path @branding_path ||= ENV.fetch('HYRAX_BRANDING_PATH', Rails.root.join('public', 'branding')) end |
#breadcrumb_builder ⇒ Object
397 398 399 |
# File 'lib/hyrax/configuration.rb', line 397 def @breadcrumb_builder ||= Hyrax::BootstrapBreadcrumbsBuilder end |
#browse_everything=(value) ⇒ Object (writeonly)
Sets the attribute browse_everything
630 631 632 |
# File 'lib/hyrax/configuration.rb', line 630 def browse_everything=(value) @browse_everything = value end |
#cache_path ⇒ Object
328 329 330 |
# File 'lib/hyrax/configuration.rb', line 328 def cache_path @cache_path ||= ->() { ENV.fetch('HYRAX_CACHE_PATH') { Rails.root.join('tmp', 'cache') } } end |
#characterization_proxy ⇒ Object
517 518 519 |
# File 'lib/hyrax/configuration.rb', line 517 def characterization_proxy @characterization_proxy ||= :original_file end |
#characterization_runner ⇒ Object
Override characterization runner
499 500 501 |
# File 'lib/hyrax/configuration.rb', line 499 def characterization_runner @characterization_runner end |
#characterization_service ⇒ #run
@ see Hyrax::Characterization::ValkyrieCharacterizationService
506 |
# File 'lib/hyrax/configuration.rb', line 506 attr_writer :characterization_service |
#citations=(value) ⇒ Object (writeonly)
Sets the attribute citations
635 636 637 |
# File 'lib/hyrax/configuration.rb', line 635 def citations=(value) @citations = value end |
#collection_model ⇒ #constantize
Returns a string representation of the collection model.
724 725 726 |
# File 'lib/hyrax/configuration.rb', line 724 def collection_model @collection_model ||= '::Collection' end |
#collection_type_index_field ⇒ Object
716 717 718 |
# File 'lib/hyrax/configuration.rb', line 716 def collection_type_index_field @collection_type_index_field ||= 'collection_type_gid_ssim' end |
#contact_email ⇒ Object
830 831 832 |
# File 'lib/hyrax/configuration.rb', line 830 def contact_email @contact_email ||= "[email protected]" end |
#default_active_workflow_name ⇒ String
The active workflow for an admin set can be changed at a later point.
Changing this value after other AdminSet(s) are created does not alter the already created AdminSet(s)
When an admin set is created, we need to activate a workflow. The :default_active_workflow_name is the name of the workflow we will activate.
94 95 96 |
# File 'lib/hyrax/configuration.rb', line 94 def default_active_workflow_name @default_active_workflow_name end |
#derivative_services ⇒ Array
The registered candidate derivative services. In the array, the first ‘valid?` candidate will handle the derivative generation.
885 886 887 |
# File 'lib/hyrax/configuration.rb', line 885 def derivative_services @derivative_services ||= [Hyrax::FileSetDerivativesService] end |
#derivatives_path ⇒ Object
310 311 312 |
# File 'lib/hyrax/configuration.rb', line 310 def derivatives_path @derivatives_path ||= ENV.fetch('HYRAX_DERIVATIVES_PATH', Rails.root.join('tmp', 'derivatives')) end |
#disable_wings ⇒ Boolean
403 404 405 406 |
# File 'lib/hyrax/configuration.rb', line 403 def disable_wings return @disable_wings unless @disable_wings.nil? ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_SKIP_WINGS', false)) end |
#display_media_download_link=(value) ⇒ Object (writeonly)
Sets the attribute display_media_download_link
409 410 411 |
# File 'lib/hyrax/configuration.rb', line 409 def display_media_download_link=(value) @display_media_download_link = value end |
#display_microdata=(value) ⇒ Object (writeonly)
Sets the attribute display_microdata
477 478 479 |
# File 'lib/hyrax/configuration.rb', line 477 def display_microdata=(value) @display_microdata = value end |
#display_share_button_when_not_logged_in=(value) ⇒ Object (writeonly)
Should a button with “Share my work” show on the front page to users who are not logged in?
780 781 782 |
# File 'lib/hyrax/configuration.rb', line 780 def (value) @display_share_button_when_not_logged_in = value end |
#enable_ffmpeg ⇒ Object
342 343 344 345 |
# File 'lib/hyrax/configuration.rb', line 342 def enable_ffmpeg return @enable_ffmpeg unless @enable_ffmpeg.nil? @enable_ffmpeg = false end |
#enable_local_ingest ⇒ Object
Returns the value of attribute enable_local_ingest.
475 476 477 |
# File 'lib/hyrax/configuration.rb', line 475 def enable_local_ingest @enable_local_ingest end |
#enable_noids=(value) ⇒ Object (writeonly)
Sets the attribute enable_noids
189 190 191 |
# File 'lib/hyrax/configuration.rb', line 189 def enable_noids=(value) @enable_noids = value end |
#extract_full_text=(value) ⇒ Object (writeonly)
Sets the attribute extract_full_text
839 840 841 |
# File 'lib/hyrax/configuration.rb', line 839 def extract_full_text=(value) @extract_full_text = value end |
#feature_config_path ⇒ Object
471 472 473 |
# File 'lib/hyrax/configuration.rb', line 471 def feature_config_path @feature_config_path ||= Rails.root.join('config', 'features.yml') end |
#ffmpeg_path ⇒ Object
we recommend setting the FFMPEG path with the ‘HYRAX_FFMPEG_PATH` environment variable
351 352 353 |
# File 'lib/hyrax/configuration.rb', line 351 def ffmpeg_path @ffmpeg_path ||= ENV.fetch('HYRAX_FFMPEG_PATH', 'ffmpeg') end |
#fits_message_length ⇒ Object
364 365 366 |
# File 'lib/hyrax/configuration.rb', line 364 def @fits_message_length ||= 5 end |
#fits_path ⇒ Object
we recommend setting the FITS path with the ‘HYRAX_FITS_PATH` environment variable
359 360 361 |
# File 'lib/hyrax/configuration.rb', line 359 def fits_path @fits_path ||= ENV.fetch('HYRAX_FITS_PATH', 'fits.sh') end |
#fixity_service ⇒ Object
489 490 491 |
# File 'lib/hyrax/configuration.rb', line 489 def fixity_service @fixity_service ||= Hyrax::Fixity::ActiveFedoraFixityService end |
#id_field ⇒ Object
770 771 772 |
# File 'lib/hyrax/configuration.rb', line 770 def id_field @id_field || index_field_mapper.id_field end |
#identifier_registrars ⇒ Object
861 862 863 |
# File 'lib/hyrax/configuration.rb', line 861 def identifier_registrars @identifier_registrars ||= {} end |
#iiif_image_compliance_level_uri ⇒ String
URL that indicates your IIIF image server compliance level
260 261 262 |
# File 'lib/hyrax/configuration.rb', line 260 def iiif_image_compliance_level_uri @iiif_image_compliance_level_uri ||= 'http://iiif.io/api/image/2/level2.json' end |
#iiif_image_server=(value) ⇒ Object (writeonly)
Sets the attribute iiif_image_server
214 215 216 |
# File 'lib/hyrax/configuration.rb', line 214 def iiif_image_server=(value) @iiif_image_server = value end |
#iiif_image_size_default ⇒ #String
IIIF image size default
267 268 269 |
# File 'lib/hyrax/configuration.rb', line 267 def iiif_image_size_default @iiif_image_size_default ||= '600,' end |
#iiif_image_url_builder ⇒ #call
URL that resolves to an image provided by a IIIF image server
246 247 248 |
# File 'lib/hyrax/configuration.rb', line 246 def iiif_image_url_builder @iiif_image_url_builder ||= ->(file_id, base_url, _size, _format) { "#{base_url}/downloads/#{file_id.split('/').first}" } end |
#iiif_info_url_builder ⇒ #call
URL that resolves to an info.json file provided by a IIIF image server
253 254 255 |
# File 'lib/hyrax/configuration.rb', line 253 def iiif_info_url_builder @iiif_info_url_builder ||= ->(_file_id, _base_url) { '' } end |
#iiif_manifest_cache_duration ⇒ Integer
Duration in which we should cache the generated IIIF manifest. Default is 30 days (in seconds).
283 284 285 |
# File 'lib/hyrax/configuration.rb', line 283 def iiif_manifest_cache_duration @iiif_manifest_cache_duration ||= 30.days.to_i end |
#iiif_metadata_fields ⇒ #Array
IIIF metadata - fields to display in the metadata section
274 275 276 |
# File 'lib/hyrax/configuration.rb', line 274 def @iiif_metadata_fields ||= Hyrax::Forms::WorkForm.required_fields end |
#import_export_jar_file_path ⇒ Object
371 372 373 |
# File 'lib/hyrax/configuration.rb', line 371 def import_export_jar_file_path @import_export_jar_file_path ||= "tmp/fcrepo-import-export.jar" end |
#index_field_mapper ⇒ Object
775 776 777 |
# File 'lib/hyrax/configuration.rb', line 775 def index_field_mapper @index_field_mapper ||= ActiveFedora.index_field_mapper end |
#ingest_queue_name ⇒ Object
546 547 548 |
# File 'lib/hyrax/configuration.rb', line 546 def ingest_queue_name @ingest_queue_name ||= :default end |
#libreoffice_path ⇒ Object
626 627 628 |
# File 'lib/hyrax/configuration.rb', line 626 def libreoffice_path @libreoffice_path ||= "soffice" end |
#license_service_class ⇒ Object
599 600 601 |
# File 'lib/hyrax/configuration.rb', line 599 def license_service_class @license_service_class ||= Hyrax::LicenseService end |
#lock_retry_count ⇒ Object
525 526 527 |
# File 'lib/hyrax/configuration.rb', line 525 def lock_retry_count @lock_retry_count ||= 600 # Up to 2 minutes of trying at intervals up to 200ms end |
#lock_retry_delay ⇒ Object
539 540 541 |
# File 'lib/hyrax/configuration.rb', line 539 def lock_retry_delay @lock_retry_delay ||= 200 # milliseconds end |
#lock_time_to_live ⇒ Object
532 533 534 |
# File 'lib/hyrax/configuration.rb', line 532 def lock_time_to_live @lock_time_to_live ||= 60_000 # milliseconds end |
#logger ⇒ Logger
77 78 79 80 81 82 83 |
# File 'lib/hyrax/configuration.rb', line 77 def logger @logger ||= if defined?(Rails) Rails.logger else Valkyrie.logger end end |
#max_days_between_fixity_checks ⇒ Object
494 495 496 |
# File 'lib/hyrax/configuration.rb', line 494 def max_days_between_fixity_checks @max_days_between_fixity_checks ||= 7 end |
#max_notifications_for_dashboard ⇒ Object
641 642 643 |
# File 'lib/hyrax/configuration.rb', line 641 def max_notifications_for_dashboard @max_notifications_for_dashboard ||= 5 end |
#microdata_default_type ⇒ Object
484 485 486 |
# File 'lib/hyrax/configuration.rb', line 484 def microdata_default_type @microdata_default_type ||= 'http://schema.org/CreativeWork' end |
#minter_statefile ⇒ Object
206 207 208 |
# File 'lib/hyrax/configuration.rb', line 206 def minter_statefile @minter_statefile ||= '/tmp/minter-state' end |
#noid_minter_class ⇒ Object
201 202 203 |
# File 'lib/hyrax/configuration.rb', line 201 def noid_minter_class @noid_minter_class ||= ::Noid::Rails::Minter::Db end |
#noid_template ⇒ Object
196 197 198 |
# File 'lib/hyrax/configuration.rb', line 196 def noid_template @noid_template ||= '.reeddeeddk' end |
#owner_permission_levels ⇒ Object
793 794 795 |
# File 'lib/hyrax/configuration.rb', line 793 def @owner_permission_levels ||= { I18n.t('hyrax.permission_levels.owner.edit') => "edit" } end |
#permission_levels ⇒ Object
787 788 789 790 |
# File 'lib/hyrax/configuration.rb', line 787 def @permission_levels ||= { I18n.t('hyrax.permission_levels.read') => "read", I18n.t('hyrax.permission_levels.edit') => "edit" } end |
#permission_options ⇒ Object
798 799 800 801 802 |
# File 'lib/hyrax/configuration.rb', line 798 def @permission_options ||= { I18n.t('hyrax.permission_levels.options.none') => "none", I18n.t('hyrax.permission_levels.options.read') => "read", I18n.t('hyrax.permission_levels.options.edit') => "edit" } end |
#persistent_hostpath ⇒ Object
615 616 617 |
# File 'lib/hyrax/configuration.rb', line 615 def persistent_hostpath @persistent_hostpath ||= "http://localhost/files/" end |
#public_user_group_name ⇒ String
175 176 177 |
# File 'lib/hyrax/configuration.rb', line 175 def public_user_group_name @public_user_group_name ||= 'public' end |
#publisher ⇒ Object
805 806 807 |
# File 'lib/hyrax/configuration.rb', line 805 def publisher @publisher ||= Hyrax::Publisher.instance end |
#query_index_from_valkyrie ⇒ Boolean
Returns whether to use the experimental valkyrie index.
457 458 459 |
# File 'lib/hyrax/configuration.rb', line 457 def query_index_from_valkyrie @query_index_from_valkyrie ||= false end |
#range_for_number_of_results_to_display_per_page ⇒ Array<Integer>
875 876 877 |
# File 'lib/hyrax/configuration.rb', line 875 def range_for_number_of_results_to_display_per_page @range_for_number_of_results_to_display_per_page ||= [10, 20, 50, 100] end |
#realtime_notifications=(value) ⇒ Object (writeonly)
rubocop:disable Layout/LineLength
656 657 658 |
# File 'lib/hyrax/configuration.rb', line 656 def realtime_notifications=(value) @realtime_notifications = value end |
#redis_connection ⇒ Object
Returns the value of attribute redis_connection.
619 620 621 |
# File 'lib/hyrax/configuration.rb', line 619 def redis_connection @redis_connection end |
#redis_namespace ⇒ Object
621 622 623 |
# File 'lib/hyrax/configuration.rb', line 621 def redis_namespace @redis_namespace ||= ENV.fetch("HYRAX_REDIS_NAMESPACE", "hyrax") end |
#registered_ingest_dirs ⇒ Object
553 554 555 556 557 558 559 560 561 562 563 |
# File 'lib/hyrax/configuration.rb', line 553 def registered_ingest_dirs @registered_ingest_dirs ||= \ if defined? BrowseEverything file_system_dirs = Array.wrap(BrowseEverything.config['file_system'].try(:[], :home)).compact # Include the Rails tmp directory for cases where the BrowseEverything provider is required to download the file to a temporary directory first tmp_dir = [Rails.root.join('tmp').to_s] file_system_dirs + tmp_dir else [] end end |
#registered_user_group_name ⇒ String
182 183 184 |
# File 'lib/hyrax/configuration.rb', line 182 def registered_user_group_name @registered_user_group_name ||= 'registered' end |
#rendering_predicate ⇒ RDF::URI
defaults to dc:hasFormat
Set predicate for rendering to dc:hasFormat as defined in IIIF Presentation API context: iiif.io/api/presentation/2/context.json
294 295 296 |
# File 'lib/hyrax/configuration.rb', line 294 def rendering_predicate @rendering_predicate ||= ::RDF::Vocab::DC.hasFormat end |
#rights_statement_service_class ⇒ Object
610 611 612 |
# File 'lib/hyrax/configuration.rb', line 610 def rights_statement_service_class @rights_statement_service_class ||= Hyrax::RightsStatementService end |
#show_work_item_rows ⇒ Object
693 694 695 |
# File 'lib/hyrax/configuration.rb', line 693 def show_work_item_rows @show_work_item_rows ||= 10 # rows on show view end |
#solr_default_method ⇒ Object
856 857 858 |
# File 'lib/hyrax/configuration.rb', line 856 def solr_default_method @solr_default_method ||= :post end |
#solr_select_path ⇒ Object
851 852 853 |
# File 'lib/hyrax/configuration.rb', line 851 def solr_select_path @solr_select_path ||= ActiveFedora.solr_config.fetch(:select_path, 'select') end |
#subject_prefix ⇒ Object
835 836 837 |
# File 'lib/hyrax/configuration.rb', line 835 def subject_prefix @subject_prefix ||= "Contact form:" end |
#system_user_key ⇒ Object
701 702 703 |
# File 'lib/hyrax/configuration.rb', line 701 def system_user_key @system_user_key ||= '[email protected]' end |
#temp_file_base ⇒ Object
Returns the value of attribute temp_file_base.
475 476 477 |
# File 'lib/hyrax/configuration.rb', line 475 def temp_file_base @temp_file_base end |
#translate_id_to_uri ⇒ Object
823 824 825 826 827 |
# File 'lib/hyrax/configuration.rb', line 823 def translate_id_to_uri @translate_id_to_uri ||= lambda do |id| "#{ActiveFedora.fedora.host}#{ActiveFedora.fedora.base_path}/#{::Noid::Rails.treeify(id)}" end end |
#translate_uri_to_id ⇒ Object
811 812 813 814 815 816 817 818 819 820 |
# File 'lib/hyrax/configuration.rb', line 811 def translate_uri_to_id @translate_uri_to_id ||= begin baseparts = 2 + [(::Noid::Rails.config.template.gsub(/\.[rsz]/, '').length.to_f / 2).ceil, 4].min lambda do |uri| uri.to_s.split(ActiveFedora.fedora.base_path).last.split('/', baseparts).last end end end |
#upload_path ⇒ Object
323 324 325 |
# File 'lib/hyrax/configuration.rb', line 323 def upload_path @upload_path ||= ->() { ENV.fetch('HYRAX_UPLOAD_PATH') { Rails.root.join('tmp', 'uploads') } } end |
#uploader ⇒ Object
846 847 848 |
# File 'lib/hyrax/configuration.rb', line 846 def uploader @uploader ||= default_uploader_config end |
#virus_scanner ⇒ Object
378 379 380 381 382 383 384 385 |
# File 'lib/hyrax/configuration.rb', line 378 def virus_scanner @virus_scanner ||= if Hyrax.primary_work_type.respond_to?(:default_system_virus_scanner) Hyrax.primary_work_type.default_system_virus_scanner else Hyrax::VirusScanner end end |
#visibility_map ⇒ Hyrax::VisibilityMap
A mapping from visibility string values to permissions; the default and reference implementation is provided by VisibilityMap.
896 897 898 |
# File 'lib/hyrax/configuration.rb', line 896 def visibility_map @visibility_map ||= Hyrax::VisibilityMap.instance end |
#work_requires_files=(value) ⇒ Object (writeonly)
Sets the attribute work_requires_files
686 687 688 |
# File 'lib/hyrax/configuration.rb', line 686 def work_requires_files=(value) @work_requires_files = value end |
#working_path ⇒ Object
316 317 318 |
# File 'lib/hyrax/configuration.rb', line 316 def working_path @working_path ||= ENV.fetch('HYRAX_UPLOAD_PATH', Rails.root.join('tmp', 'uploads')) end |
Instance Method Details
#active_deposit_agreement_acceptance? ⇒ Boolean
676 677 678 679 |
# File 'lib/hyrax/configuration.rb', line 676 def active_deposit_agreement_acceptance? return true if @active_deposit_agreement_acceptance.nil? @active_deposit_agreement_acceptance end |
#admin_set_class ⇒ Class
Returns the configured admin set model class.
744 745 746 |
# File 'lib/hyrax/configuration.rb', line 744 def admin_set_class admin_set_model.constantize end |
#analytics? ⇒ Boolean
121 122 123 124 |
# File 'lib/hyrax/configuration.rb', line 121 def analytics? @analytics ||= ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_ANALYTICS', false)) end |
#arkivo_api? ⇒ Boolean
651 652 653 |
# File 'lib/hyrax/configuration.rb', line 651 def arkivo_api? @arkivo_api ||= false end |
#branding_storage_adapter ⇒ Valkyrie::StorageAdapter
421 422 423 |
# File 'lib/hyrax/configuration.rb', line 421 def branding_storage_adapter @branding_storage_adapter ||= Valkyrie::StorageAdapter.find(:branding_disk) end |
#branding_storage_adapter=(adapter) ⇒ Object
427 428 429 |
# File 'lib/hyrax/configuration.rb', line 427 def branding_storage_adapter=(adapter) @branding_storage_adapter = Valkyrie::StorageAdapter.find(adapter.to_sym) end |
#browse_everything? ⇒ Boolean
631 632 633 |
# File 'lib/hyrax/configuration.rb', line 631 def browse_everything? @browse_everything ||= nil end |
#citations? ⇒ Boolean
636 637 638 |
# File 'lib/hyrax/configuration.rb', line 636 def citations? @citations ||= false end |
#collection_class ⇒ Class
Returns the configured collection model class.
730 731 732 |
# File 'lib/hyrax/configuration.rb', line 730 def collection_class collection_model.safe_constantize end |
#curation_concerns ⇒ Array<Class>
Returns the registered curation concerns.
588 589 590 |
# File 'lib/hyrax/configuration.rb', line 588 def curation_concerns registered_curation_concern_types.map(&:constantize) end |
#default_admin_set ⇒ Hyrax::AdministrativeSet
Returns the default admin set.
757 758 759 |
# File 'lib/hyrax/configuration.rb', line 757 def default_admin_set @default_admin_set ||= Hyrax::AdminSetCreateService.find_or_create_default_admin_set end |
#default_admin_set_id ⇒ String
Returns the default admin set id.
750 751 752 |
# File 'lib/hyrax/configuration.rb', line 750 def default_admin_set_id default_admin_set.id.to_s end |
#derivatives_storage_adapter ⇒ Valkyrie::StorageAdapter
433 434 435 |
# File 'lib/hyrax/configuration.rb', line 433 def derivatives_storage_adapter @derivatives_storage_adapter ||= Valkyrie::StorageAdapter.find(:derivatives_disk) end |
#derivatives_storage_adapter=(adapter) ⇒ Object
439 440 441 |
# File 'lib/hyrax/configuration.rb', line 439 def derivatives_storage_adapter=(adapter) @derivatives_storage_adapter = Valkyrie::StorageAdapter.find(adapter.to_sym) end |
#display_media_download_link? ⇒ Boolean
411 412 413 414 |
# File 'lib/hyrax/configuration.rb', line 411 def display_media_download_link? return @display_media_download_link unless @display_media_download_link.nil? @display_media_download_link = true end |
#display_microdata? ⇒ Boolean
478 479 480 481 |
# File 'lib/hyrax/configuration.rb', line 478 def display_microdata? return @display_microdata unless @display_microdata.nil? @display_microdata = true end |
#display_share_button_when_not_logged_in? ⇒ Boolean
781 782 783 784 |
# File 'lib/hyrax/configuration.rb', line 781 def return true if @display_share_button_when_not_logged_in.nil? @display_share_button_when_not_logged_in end |
#enable_noids? ⇒ Boolean
190 191 192 193 |
# File 'lib/hyrax/configuration.rb', line 190 def enable_noids? return @enable_noids unless @enable_noids.nil? @enable_noids = true end |
#extract_full_text? ⇒ Boolean
840 841 842 843 |
# File 'lib/hyrax/configuration.rb', line 840 def extract_full_text? return @extract_full_text unless @extract_full_text.nil? @extract_full_text = true end |
#geonames_username=(username) ⇒ Object
rubocop:enable Layout/LineLength
671 672 673 |
# File 'lib/hyrax/configuration.rb', line 671 def geonames_username=(username) Qa::Authorities::Geonames.username = username end |
#iiif_image_server? ⇒ Boolean
Default is false
Enable IIIF image service. This is required to use the IIIF viewer enabled show page
If you have run the hyrax:riiif generator, an embedded riiif service will be used to deliver images via IIIF. If you have not, you will need to configure the following other configuration values to work with your image server.
238 239 240 241 |
# File 'lib/hyrax/configuration.rb', line 238 def iiif_image_server? return @iiif_image_server unless @iiif_image_server.nil? @iiif_image_server = false end |
#index_adapter ⇒ #save, ...
Returns an indexing adapter.
445 446 447 |
# File 'lib/hyrax/configuration.rb', line 445 def index_adapter @index_adapter ||= Valkyrie::IndexingAdapter.find(:null_index) end |
#index_adapter=(adapter) ⇒ Object
451 452 453 |
# File 'lib/hyrax/configuration.rb', line 451 def index_adapter=(adapter) @index_adapter = Valkyrie::IndexingAdapter.find(adapter.to_sym) end |
#realtime_notifications? ⇒ Boolean
657 658 659 660 661 662 663 664 665 666 667 668 |
# File 'lib/hyrax/configuration.rb', line 657 def realtime_notifications? # Coerce @realtime_notifications to false if server software # does not support WebSockets, and warn the user that we are # overriding the value in0 their config unless it's already # flipped to false if ENV.fetch('SERVER_SOFTWARE', '').match(/Apache.*Phusion_Passenger/).present? Hyrax.logger.warn('Cannot enable realtime notifications atop Passenger + Apache. Coercing `Hyrax.config.realtime_notifications` to `false`. Set this value to `false` in config/initializers/hyrax.rb to stop seeing this warning.') unless @realtime_notifications == false @realtime_notifications = false end return @realtime_notifications unless @realtime_notifications.nil? @realtime_notifications = true end |
#register_curation_concern(*curation_concern_types) ⇒ Object
Registers the given curation concern model in the configuration
574 575 576 577 578 |
# File 'lib/hyrax/configuration.rb', line 574 def register_curation_concern(*curation_concern_types) Array.wrap(curation_concern_types).flatten.compact.each do |cc_type| @registered_concerns << cc_type unless @registered_concerns.include?(cc_type) end end |
#register_roles {|Hyrax::RoleRegistry| ... } ⇒ TrueClass
Exposes a means to register application critical roles
112 113 114 115 |
# File 'lib/hyrax/configuration.rb', line 112 def register_roles yield(@role_registry) true end |
#registered_curation_concern_types ⇒ Array<String>
The normalization done by this method must occur after the initialization process so it can take advantage of irregular inflections from config/initializers/inflections.rb
583 584 585 |
# File 'lib/hyrax/configuration.rb', line 583 def registered_curation_concern_types @registered_concerns.map { |cc_type| normalize_concern_name(cc_type) } end |
#reset_default_admin_set ⇒ Object
If the default admin set is changed, call reset. The next time one of the default admin set configs is checked, the default_admin_set variable will be updated.
765 766 767 |
# File 'lib/hyrax/configuration.rb', line 765 def reset_default_admin_set @default_admin_set = nil end |
#use_valkyrie? ⇒ Boolean
Returns whether to use experimental valkyrie storage features.
464 465 466 467 |
# File 'lib/hyrax/configuration.rb', line 464 def use_valkyrie? return true if disable_wings # always return true if wings is disabled ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_VALKYRIE', false)) end |
#work_requires_files? ⇒ Boolean
687 688 689 690 |
# File 'lib/hyrax/configuration.rb', line 687 def work_requires_files? return true if @work_requires_files.nil? @work_requires_files end |