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.


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_nowObject


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_predicateObject


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_nameString

Returns:

  • (String)

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

def admin_user_group_name
  @admin_user_group_name ||= 'admin'
end

#analytic_start_dateObject

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

#analyticsObject

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

Parameters:

  • value

    the value to set the attribute arkivo_api to.


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

def arkivo_api=(value)
  @arkivo_api = value
end

#audit_user_keyObject


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

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

#bagit_dirObject


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

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

365
366
367
368
# File 'lib/hyrax/configuration.rb', line 365

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


647
648
649
# File 'lib/hyrax/configuration.rb', line 647

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

#branding_pathObject


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

Parameters:

  • value

    the value to set the attribute browse_everything to.


579
580
581
# File 'lib/hyrax/configuration.rb', line 579

def browse_everything=(value)
  @browse_everything = value
end

#cache_pathObject


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_runnerObject

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

Parameters:

  • value

    the value to set the attribute citations to.


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

def citations=(value)
  @citations = value
end

#collection_type_index_fieldObject


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_emailObject


733
734
735
# File 'lib/hyrax/configuration.rb', line 733

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


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_wingsBoolean

Returns:

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

Parameters:

  • value

    the value to set the attribute display_media_download_link to.


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

Parameters:

  • value

    the value to set the attribute display_microdata to.


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

#enable_ffmpegObject


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_ingestObject

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

Parameters:

  • value

    the value to set the attribute enable_noids to.


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

Parameters:

  • value

    the value to set the attribute extract_full_text to.


742
743
744
# File 'lib/hyrax/configuration.rb', line 742

def extract_full_text=(value)
  @extract_full_text = value
end

#feature_config_pathObject


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_pathObject

Note:

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_lengthObject


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

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


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

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

#fixity_serviceObject


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

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

#google_analytics_idObject 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_fieldObject


662
663
664
# File 'lib/hyrax/configuration.rb', line 662

def id_field
  @id_field || index_field_mapper.id_field
end

#identifier_registrarsObject


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

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


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

Parameters:

  • value

    the value to set the attribute iiif_image_server to.


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

Returns:

  • (#String)

    valid IIIF image size parameter


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

Returns:

  • (#call)

    lambda/proc that generates a URL to an image


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

Returns:

  • (#call)

    lambda/proc that generates a URL to image info


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_durationInteger

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

Returns:

  • (#Array)

    fields


248
249
250
# File 'lib/hyrax/configuration.rb', line 248

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

#import_export_jar_file_pathObject


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_mapperObject


667
668
669
# File 'lib/hyrax/configuration.rb', line 667

def index_field_mapper
  @index_field_mapper ||= ActiveFedora.index_field_mapper
end

#ingest_queue_nameObject


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

def ingest_queue_name
  @ingest_queue_name ||= :default
end

#libreoffice_pathObject


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

def libreoffice_path
  @libreoffice_path ||= "soffice"
end

#license_service_classObject


549
550
551
# File 'lib/hyrax/configuration.rb', line 549

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

#lock_retry_countObject


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_delayObject


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

def lock_retry_delay
  @lock_retry_delay ||= 200 # milliseconds
end

#lock_time_to_liveObject


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_checksObject


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_dashboardObject


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

def max_notifications_for_dashboard
  @max_notifications_for_dashboard ||= 5
end

#microdata_default_typeObject


440
441
442
# File 'lib/hyrax/configuration.rb', line 440

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

#minter_statefileObject


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

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

#nested_relationship_reindexerObject

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_classObject


175
176
177
# File 'lib/hyrax/configuration.rb', line 175

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

#noid_templateObject


170
171
172
# File 'lib/hyrax/configuration.rb', line 170

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

#owner_permission_levelsObject


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

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

#permission_levelsObject


679
680
681
682
# File 'lib/hyrax/configuration.rb', line 679

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

#permission_optionsObject


690
691
692
693
694
# File 'lib/hyrax/configuration.rb', line 690

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


565
566
567
# File 'lib/hyrax/configuration.rb', line 565

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

#public_user_group_nameString

Returns:

  • (String)

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

def public_user_group_name
  @public_user_group_name ||= 'public'
end

#publisherObject


697
698
699
# File 'lib/hyrax/configuration.rb', line 697

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


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_pageArray<Integer>

Returns:

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


570
571
572
# File 'lib/hyrax/configuration.rb', line 570

def redis_namespace
  @redis_namespace ||= "hyrax"
end

#registered_ingest_dirsObject


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_nameString

Returns:

  • (String)

156
157
158
# File 'lib/hyrax/configuration.rb', line 156

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)

268
269
270
# File 'lib/hyrax/configuration.rb', line 268

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

#resource_id_to_uri_transformerObject


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_classObject


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_rowsObject


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_pathObject


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_prefixObject


738
739
740
# File 'lib/hyrax/configuration.rb', line 738

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

#temp_file_baseObject

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_uriObject


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_idObject


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_pathObject


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

#uploaderObject


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_scannerObject


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

Parameters:

  • value

    the value to set the attribute work_requires_files to.


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

def work_requires_files=(value)
  @work_requires_files = value
end

#working_pathObject


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

Returns:

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

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)

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

def arkivo_api?
  @arkivo_api ||= false
end

#branding_storage_adapterValkyrie::StorageAdapter

Returns:

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

Parameters:

  • adapter (#to_sym)

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

Returns:

  • (Boolean)

580
581
582
# File 'lib/hyrax/configuration.rb', line 580

def browse_everything?
  @browse_everything ||= nil
end

#citations?Boolean

Returns:

  • (Boolean)

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

def citations?
  @citations ||= false
end

#curation_concernsArray<Class>

Returns the registered curation concerns.

Returns:

  • (Array<Class>)

    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_reindexerObject


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

Returns:

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

Returns:

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

Returns:

  • (Boolean)

673
674
675
676
# File 'lib/hyrax/configuration.rb', line 673

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)

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

Returns:

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

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:


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.

Returns:

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

    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

Parameters:

  • adapter (#to_sym)

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

Returns:

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

Parameters:

  • curation_concern_types (Array<Symbol>, Symbol)

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

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


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.

Returns:

  • (Boolean)

    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_dirsObject

Deprecated.

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

Deprecated.

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

Returns:

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