Class: Hyrax::Configuration

Inherits:
Object
  • Object
show all
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.

Examples:

adding configuration with `Hyrax.config` (recommended usage)


Hyrax.config do |config|
  config.work_requires_files = true
  config.derivatives_path('tmp/dir/for/derivatives/')
end

See Also:

Analytics collapse

Groups collapse

Identifier Minting collapse

IIIF collapse

Local Storage collapse

System Dependencies collapse

Theme collapse

Valkyrie collapse

Instance Attribute Summary collapse

Analytics collapse

Identifier Minting collapse

IIIF collapse

Theme collapse

Valkyrie collapse

Instance Method Summary collapse

Methods included from Callbacks

#callback

Constructor Details

#initializeConfiguration

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

Parameters:

  • value

    the value to set the attribute active_deposit_agreement_acceptance to.


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_nowObject


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.

Returns:

  • (#constantize)

    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_predicateObject


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_nameString

Returns:

  • (String)

172
173
174
# File 'lib/hyrax/configuration.rb', line 172

def admin_user_group_name
  @admin_user_group_name ||= 'admin'
end

#analytic_start_dateObject

Returns the value of attribute analytic_start_date.


138
139
140
# File 'lib/hyrax/configuration.rb', line 138

def analytic_start_date
  @analytic_start_date
end

#analyticsObject

Returns the value of attribute analytics.


109
110
111
# File 'lib/hyrax/configuration.rb', line 109

def analytics
  @analytics
end

#analytics_providerObject


118
119
120
121
# File 'lib/hyrax/configuration.rb', line 118

def analytics_provider
  @analytics_provider ||=
    ENV.fetch('HYRAX_ANALYTICS_PROVIDER', 'google')
end

#analytics_start_dateObject


131
132
133
134
# File 'lib/hyrax/configuration.rb', line 131

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

Parameters:

  • value

    the value to set the attribute arkivo_api to.


650
651
652
# File 'lib/hyrax/configuration.rb', line 650

def arkivo_api=(value)
  @arkivo_api = value
end

#audit_user_keyObject


711
712
713
# File 'lib/hyrax/configuration.rb', line 711

def audit_user_key
  @audit_user_key ||= '[email protected]'
end

#bagit_dirObject


308
309
310
# File 'lib/hyrax/configuration.rb', line 308

def bagit_dir
  @bagit_dir ||= "tmp/descriptions"
end

395
396
397
398
# File 'lib/hyrax/configuration.rb', line 395

def banner_image
  # 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_keyObject


706
707
708
# File 'lib/hyrax/configuration.rb', line 706

def batch_user_key
  @batch_user_key ||= '[email protected]'
end

#branding_pathObject


338
339
340
# File 'lib/hyrax/configuration.rb', line 338

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

Parameters:

  • value

    the value to set the attribute browse_everything to.


630
631
632
# File 'lib/hyrax/configuration.rb', line 630

def browse_everything=(value)
  @browse_everything = value
end

#cache_pathObject


332
333
334
# File 'lib/hyrax/configuration.rb', line 332

def cache_path
  @cache_path ||= ->() { ENV.fetch('HYRAX_CACHE_PATH') { Rails.root.join('tmp', 'cache') } }
end

#characterization_proxyObject


504
505
506
# File 'lib/hyrax/configuration.rb', line 504

def characterization_proxy
  @characterization_proxy ||= :original_file
end

#characterization_runnerObject

Override characterization runner


486
487
488
# File 'lib/hyrax/configuration.rb', line 486

def characterization_runner
  @characterization_runner
end

#characterization_service#run

@ see Hyrax::Characterization::ValkyrieCharacterizationService

Returns:

  • (#run)

    the service to use for charactaerization for Valkyrie objects


493
# File 'lib/hyrax/configuration.rb', line 493

attr_writer :characterization_service

#citations=(value) ⇒ Object (writeonly)

Sets the attribute citations

Parameters:

  • value

    the value to set the attribute citations to.


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.

Returns:

  • (#constantize)

    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_fieldObject


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_emailObject


841
842
843
# File 'lib/hyrax/configuration.rb', line 841

def contact_email
  @contact_email ||= "[email protected]"
end

#default_active_workflow_nameString

Note:

The active workflow for an admin set can be changed at a later point.

Note:

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.

Returns:

  • (String)

See Also:


83
84
85
# File 'lib/hyrax/configuration.rb', line 83

def default_active_workflow_name
  @default_active_workflow_name
end

#derivatives_pathObject


314
315
316
# File 'lib/hyrax/configuration.rb', line 314

def derivatives_path
  @derivatives_path ||= ENV.fetch('HYRAX_DERIVATIVES_PATH', Rails.root.join('tmp', 'derivatives'))
end

#disable_wingsBoolean

Returns:

  • (Boolean)

402
403
404
405
# File 'lib/hyrax/configuration.rb', line 402

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

Parameters:

  • value

    the value to set the attribute display_media_download_link to.


408
409
410
# File 'lib/hyrax/configuration.rb', line 408

def display_media_download_link=(value)
  @display_media_download_link = value
end

#display_microdata=(value) ⇒ Object (writeonly)

Sets the attribute display_microdata

Parameters:

  • value

    the value to set the attribute display_microdata to.


464
465
466
# File 'lib/hyrax/configuration.rb', line 464

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 display_share_button_when_not_logged_in=(value)
  @display_share_button_when_not_logged_in = value
end

#enable_ffmpegObject


346
347
348
349
# File 'lib/hyrax/configuration.rb', line 346

def enable_ffmpeg
  return @enable_ffmpeg unless @enable_ffmpeg.nil?
  @enable_ffmpeg = false
end

#enable_local_ingestObject

Returns the value of attribute enable_local_ingest.


462
463
464
# File 'lib/hyrax/configuration.rb', line 462

def enable_local_ingest
  @enable_local_ingest
end

#enable_noids=(value) ⇒ Object (writeonly)

Sets the attribute enable_noids

Parameters:

  • value

    the value to set the attribute enable_noids to.


193
194
195
# File 'lib/hyrax/configuration.rb', line 193

def enable_noids=(value)
  @enable_noids = value
end

#extract_full_text=(value) ⇒ Object (writeonly)

Sets the attribute extract_full_text

Parameters:

  • value

    the value to set the attribute extract_full_text to.


850
851
852
# File 'lib/hyrax/configuration.rb', line 850

def extract_full_text=(value)
  @extract_full_text = value
end

#feature_config_pathObject


458
459
460
# File 'lib/hyrax/configuration.rb', line 458

def feature_config_path
  @feature_config_path ||= Rails.root.join('config', 'features.yml')
end

#ffmpeg_pathObject

Note:

we recommend setting the FFMPEG path with the `HYRAX_FFMPEG_PATH` environment variable


355
356
357
# File 'lib/hyrax/configuration.rb', line 355

def ffmpeg_path
  @ffmpeg_path ||= ENV.fetch('HYRAX_FFMPEG_PATH', 'ffmpeg')
end

#fits_message_lengthObject


368
369
370
# File 'lib/hyrax/configuration.rb', line 368

def fits_message_length
  @fits_message_length ||= 5
end

#fits_pathObject

Note:

we recommend setting the FITS path with the `HYRAX_FITS_PATH` environment variable


363
364
365
# File 'lib/hyrax/configuration.rb', line 363

def fits_path
  @fits_path ||= ENV.fetch('HYRAX_FITS_PATH', 'fits.sh')
end

#fixity_serviceObject


476
477
478
# File 'lib/hyrax/configuration.rb', line 476

def fixity_service
  @fixity_service ||= Hyrax::Fixity::ActiveFedoraFixityService
end

#id_fieldObject


770
771
772
# File 'lib/hyrax/configuration.rb', line 770

def id_field
  @id_field || index_field_mapper.id_field
end

#identifier_registrarsObject


878
879
880
# File 'lib/hyrax/configuration.rb', line 878

def identifier_registrars
  @identifier_registrars ||= {}
end

#iiif_image_compliance_level_uriString

URL that indicates your IIIF image server compliance level

Returns:

  • (String)

    valid IIIF image compliance level URI


264
265
266
# File 'lib/hyrax/configuration.rb', line 264

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

Parameters:

  • value

    the value to set the attribute iiif_image_server to.


218
219
220
# File 'lib/hyrax/configuration.rb', line 218

def iiif_image_server=(value)
  @iiif_image_server = value
end

#iiif_image_size_default#String

IIIF image size default

Returns:

  • (#String)

    valid IIIF image size parameter


271
272
273
# File 'lib/hyrax/configuration.rb', line 271

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

Returns:

  • (#call)

    lambda/proc that generates a URL to an image


250
251
252
# File 'lib/hyrax/configuration.rb', line 250

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

Returns:

  • (#call)

    lambda/proc that generates a URL to image info


257
258
259
# File 'lib/hyrax/configuration.rb', line 257

def iiif_info_url_builder
  @iiif_info_url_builder ||= ->(_file_id, _base_url) { '' }
end

#iiif_manifest_cache_durationInteger

Duration in which we should cache the generated IIIF manifest. Default is 30 days (in seconds).


287
288
289
# File 'lib/hyrax/configuration.rb', line 287

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

Returns:

  • (#Array)

    fields


278
279
280
# File 'lib/hyrax/configuration.rb', line 278

def 
  @iiif_metadata_fields ||= Hyrax::Forms::WorkForm.required_fields
end

#import_export_jar_file_pathObject


375
376
377
# File 'lib/hyrax/configuration.rb', line 375

def import_export_jar_file_path
  @import_export_jar_file_path ||= "tmp/fcrepo-import-export.jar"
end

#index_field_mapperObject


775
776
777
# File 'lib/hyrax/configuration.rb', line 775

def index_field_mapper
  @index_field_mapper ||= ActiveFedora.index_field_mapper
end

#ingest_queue_nameObject


533
534
535
# File 'lib/hyrax/configuration.rb', line 533

def ingest_queue_name
  @ingest_queue_name ||= :default
end

#libreoffice_pathObject


626
627
628
# File 'lib/hyrax/configuration.rb', line 626

def libreoffice_path
  @libreoffice_path ||= "soffice"
end

#license_service_classObject


600
601
602
# File 'lib/hyrax/configuration.rb', line 600

def license_service_class
  @license_service_class ||= Hyrax::LicenseService
end

#lock_retry_countObject


512
513
514
# File 'lib/hyrax/configuration.rb', line 512

def lock_retry_count
  @lock_retry_count ||= 600 # Up to 2 minutes of trying at intervals up to 200ms
end

#lock_retry_delayObject


526
527
528
# File 'lib/hyrax/configuration.rb', line 526

def lock_retry_delay
  @lock_retry_delay ||= 200 # milliseconds
end

#lock_time_to_liveObject


519
520
521
# File 'lib/hyrax/configuration.rb', line 519

def lock_time_to_live
  @lock_time_to_live ||= 60_000 # milliseconds
end

#max_days_between_fixity_checksObject


481
482
483
# File 'lib/hyrax/configuration.rb', line 481

def max_days_between_fixity_checks
  @max_days_between_fixity_checks ||= 7
end

#max_notifications_for_dashboardObject


641
642
643
# File 'lib/hyrax/configuration.rb', line 641

def max_notifications_for_dashboard
  @max_notifications_for_dashboard ||= 5
end

#microdata_default_typeObject


471
472
473
# File 'lib/hyrax/configuration.rb', line 471

def microdata_default_type
  @microdata_default_type ||= 'http://schema.org/CreativeWork'
end

#minter_statefileObject


210
211
212
# File 'lib/hyrax/configuration.rb', line 210

def minter_statefile
  @minter_statefile ||= '/tmp/minter-state'
end

#nested_relationship_reindexerObject

Returns the value of attribute nested_relationship_reindexer.


866
867
868
# File 'lib/hyrax/configuration.rb', line 866

def nested_relationship_reindexer
  @nested_relationship_reindexer
end

#noid_minter_classObject


205
206
207
# File 'lib/hyrax/configuration.rb', line 205

def noid_minter_class
  @noid_minter_class ||= ::Noid::Rails::Minter::Db
end

#noid_templateObject


200
201
202
# File 'lib/hyrax/configuration.rb', line 200

def noid_template
  @noid_template ||= '.reeddeeddk'
end

#owner_permission_levelsObject


793
794
795
# File 'lib/hyrax/configuration.rb', line 793

def owner_permission_levels
  @owner_permission_levels ||= { I18n.t('hyrax.permission_levels.owner.edit') => "edit" }
end

#permission_levelsObject


787
788
789
790
# File 'lib/hyrax/configuration.rb', line 787

def permission_levels
  @permission_levels ||= { I18n.t('hyrax.permission_levels.read') => "read",
                           I18n.t('hyrax.permission_levels.edit') => "edit" }
end

#permission_optionsObject


798
799
800
801
802
# File 'lib/hyrax/configuration.rb', line 798

def permission_options
  @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_hostpathObject


616
617
618
# File 'lib/hyrax/configuration.rb', line 616

def persistent_hostpath
  @persistent_hostpath ||= "http://localhost/files/"
end

#public_user_group_nameString

Returns:

  • (String)

179
180
181
# File 'lib/hyrax/configuration.rb', line 179

def public_user_group_name
  @public_user_group_name ||= 'public'
end

#publisherObject


805
806
807
# File 'lib/hyrax/configuration.rb', line 805

def publisher
  @publisher ||= Hyrax::Publisher.instance
end

#query_index_from_valkyrieBoolean

Returns whether to use the experimental valkyrie index.

Returns:

  • (Boolean)

    whether to use the experimental valkyrie index


444
445
446
# File 'lib/hyrax/configuration.rb', line 444

def query_index_from_valkyrie
  @query_index_from_valkyrie ||= false
end

#range_for_number_of_results_to_display_per_pageArray<Integer>

Returns:

  • (Array<Integer>)

892
893
894
# File 'lib/hyrax/configuration.rb', line 892

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_namespaceObject


621
622
623
# File 'lib/hyrax/configuration.rb', line 621

def redis_namespace
  @redis_namespace ||= "hyrax"
end

#registered_ingest_dirsObject


554
555
556
557
558
559
560
561
562
563
564
# File 'lib/hyrax/configuration.rb', line 554

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_nameString

Returns:

  • (String)

186
187
188
# File 'lib/hyrax/configuration.rb', line 186

def registered_user_group_name
  @registered_user_group_name ||= 'registered'
end

#rendering_predicateRDF::URI

Note:

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

Returns:

  • (RDF::URI)

298
299
300
# File 'lib/hyrax/configuration.rb', line 298

def rendering_predicate
  @rendering_predicate ||= ::RDF::Vocab::DC.hasFormat
end

#resource_id_to_uri_transformerObject


830
831
832
833
834
835
836
837
838
# File 'lib/hyrax/configuration.rb', line 830

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_classObject


611
612
613
# File 'lib/hyrax/configuration.rb', line 611

def rights_statement_service_class
  @rights_statement_service_class ||= Hyrax::RightsStatementService
end

#show_work_item_rowsObject


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_select_pathObject


873
874
875
# File 'lib/hyrax/configuration.rb', line 873

def solr_select_path
  @solr_select_path ||= ActiveFedora.solr_config.fetch(:select_path, 'select')
end

#subject_prefixObject


846
847
848
# File 'lib/hyrax/configuration.rb', line 846

def subject_prefix
  @subject_prefix ||= "Contact form:"
end

#system_user_keyObject


701
702
703
# File 'lib/hyrax/configuration.rb', line 701

def system_user_key
  @system_user_key ||= '[email protected]'
end

#temp_file_baseObject

Returns the value of attribute temp_file_base.


462
463
464
# File 'lib/hyrax/configuration.rb', line 462

def temp_file_base
  @temp_file_base
end

#translate_id_to_uriObject


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_idObject


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_pathObject


327
328
329
# File 'lib/hyrax/configuration.rb', line 327

def upload_path
  @upload_path ||= ->() { ENV.fetch('HYRAX_UPLOAD_PATH') { Rails.root.join('tmp', 'uploads') } }
end

#uploaderObject


857
858
859
860
861
862
863
864
# File 'lib/hyrax/configuration.rb', line 857

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_scannerObject


382
383
384
385
386
387
388
389
# File 'lib/hyrax/configuration.rb', line 382

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

Parameters:

  • value

    the value to set the attribute work_requires_files to.


686
687
688
# File 'lib/hyrax/configuration.rb', line 686

def work_requires_files=(value)
  @work_requires_files = value
end

#working_pathObject


320
321
322
# File 'lib/hyrax/configuration.rb', line 320

def working_path
  @working_path ||= ENV.fetch('HYRAX_UPLOAD_PATH', Rails.root.join('tmp', 'uploads'))
end

Instance Method Details

#active_deposit_agreement_acceptance?Boolean

Returns:

  • (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_classClass

Returns the configured admin set model class.

Returns:

  • (Class)

    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

Returns:

  • (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

Returns:

  • (Boolean)

651
652
653
# File 'lib/hyrax/configuration.rb', line 651

def arkivo_api?
  @arkivo_api ||= false
end

#branding_storage_adapterValkyrie::StorageAdapter

Returns:

  • (Valkyrie::StorageAdapter)

420
421
422
# File 'lib/hyrax/configuration.rb', line 420

def branding_storage_adapter
  @branding_storage_adapter ||= Valkyrie::StorageAdapter.find(:branding_disk)
end

#branding_storage_adapter=(adapter) ⇒ Object

Parameters:

  • adapter (#to_sym)

426
427
428
# File 'lib/hyrax/configuration.rb', line 426

def branding_storage_adapter=(adapter)
  @branding_storage_adapter = Valkyrie::StorageAdapter.find(adapter.to_sym)
end

#browse_everything?Boolean

Returns:

  • (Boolean)

631
632
633
# File 'lib/hyrax/configuration.rb', line 631

def browse_everything?
  @browse_everything ||= nil
end

#citations?Boolean

Returns:

  • (Boolean)

636
637
638
# File 'lib/hyrax/configuration.rb', line 636

def citations?
  @citations ||= false
end

#collection_classClass

Returns the configured collection model class.

Returns:

  • (Class)

    the configured collection model class


730
731
732
# File 'lib/hyrax/configuration.rb', line 730

def collection_class
  collection_model.safe_constantize
end

#curation_concernsArray<Class>

Returns the registered curation concerns.

Returns:

  • (Array<Class>)

    the registered curation concerns


589
590
591
# File 'lib/hyrax/configuration.rb', line 589

def curation_concerns
  registered_curation_concern_types.map(&:constantize)
end

#default_admin_setHyrax::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_idString

Returns the default admin set id.

Returns:

  • (String)

    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

#default_nested_relationship_reindexerObject


868
869
870
# File 'lib/hyrax/configuration.rb', line 868

def default_nested_relationship_reindexer
  ->(id:, extent:) { Samvera::NestingIndexer.reindex_relationships(id: id, extent: extent) }
end

#display_media_download_link?Boolean

Returns:

  • (Boolean)

410
411
412
413
# File 'lib/hyrax/configuration.rb', line 410

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

Returns:

  • (Boolean)

465
466
467
468
# File 'lib/hyrax/configuration.rb', line 465

def display_microdata?
  return @display_microdata unless @display_microdata.nil?
  @display_microdata = true
end

#display_share_button_when_not_logged_in?Boolean

Returns:

  • (Boolean)

781
782
783
784
# File 'lib/hyrax/configuration.rb', line 781

def display_share_button_when_not_logged_in?
  return true if @display_share_button_when_not_logged_in.nil?
  @display_share_button_when_not_logged_in
end

#enable_noids?Boolean

Returns:

  • (Boolean)

194
195
196
197
# File 'lib/hyrax/configuration.rb', line 194

def enable_noids?
  return @enable_noids unless @enable_noids.nil?
  @enable_noids = true
end

#extract_full_text?Boolean

Returns:

  • (Boolean)

851
852
853
854
# File 'lib/hyrax/configuration.rb', line 851

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

#google_analytics_idObject Also known as: google_analytics_id?

Deprecated.

use analytics_id from config/analytics.yml instead


149
150
151
152
# File 'lib/hyrax/configuration.rb', line 149

def google_analytics_id
  Deprecation.warn("google_analytics_id is deprecated; use analytics_id from config/analytics.yml instead.")
  Hyrax::Analytics.config.analytics_id
end

#google_analytics_id=(value) ⇒ Object

Deprecated.

use analytics_id from config/analytics.yml instead


142
143
144
145
# File 'lib/hyrax/configuration.rb', line 142

def google_analytics_id=(value)
  Deprecation.warn("google_analytics_id is deprecated; use analytics_id from config/analytics.yml instead.")
  Hyrax::Analytics.config.analytics_id = value
end

#iiif_image_server?Boolean

Note:

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.

Returns:

  • (Boolean)

    true to enable, false to disable

See Also:


242
243
244
245
# File 'lib/hyrax/configuration.rb', line 242

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.

Returns:

  • (#save, #save_all, #delete, #wipe!)

    an indexing adapter


432
433
434
# File 'lib/hyrax/configuration.rb', line 432

def index_adapter
  @index_adapter ||= Valkyrie::IndexingAdapter.find(:null_index)
end

#index_adapter=(adapter) ⇒ Object

Parameters:

  • adapter (#to_sym)

438
439
440
# File 'lib/hyrax/configuration.rb', line 438

def index_adapter=(adapter)
  @index_adapter = Valkyrie::IndexingAdapter.find(adapter.to_sym)
end

#realtime_notifications?Boolean

Returns:

  • (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?
    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

Parameters:

  • curation_concern_types (Array<Symbol>, Symbol)

575
576
577
578
579
# File 'lib/hyrax/configuration.rb', line 575

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

Examples:

Hyrax.config.register_roles do |registry|
  registry.add(name: 'captaining', description: 'Grants captain duties')
end

Yields:

Returns:

  • (TrueClass)

101
102
103
104
# File 'lib/hyrax/configuration.rb', line 101

def register_roles
  yield(@role_registry)
  true
end

#registered_curation_concern_typesArray<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

Returns:

  • (Array<String>)

    the class names of the registered curation concerns


584
585
586
# File 'lib/hyrax/configuration.rb', line 584

def registered_curation_concern_types
  @registered_concerns.map { |cc_type| normalize_concern_name(cc_type) }
end

#reset_default_admin_setObject

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.

Returns:

  • (Boolean)

    whether to use experimental valkyrie storage features


451
452
453
454
# File 'lib/hyrax/configuration.rb', line 451

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

#whitelisted_ingest_dirsObject

Deprecated.

538
539
540
541
542
# File 'lib/hyrax/configuration.rb', line 538

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

Deprecated.

545
546
547
548
549
# File 'lib/hyrax/configuration.rb', line 545

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

Returns:

  • (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