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.
- #google_analytics_id ⇒ Object (also: #google_analytics_id?)
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
- #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_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_runner ⇒ Object
Override characterization runner.
-
#citations ⇒ Object
writeonly
Sets the attribute citations.
- #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.
-
#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
- #max_days_between_fixity_checks ⇒ Object
- #max_notifications_for_dashboard ⇒ Object
- #microdata_default_type ⇒ Object
-
#nested_relationship_reindexer ⇒ Object
Returns the value of attribute nested_relationship_reindexer.
- #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_namespace ⇒ Object
- #registered_ingest_dirs ⇒ Object
- #resource_id_to_uri_transformer ⇒ Object
- #rights_statement_service_class ⇒ Object
- #show_work_item_rows ⇒ Object
- #solr_select_path ⇒ Object
- #subject_prefix ⇒ 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
-
#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
-
#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
- #arkivo_api? ⇒ Boolean
- #browse_everything? ⇒ Boolean
- #citations? ⇒ Boolean
-
#curation_concerns ⇒ Array<Class>
The registered curation concerns.
- #default_nested_relationship_reindexer ⇒ Object
- #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.
- #whitelisted_ingest_dirs ⇒ Object deprecated Deprecated.
- #whitelisted_ingest_dirs=(input) ⇒ Object deprecated Deprecated.
- #work_requires_files? ⇒ Boolean
Methods included from Callbacks
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
64 65 66 67 68 69 |
# File 'lib/hyrax/configuration.rb', line 64 def initialize @registered_concerns = [] @role_registry = Hyrax::RoleRegistry.new @default_active_workflow_name = DEFAULT_ACTIVE_WORKFLOW_NAME @nested_relationship_reindexer = default_nested_relationship_reindexer end |
Instance Attribute Details
#active_deposit_agreement_acceptance=(value) ⇒ Object (writeonly)
Sets the attribute active_deposit_agreement_acceptance
624 625 626 |
# File 'lib/hyrax/configuration.rb', line 624 def active_deposit_agreement_acceptance=(value) @active_deposit_agreement_acceptance = value end |
#activity_to_show_default_seconds_since_now ⇒ Object
595 596 597 |
# File 'lib/hyrax/configuration.rb', line 595 def activity_to_show_default_seconds_since_now @activity_to_show_default_seconds_since_now ||= 24 * 60 * 60 end |
#admin_set_predicate ⇒ Object
631 632 633 |
# File 'lib/hyrax/configuration.rb', line 631 def admin_set_predicate @admin_set_predicate ||= ::RDF::Vocab::DC.isPartOf end |
#admin_user_group_name ⇒ String
142 143 144 |
# File 'lib/hyrax/configuration.rb', line 142 def admin_user_group_name @admin_user_group_name ||= 'admin' end |
#analytic_start_date ⇒ Object
Returns the value of attribute analytic_start_date.
123 124 125 |
# File 'lib/hyrax/configuration.rb', line 123 def analytic_start_date @analytic_start_date end |
#analytics ⇒ Object
Returns the value of attribute analytics.
109 110 111 |
# File 'lib/hyrax/configuration.rb', line 109 def analytics @analytics end |
#arkivo_api=(value) ⇒ Object (writeonly)
Sets the attribute arkivo_api
599 600 601 |
# File 'lib/hyrax/configuration.rb', line 599 def arkivo_api=(value) @arkivo_api = value end |
#audit_user_key ⇒ Object
652 653 654 |
# File 'lib/hyrax/configuration.rb', line 652 def audit_user_key @audit_user_key ||= '[email protected]' end |
#bagit_dir ⇒ Object
278 279 280 |
# File 'lib/hyrax/configuration.rb', line 278 def bagit_dir @bagit_dir ||= "tmp/descriptions" end |
#banner_image ⇒ Object
365 366 367 368 |
# File 'lib/hyrax/configuration.rb', line 365 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
647 648 649 |
# File 'lib/hyrax/configuration.rb', line 647 def batch_user_key @batch_user_key ||= '[email protected]' end |
#branding_path ⇒ Object
308 309 310 |
# File 'lib/hyrax/configuration.rb', line 308 def branding_path @branding_path ||= ENV.fetch('HYRAX_BRANDING_PATH', Rails.root.join('public', 'branding')) end |
#browse_everything=(value) ⇒ Object (writeonly)
Sets the attribute browse_everything
579 580 581 |
# File 'lib/hyrax/configuration.rb', line 579 def browse_everything=(value) @browse_everything = value end |
#cache_path ⇒ Object
302 303 304 |
# File 'lib/hyrax/configuration.rb', line 302 def cache_path @cache_path ||= ->() { ENV.fetch('HYRAX_CACHE_PATH') { Rails.root.join('tmp', 'cache') } } end |
#characterization_runner ⇒ Object
Override characterization runner
455 456 457 |
# File 'lib/hyrax/configuration.rb', line 455 def characterization_runner @characterization_runner end |
#citations=(value) ⇒ Object (writeonly)
Sets the attribute citations
584 585 586 |
# File 'lib/hyrax/configuration.rb', line 584 def citations=(value) @citations = value end |
#collection_type_index_field ⇒ Object
657 658 659 |
# File 'lib/hyrax/configuration.rb', line 657 def collection_type_index_field @collection_type_index_field ||= 'collection_type_gid_ssim' end |
#contact_email ⇒ Object
733 734 735 |
# File 'lib/hyrax/configuration.rb', line 733 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.
83 84 85 |
# File 'lib/hyrax/configuration.rb', line 83 def default_active_workflow_name @default_active_workflow_name end |
#derivatives_path ⇒ Object
284 285 286 |
# File 'lib/hyrax/configuration.rb', line 284 def derivatives_path @derivatives_path ||= ENV.fetch('HYRAX_DERIVATIVES_PATH', Rails.root.join('tmp', 'derivatives')) end |
#disable_wings ⇒ Boolean
372 373 374 375 |
# File 'lib/hyrax/configuration.rb', line 372 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
378 379 380 |
# File 'lib/hyrax/configuration.rb', line 378 def display_media_download_link=(value) @display_media_download_link = value end |
#display_microdata=(value) ⇒ Object (writeonly)
Sets the attribute display_microdata
433 434 435 |
# File 'lib/hyrax/configuration.rb', line 433 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?
672 673 674 |
# File 'lib/hyrax/configuration.rb', line 672 def (value) @display_share_button_when_not_logged_in = value end |
#enable_ffmpeg ⇒ Object
316 317 318 319 |
# File 'lib/hyrax/configuration.rb', line 316 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.
431 432 433 |
# File 'lib/hyrax/configuration.rb', line 431 def enable_local_ingest @enable_local_ingest end |
#enable_noids=(value) ⇒ Object (writeonly)
Sets the attribute enable_noids
163 164 165 |
# File 'lib/hyrax/configuration.rb', line 163 def enable_noids=(value) @enable_noids = value end |
#extract_full_text=(value) ⇒ Object (writeonly)
Sets the attribute extract_full_text
742 743 744 |
# File 'lib/hyrax/configuration.rb', line 742 def extract_full_text=(value) @extract_full_text = value end |
#feature_config_path ⇒ Object
427 428 429 |
# File 'lib/hyrax/configuration.rb', line 427 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
325 326 327 |
# File 'lib/hyrax/configuration.rb', line 325 def ffmpeg_path @ffmpeg_path ||= ENV.fetch('HYRAX_FFMPEG_PATH', 'ffmpeg') end |
#fits_message_length ⇒ Object
338 339 340 |
# File 'lib/hyrax/configuration.rb', line 338 def @fits_message_length ||= 5 end |
#fits_path ⇒ Object
we recommend setting the FITS path with the ‘HYRAX_FITS_PATH` environment variable
333 334 335 |
# File 'lib/hyrax/configuration.rb', line 333 def fits_path @fits_path ||= ENV.fetch('HYRAX_FITS_PATH', 'fits.sh') end |
#fixity_service ⇒ Object
445 446 447 |
# File 'lib/hyrax/configuration.rb', line 445 def fixity_service @fixity_service ||= Hyrax::Fixity::ActiveFedoraFixityService end |
#google_analytics_id ⇒ Object Also known as: google_analytics_id?
116 117 118 |
# File 'lib/hyrax/configuration.rb', line 116 def google_analytics_id @google_analytics_id ||= nil end |
#id_field ⇒ Object
662 663 664 |
# File 'lib/hyrax/configuration.rb', line 662 def id_field @id_field || index_field_mapper.id_field end |
#identifier_registrars ⇒ Object
770 771 772 |
# File 'lib/hyrax/configuration.rb', line 770 def identifier_registrars @identifier_registrars ||= {} end |
#iiif_image_compliance_level_uri ⇒ String
URL that indicates your IIIF image server compliance level
234 235 236 |
# File 'lib/hyrax/configuration.rb', line 234 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
188 189 190 |
# File 'lib/hyrax/configuration.rb', line 188 def iiif_image_server=(value) @iiif_image_server = value end |
#iiif_image_size_default ⇒ #String
IIIF image size default
241 242 243 |
# File 'lib/hyrax/configuration.rb', line 241 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
220 221 222 |
# File 'lib/hyrax/configuration.rb', line 220 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
227 228 229 |
# File 'lib/hyrax/configuration.rb', line 227 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).
257 258 259 |
# File 'lib/hyrax/configuration.rb', line 257 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
248 249 250 |
# File 'lib/hyrax/configuration.rb', line 248 def @iiif_metadata_fields ||= Hyrax::Forms::WorkForm.required_fields end |
#import_export_jar_file_path ⇒ Object
345 346 347 |
# File 'lib/hyrax/configuration.rb', line 345 def import_export_jar_file_path @import_export_jar_file_path ||= "tmp/fcrepo-import-export.jar" end |
#index_field_mapper ⇒ Object
667 668 669 |
# File 'lib/hyrax/configuration.rb', line 667 def index_field_mapper @index_field_mapper ||= ActiveFedora.index_field_mapper end |
#ingest_queue_name ⇒ Object
482 483 484 |
# File 'lib/hyrax/configuration.rb', line 482 def ingest_queue_name @ingest_queue_name ||= :default end |
#libreoffice_path ⇒ Object
575 576 577 |
# File 'lib/hyrax/configuration.rb', line 575 def libreoffice_path @libreoffice_path ||= "soffice" end |
#license_service_class ⇒ Object
549 550 551 |
# File 'lib/hyrax/configuration.rb', line 549 def license_service_class @license_service_class ||= Hyrax::LicenseService end |
#lock_retry_count ⇒ Object
461 462 463 |
# File 'lib/hyrax/configuration.rb', line 461 def lock_retry_count @lock_retry_count ||= 600 # Up to 2 minutes of trying at intervals up to 200ms end |
#lock_retry_delay ⇒ Object
475 476 477 |
# File 'lib/hyrax/configuration.rb', line 475 def lock_retry_delay @lock_retry_delay ||= 200 # milliseconds end |
#lock_time_to_live ⇒ Object
468 469 470 |
# File 'lib/hyrax/configuration.rb', line 468 def lock_time_to_live @lock_time_to_live ||= 60_000 # milliseconds end |
#max_days_between_fixity_checks ⇒ Object
450 451 452 |
# File 'lib/hyrax/configuration.rb', line 450 def max_days_between_fixity_checks @max_days_between_fixity_checks ||= 7 end |
#max_notifications_for_dashboard ⇒ Object
590 591 592 |
# File 'lib/hyrax/configuration.rb', line 590 def max_notifications_for_dashboard @max_notifications_for_dashboard ||= 5 end |
#microdata_default_type ⇒ Object
440 441 442 |
# File 'lib/hyrax/configuration.rb', line 440 def microdata_default_type @microdata_default_type ||= 'http://schema.org/CreativeWork' end |
#minter_statefile ⇒ Object
180 181 182 |
# File 'lib/hyrax/configuration.rb', line 180 def minter_statefile @minter_statefile ||= '/tmp/minter-state' end |
#nested_relationship_reindexer ⇒ Object
Returns the value of attribute nested_relationship_reindexer.
758 759 760 |
# File 'lib/hyrax/configuration.rb', line 758 def nested_relationship_reindexer @nested_relationship_reindexer end |
#noid_minter_class ⇒ Object
175 176 177 |
# File 'lib/hyrax/configuration.rb', line 175 def noid_minter_class @noid_minter_class ||= ::Noid::Rails::Minter::Db end |
#noid_template ⇒ Object
170 171 172 |
# File 'lib/hyrax/configuration.rb', line 170 def noid_template @noid_template ||= '.reeddeeddk' end |
#owner_permission_levels ⇒ Object
685 686 687 |
# File 'lib/hyrax/configuration.rb', line 685 def @owner_permission_levels ||= { I18n.t('hyrax.permission_levels.owner.edit') => "edit" } end |
#permission_levels ⇒ Object
679 680 681 682 |
# File 'lib/hyrax/configuration.rb', line 679 def @permission_levels ||= { I18n.t('hyrax.permission_levels.read') => "read", I18n.t('hyrax.permission_levels.edit') => "edit" } end |
#permission_options ⇒ Object
690 691 692 693 694 |
# File 'lib/hyrax/configuration.rb', line 690 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
565 566 567 |
# File 'lib/hyrax/configuration.rb', line 565 def persistent_hostpath @persistent_hostpath ||= "http://localhost/files/" end |
#public_user_group_name ⇒ String
149 150 151 |
# File 'lib/hyrax/configuration.rb', line 149 def public_user_group_name @public_user_group_name ||= 'public' end |
#publisher ⇒ Object
697 698 699 |
# File 'lib/hyrax/configuration.rb', line 697 def publisher @publisher ||= Hyrax::Publisher.instance end |
#query_index_from_valkyrie ⇒ Boolean
Returns whether to use the experimental valkyrie index.
414 415 416 |
# File 'lib/hyrax/configuration.rb', line 414 def query_index_from_valkyrie @query_index_from_valkyrie ||= false end |
#range_for_number_of_results_to_display_per_page ⇒ Array<Integer>
784 785 786 |
# File 'lib/hyrax/configuration.rb', line 784 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
605 606 607 |
# File 'lib/hyrax/configuration.rb', line 605 def realtime_notifications=(value) @realtime_notifications = value end |
#redis_namespace ⇒ Object
570 571 572 |
# File 'lib/hyrax/configuration.rb', line 570 def redis_namespace @redis_namespace ||= "hyrax" end |
#registered_ingest_dirs ⇒ Object
503 504 505 506 507 508 509 510 511 512 513 |
# File 'lib/hyrax/configuration.rb', line 503 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
156 157 158 |
# File 'lib/hyrax/configuration.rb', line 156 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
268 269 270 |
# File 'lib/hyrax/configuration.rb', line 268 def rendering_predicate @rendering_predicate ||= ::RDF::Vocab::DC.hasFormat end |
#resource_id_to_uri_transformer ⇒ Object
722 723 724 725 726 727 728 729 730 |
# File 'lib/hyrax/configuration.rb', line 722 def resource_id_to_uri_transformer Deprecation.warn('Use Hyrax.config.translate_uri_to_id instead.') @resource_id_to_uri_transformer ||= lambda do |resource, base_url| file_id = CGI.escape(resource.file_identifier.to_s) fs_id = CGI.escape(resource.file_set_id.to_s) "#{base_url}#{::Noid::Rails.treeify(fs_id)}/files/#{file_id}" end end |
#rights_statement_service_class ⇒ Object
560 561 562 |
# File 'lib/hyrax/configuration.rb', line 560 def rights_statement_service_class @rights_statement_service_class ||= Hyrax::RightsStatementService end |
#show_work_item_rows ⇒ Object
642 643 644 |
# File 'lib/hyrax/configuration.rb', line 642 def show_work_item_rows @show_work_item_rows ||= 10 # rows on show view end |
#solr_select_path ⇒ Object
765 766 767 |
# File 'lib/hyrax/configuration.rb', line 765 def solr_select_path @solr_select_path ||= ActiveFedora.solr_config.fetch(:select_path, 'select') end |
#subject_prefix ⇒ Object
738 739 740 |
# File 'lib/hyrax/configuration.rb', line 738 def subject_prefix @subject_prefix ||= "Contact form:" end |
#temp_file_base ⇒ Object
Returns the value of attribute temp_file_base.
431 432 433 |
# File 'lib/hyrax/configuration.rb', line 431 def temp_file_base @temp_file_base end |
#translate_id_to_uri ⇒ Object
715 716 717 718 719 |
# File 'lib/hyrax/configuration.rb', line 715 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
703 704 705 706 707 708 709 710 711 712 |
# File 'lib/hyrax/configuration.rb', line 703 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
297 298 299 |
# File 'lib/hyrax/configuration.rb', line 297 def upload_path @upload_path ||= ->() { ENV.fetch('HYRAX_UPLOAD_PATH') { Rails.root.join('tmp', 'uploads') } } end |
#uploader ⇒ Object
749 750 751 752 753 754 755 756 |
# File 'lib/hyrax/configuration.rb', line 749 def uploader @uploader ||= if Rails.env.development? # use sequential uploads in development to avoid database locking problems with sqlite3. default_uploader_config.merge(limitConcurrentUploads: 1, sequentialUploads: true) else default_uploader_config end end |
#virus_scanner ⇒ Object
352 353 354 355 356 357 358 359 |
# File 'lib/hyrax/configuration.rb', line 352 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 |
#work_requires_files=(value) ⇒ Object (writeonly)
Sets the attribute work_requires_files
635 636 637 |
# File 'lib/hyrax/configuration.rb', line 635 def work_requires_files=(value) @work_requires_files = value end |
#working_path ⇒ Object
290 291 292 |
# File 'lib/hyrax/configuration.rb', line 290 def working_path @working_path ||= ENV.fetch('HYRAX_UPLOAD_PATH', Rails.root.join('tmp', 'uploads')) end |
Instance Method Details
#active_deposit_agreement_acceptance? ⇒ Boolean
625 626 627 628 |
# File 'lib/hyrax/configuration.rb', line 625 def active_deposit_agreement_acceptance? return true if @active_deposit_agreement_acceptance.nil? @active_deposit_agreement_acceptance end |
#analytics? ⇒ Boolean
110 111 112 113 |
# File 'lib/hyrax/configuration.rb', line 110 def analytics? @analytics ||= ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_ANALYTICS', false)) end |
#arkivo_api? ⇒ Boolean
600 601 602 |
# File 'lib/hyrax/configuration.rb', line 600 def arkivo_api? @arkivo_api ||= false end |
#branding_storage_adapter ⇒ Valkyrie::StorageAdapter
390 391 392 |
# File 'lib/hyrax/configuration.rb', line 390 def branding_storage_adapter @branding_storage_adapter ||= Valkyrie::StorageAdapter.find(:branding_disk) end |
#branding_storage_adapter=(adapter) ⇒ Object
396 397 398 |
# File 'lib/hyrax/configuration.rb', line 396 def branding_storage_adapter=(adapter) @branding_storage_adapter = Valkyrie::StorageAdapter.find(adapter.to_sym) end |
#browse_everything? ⇒ Boolean
580 581 582 |
# File 'lib/hyrax/configuration.rb', line 580 def browse_everything? @browse_everything ||= nil end |
#citations? ⇒ Boolean
585 586 587 |
# File 'lib/hyrax/configuration.rb', line 585 def citations? @citations ||= false end |
#curation_concerns ⇒ Array<Class>
Returns the registered curation concerns.
538 539 540 |
# File 'lib/hyrax/configuration.rb', line 538 def curation_concerns registered_curation_concern_types.map(&:constantize) end |
#default_nested_relationship_reindexer ⇒ Object
760 761 762 |
# File 'lib/hyrax/configuration.rb', line 760 def default_nested_relationship_reindexer ->(id:, extent:) { Samvera::NestingIndexer.reindex_relationships(id: id, extent: extent) } end |
#display_media_download_link? ⇒ Boolean
380 381 382 383 |
# File 'lib/hyrax/configuration.rb', line 380 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
434 435 436 437 |
# File 'lib/hyrax/configuration.rb', line 434 def display_microdata? return @display_microdata unless @display_microdata.nil? @display_microdata = true end |
#display_share_button_when_not_logged_in? ⇒ Boolean
673 674 675 676 |
# File 'lib/hyrax/configuration.rb', line 673 def return true if @display_share_button_when_not_logged_in.nil? @display_share_button_when_not_logged_in end |
#enable_noids? ⇒ Boolean
164 165 166 167 |
# File 'lib/hyrax/configuration.rb', line 164 def enable_noids? return @enable_noids unless @enable_noids.nil? @enable_noids = true end |
#extract_full_text? ⇒ Boolean
743 744 745 746 |
# File 'lib/hyrax/configuration.rb', line 743 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
620 621 622 |
# File 'lib/hyrax/configuration.rb', line 620 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.
212 213 214 215 |
# File 'lib/hyrax/configuration.rb', line 212 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.
402 403 404 |
# File 'lib/hyrax/configuration.rb', line 402 def index_adapter @index_adapter ||= Valkyrie::IndexingAdapter.find(:null_index) end |
#index_adapter=(adapter) ⇒ Object
408 409 410 |
# File 'lib/hyrax/configuration.rb', line 408 def index_adapter=(adapter) @index_adapter = Valkyrie::IndexingAdapter.find(adapter.to_sym) end |
#realtime_notifications? ⇒ Boolean
606 607 608 609 610 611 612 613 614 615 616 617 |
# File 'lib/hyrax/configuration.rb', line 606 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? Rails.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
524 525 526 527 528 |
# File 'lib/hyrax/configuration.rb', line 524 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
101 102 103 104 |
# File 'lib/hyrax/configuration.rb', line 101 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
533 534 535 |
# File 'lib/hyrax/configuration.rb', line 533 def registered_curation_concern_types @registered_concerns.map { |cc_type| normalize_concern_name(cc_type) } end |
#use_valkyrie? ⇒ Boolean
Returns whether to use experimental valkyrie storage features.
421 422 423 |
# File 'lib/hyrax/configuration.rb', line 421 def use_valkyrie? ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_VALKYRIE', false)) end |
#whitelisted_ingest_dirs ⇒ Object
487 488 489 490 491 |
# File 'lib/hyrax/configuration.rb', line 487 def whitelisted_ingest_dirs Deprecation.warn(self, "Samvera is deprecating #{self.class}#whitelisted_ingest_dirs " \ "in Hyrax 3.0. Instead use #{self.class}#registered_ingest_dirs.") registered_ingest_dirs end |
#whitelisted_ingest_dirs=(input) ⇒ Object
494 495 496 497 498 |
# File 'lib/hyrax/configuration.rb', line 494 def whitelisted_ingest_dirs=(input) Deprecation.warn(self, "Samvera is deprecating #{self.class}#whitelisted_ingest_dirs= " \ "in Hyrax 3.0. Instead use #{self.class}#registered_ingest_dirs=.") self.registered_ingest_dirs = input end |
#work_requires_files? ⇒ Boolean
636 637 638 639 |
# File 'lib/hyrax/configuration.rb', line 636 def work_requires_files? return true if @work_requires_files.nil? @work_requires_files end |