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
-
#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
-
#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
604 605 606 |
# File 'lib/hyrax/configuration.rb', line 604 def active_deposit_agreement_acceptance=(value) @active_deposit_agreement_acceptance = value end |
#activity_to_show_default_seconds_since_now ⇒ Object
575 576 577 |
# File 'lib/hyrax/configuration.rb', line 575 def activity_to_show_default_seconds_since_now @activity_to_show_default_seconds_since_now ||= 24 * 60 * 60 end |
#admin_set_predicate ⇒ Object
611 612 613 |
# File 'lib/hyrax/configuration.rb', line 611 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
579 580 581 |
# File 'lib/hyrax/configuration.rb', line 579 def arkivo_api=(value) @arkivo_api = value end |
#audit_user_key ⇒ Object
632 633 634 |
# File 'lib/hyrax/configuration.rb', line 632 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
627 628 629 |
# File 'lib/hyrax/configuration.rb', line 627 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
559 560 561 |
# File 'lib/hyrax/configuration.rb', line 559 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
435 436 437 |
# File 'lib/hyrax/configuration.rb', line 435 def characterization_runner @characterization_runner end |
#citations=(value) ⇒ Object (writeonly)
Sets the attribute citations
564 565 566 |
# File 'lib/hyrax/configuration.rb', line 564 def citations=(value) @citations = value end |
#collection_type_index_field ⇒ Object
637 638 639 |
# File 'lib/hyrax/configuration.rb', line 637 def collection_type_index_field @collection_type_index_field ||= 'collection_type_gid_ssim' end |
#contact_email ⇒ Object
713 714 715 |
# File 'lib/hyrax/configuration.rb', line 713 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 |
#display_media_download_link=(value) ⇒ Object (writeonly)
Sets the attribute display_media_download_link
370 371 372 |
# File 'lib/hyrax/configuration.rb', line 370 def display_media_download_link=(value) @display_media_download_link = value end |
#display_microdata=(value) ⇒ Object (writeonly)
Sets the attribute display_microdata
413 414 415 |
# File 'lib/hyrax/configuration.rb', line 413 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?
652 653 654 |
# File 'lib/hyrax/configuration.rb', line 652 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.
411 412 413 |
# File 'lib/hyrax/configuration.rb', line 411 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
722 723 724 |
# File 'lib/hyrax/configuration.rb', line 722 def extract_full_text=(value) @extract_full_text = value end |
#feature_config_path ⇒ Object
407 408 409 |
# File 'lib/hyrax/configuration.rb', line 407 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
425 426 427 |
# File 'lib/hyrax/configuration.rb', line 425 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
642 643 644 |
# File 'lib/hyrax/configuration.rb', line 642 def id_field @id_field || index_field_mapper.id_field end |
#identifier_registrars ⇒ Object
750 751 752 |
# File 'lib/hyrax/configuration.rb', line 750 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
647 648 649 |
# File 'lib/hyrax/configuration.rb', line 647 def index_field_mapper @index_field_mapper ||= ActiveFedora.index_field_mapper end |
#ingest_queue_name ⇒ Object
462 463 464 |
# File 'lib/hyrax/configuration.rb', line 462 def ingest_queue_name @ingest_queue_name ||= :default end |
#libreoffice_path ⇒ Object
555 556 557 |
# File 'lib/hyrax/configuration.rb', line 555 def libreoffice_path @libreoffice_path ||= "soffice" end |
#license_service_class ⇒ Object
529 530 531 |
# File 'lib/hyrax/configuration.rb', line 529 def license_service_class @license_service_class ||= Hyrax::LicenseService end |
#lock_retry_count ⇒ Object
441 442 443 |
# File 'lib/hyrax/configuration.rb', line 441 def lock_retry_count @lock_retry_count ||= 600 # Up to 2 minutes of trying at intervals up to 200ms end |
#lock_retry_delay ⇒ Object
455 456 457 |
# File 'lib/hyrax/configuration.rb', line 455 def lock_retry_delay @lock_retry_delay ||= 200 # milliseconds end |
#lock_time_to_live ⇒ Object
448 449 450 |
# File 'lib/hyrax/configuration.rb', line 448 def lock_time_to_live @lock_time_to_live ||= 60_000 # milliseconds end |
#max_days_between_fixity_checks ⇒ Object
430 431 432 |
# File 'lib/hyrax/configuration.rb', line 430 def max_days_between_fixity_checks @max_days_between_fixity_checks ||= 7 end |
#max_notifications_for_dashboard ⇒ Object
570 571 572 |
# File 'lib/hyrax/configuration.rb', line 570 def max_notifications_for_dashboard @max_notifications_for_dashboard ||= 5 end |
#microdata_default_type ⇒ Object
420 421 422 |
# File 'lib/hyrax/configuration.rb', line 420 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.
738 739 740 |
# File 'lib/hyrax/configuration.rb', line 738 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
665 666 667 |
# File 'lib/hyrax/configuration.rb', line 665 def @owner_permission_levels ||= { I18n.t('hyrax.permission_levels.owner.edit') => "edit" } end |
#permission_levels ⇒ Object
659 660 661 662 |
# File 'lib/hyrax/configuration.rb', line 659 def @permission_levels ||= { I18n.t('hyrax.permission_levels.read') => "read", I18n.t('hyrax.permission_levels.edit') => "edit" } end |
#permission_options ⇒ Object
670 671 672 673 674 |
# File 'lib/hyrax/configuration.rb', line 670 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
545 546 547 |
# File 'lib/hyrax/configuration.rb', line 545 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
677 678 679 |
# File 'lib/hyrax/configuration.rb', line 677 def publisher @publisher ||= Hyrax::Publisher.instance end |
#query_index_from_valkyrie ⇒ Boolean
Returns whether to use the experimental valkyrie index.
394 395 396 |
# File 'lib/hyrax/configuration.rb', line 394 def query_index_from_valkyrie @query_index_from_valkyrie ||= false end |
#range_for_number_of_results_to_display_per_page ⇒ Array<Integer>
764 765 766 |
# File 'lib/hyrax/configuration.rb', line 764 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
585 586 587 |
# File 'lib/hyrax/configuration.rb', line 585 def realtime_notifications=(value) @realtime_notifications = value end |
#redis_namespace ⇒ Object
550 551 552 |
# File 'lib/hyrax/configuration.rb', line 550 def redis_namespace @redis_namespace ||= "hyrax" end |
#registered_ingest_dirs ⇒ Object
483 484 485 486 487 488 489 490 491 492 493 |
# File 'lib/hyrax/configuration.rb', line 483 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
702 703 704 705 706 707 708 709 710 |
# File 'lib/hyrax/configuration.rb', line 702 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
540 541 542 |
# File 'lib/hyrax/configuration.rb', line 540 def rights_statement_service_class @rights_statement_service_class ||= Hyrax::RightsStatementService end |
#show_work_item_rows ⇒ Object
622 623 624 |
# File 'lib/hyrax/configuration.rb', line 622 def show_work_item_rows @show_work_item_rows ||= 10 # rows on show view end |
#solr_select_path ⇒ Object
745 746 747 |
# File 'lib/hyrax/configuration.rb', line 745 def solr_select_path @solr_select_path ||= ActiveFedora.solr_config.fetch(:select_path, 'select') end |
#subject_prefix ⇒ Object
718 719 720 |
# File 'lib/hyrax/configuration.rb', line 718 def subject_prefix @subject_prefix ||= "Contact form:" end |
#temp_file_base ⇒ Object
Returns the value of attribute temp_file_base.
411 412 413 |
# File 'lib/hyrax/configuration.rb', line 411 def temp_file_base @temp_file_base end |
#translate_id_to_uri ⇒ Object
695 696 697 698 699 |
# File 'lib/hyrax/configuration.rb', line 695 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
683 684 685 686 687 688 689 690 691 692 |
# File 'lib/hyrax/configuration.rb', line 683 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
729 730 731 732 733 734 735 736 |
# File 'lib/hyrax/configuration.rb', line 729 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
615 616 617 |
# File 'lib/hyrax/configuration.rb', line 615 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
605 606 607 608 |
# File 'lib/hyrax/configuration.rb', line 605 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
580 581 582 |
# File 'lib/hyrax/configuration.rb', line 580 def arkivo_api? @arkivo_api ||= false end |
#browse_everything? ⇒ Boolean
560 561 562 |
# File 'lib/hyrax/configuration.rb', line 560 def browse_everything? @browse_everything ||= nil end |
#citations? ⇒ Boolean
565 566 567 |
# File 'lib/hyrax/configuration.rb', line 565 def citations? @citations ||= false end |
#curation_concerns ⇒ Array<Class>
Returns the registered curation concerns.
518 519 520 |
# File 'lib/hyrax/configuration.rb', line 518 def curation_concerns registered_curation_concern_types.map(&:constantize) end |
#default_nested_relationship_reindexer ⇒ Object
740 741 742 |
# File 'lib/hyrax/configuration.rb', line 740 def default_nested_relationship_reindexer ->(id:, extent:) { Samvera::NestingIndexer.reindex_relationships(id: id, extent: extent) } end |
#display_media_download_link? ⇒ Boolean
372 373 374 375 |
# File 'lib/hyrax/configuration.rb', line 372 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
414 415 416 417 |
# File 'lib/hyrax/configuration.rb', line 414 def display_microdata? return @display_microdata unless @display_microdata.nil? @display_microdata = true end |
#display_share_button_when_not_logged_in? ⇒ Boolean
653 654 655 656 |
# File 'lib/hyrax/configuration.rb', line 653 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
723 724 725 726 |
# File 'lib/hyrax/configuration.rb', line 723 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
600 601 602 |
# File 'lib/hyrax/configuration.rb', line 600 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.
382 383 384 |
# File 'lib/hyrax/configuration.rb', line 382 def index_adapter @index_adapter ||= Valkyrie::IndexingAdapter.find(:null_index) end |
#index_adapter=(adapter) ⇒ Object
388 389 390 |
# File 'lib/hyrax/configuration.rb', line 388 def index_adapter=(adapter) @index_adapter = Valkyrie::IndexingAdapter.find(adapter.to_sym) end |
#realtime_notifications? ⇒ Boolean
586 587 588 589 590 591 592 593 594 595 596 597 |
# File 'lib/hyrax/configuration.rb', line 586 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
504 505 506 507 508 |
# File 'lib/hyrax/configuration.rb', line 504 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
513 514 515 |
# File 'lib/hyrax/configuration.rb', line 513 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.
401 402 403 |
# File 'lib/hyrax/configuration.rb', line 401 def use_valkyrie? ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_VALKYRIE', false)) end |
#whitelisted_ingest_dirs ⇒ Object
467 468 469 470 471 |
# File 'lib/hyrax/configuration.rb', line 467 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
474 475 476 477 478 |
# File 'lib/hyrax/configuration.rb', line 474 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
616 617 618 619 |
# File 'lib/hyrax/configuration.rb', line 616 def work_requires_files? return true if @work_requires_files.nil? @work_requires_files end |