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.



63
64
65
66
67
# File 'lib/hyrax/configuration.rb', line 63

def initialize
  @registered_concerns = []
  @role_registry = Hyrax::RoleRegistry.new
  @default_active_workflow_name = DEFAULT_ACTIVE_WORKFLOW_NAME
end

Instance Attribute Details

#active_deposit_agreement_acceptance=(value) ⇒ Object (writeonly)

Sets the attribute active_deposit_agreement_acceptance

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)


168
169
170
# File 'lib/hyrax/configuration.rb', line 168

def admin_user_group_name
  @admin_user_group_name ||= 'admin'
end

#analytic_start_dateObject

Returns the value of attribute analytic_start_date.



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

def analytic_start_date
  @analytic_start_date
end

#analyticsObject

Returns the value of attribute analytics.



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

def analytics
  @analytics
end

#analytics_providerObject



129
130
131
132
# File 'lib/hyrax/configuration.rb', line 129

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

#analytics_start_dateObject



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

def analytics_start_date
  @analytics_start_date ||=
    ENV.fetch('ANALYTICS_START_DATE', Time.zone.today - 1.year)
end

#arkivo_api=(value) ⇒ Object (writeonly)

Sets the attribute arkivo_api

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



304
305
306
# File 'lib/hyrax/configuration.rb', line 304

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


391
392
393
394
# File 'lib/hyrax/configuration.rb', line 391

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



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

def branding_path
  @branding_path ||= ENV.fetch('HYRAX_BRANDING_PATH', Rails.root.join('public', 'branding'))
end


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

def breadcrumb_builder
  @breadcrumb_builder ||= Hyrax::BootstrapBreadcrumbsBuilder
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



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

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

#characterization_proxyObject



517
518
519
# File 'lib/hyrax/configuration.rb', line 517

def characterization_proxy
  @characterization_proxy ||= :original_file
end

#characterization_runnerObject

Override characterization runner



499
500
501
# File 'lib/hyrax/configuration.rb', line 499

def characterization_runner
  @characterization_runner
end

#characterization_service#run

@ see Hyrax::Characterization::ValkyrieCharacterizationService

Returns:

  • (#run)

    the service to use for charactaerization for Valkyrie objects



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

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



830
831
832
# File 'lib/hyrax/configuration.rb', line 830

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:



94
95
96
# File 'lib/hyrax/configuration.rb', line 94

def default_active_workflow_name
  @default_active_workflow_name
end

#derivative_servicesArray

The registered candidate derivative services. In the array, the first ‘valid?` candidate will handle the derivative generation.

Returns:

  • (Array)

    of objects that conform to Hyrax::DerivativeService interface.

See Also:



885
886
887
# File 'lib/hyrax/configuration.rb', line 885

def derivative_services
  @derivative_services ||= [Hyrax::FileSetDerivativesService]
end

#derivatives_pathObject



310
311
312
# File 'lib/hyrax/configuration.rb', line 310

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

#disable_wingsBoolean

Returns:

  • (Boolean)


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

def disable_wings
  return @disable_wings unless @disable_wings.nil?
  ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_SKIP_WINGS', false))
end

#display_media_download_link=(value) ⇒ Object (writeonly)

Sets the attribute display_media_download_link

Parameters:

  • value

    the value to set the attribute display_media_download_link to.



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

def display_media_download_link=(value)
  @display_media_download_link = value
end

#display_microdata=(value) ⇒ Object (writeonly)

Sets the attribute display_microdata

Parameters:

  • value

    the value to set the attribute display_microdata to.



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

def display_microdata=(value)
  @display_microdata = value
end

#display_share_button_when_not_logged_in=(value) ⇒ Object (writeonly)

Should a button with “Share my work” show on the front page to users who are not logged in?



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

def display_share_button_when_not_logged_in=(value)
  @display_share_button_when_not_logged_in = value
end

#enable_ffmpegObject



342
343
344
345
# File 'lib/hyrax/configuration.rb', line 342

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

#enable_local_ingestObject

Returns the value of attribute enable_local_ingest.



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

def enable_local_ingest
  @enable_local_ingest
end

#enable_noids=(value) ⇒ Object (writeonly)

Sets the attribute enable_noids

Parameters:

  • value

    the value to set the attribute enable_noids to.



189
190
191
# File 'lib/hyrax/configuration.rb', line 189

def enable_noids=(value)
  @enable_noids = value
end

#extract_full_text=(value) ⇒ Object (writeonly)

Sets the attribute extract_full_text

Parameters:

  • value

    the value to set the attribute extract_full_text to.



839
840
841
# File 'lib/hyrax/configuration.rb', line 839

def extract_full_text=(value)
  @extract_full_text = value
end

#feature_config_pathObject



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

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

#ffmpeg_pathObject

Note:

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



351
352
353
# File 'lib/hyrax/configuration.rb', line 351

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

#fits_message_lengthObject



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

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



359
360
361
# File 'lib/hyrax/configuration.rb', line 359

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

#fixity_serviceObject



489
490
491
# File 'lib/hyrax/configuration.rb', line 489

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



861
862
863
# File 'lib/hyrax/configuration.rb', line 861

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



260
261
262
# File 'lib/hyrax/configuration.rb', line 260

def iiif_image_compliance_level_uri
  @iiif_image_compliance_level_uri ||= 'http://iiif.io/api/image/2/level2.json'
end

#iiif_image_server=(value) ⇒ Object (writeonly)

Sets the attribute iiif_image_server

Parameters:

  • value

    the value to set the attribute iiif_image_server to.



214
215
216
# File 'lib/hyrax/configuration.rb', line 214

def iiif_image_server=(value)
  @iiif_image_server = value
end

#iiif_image_size_default#String

IIIF image size default

Returns:

  • (#String)

    valid IIIF image size parameter



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

def iiif_image_size_default
  @iiif_image_size_default ||= '600,'
end

#iiif_image_url_builder#call

URL that resolves to an image provided by a IIIF image server

Returns:

  • (#call)

    lambda/proc that generates a URL to an image



246
247
248
# File 'lib/hyrax/configuration.rb', line 246

def iiif_image_url_builder
  @iiif_image_url_builder ||= ->(file_id, base_url, _size, _format) { "#{base_url}/downloads/#{file_id.split('/').first}" }
end

#iiif_info_url_builder#call

URL that resolves to an info.json file provided by a IIIF image server

Returns:

  • (#call)

    lambda/proc that generates a URL to image info



253
254
255
# File 'lib/hyrax/configuration.rb', line 253

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

#iiif_manifest_cache_durationInteger

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



283
284
285
# File 'lib/hyrax/configuration.rb', line 283

def iiif_manifest_cache_duration
  @iiif_manifest_cache_duration ||= 30.days.to_i
end

#iiif_metadata_fields#Array

IIIF metadata - fields to display in the metadata section

Returns:

  • (#Array)

    fields



274
275
276
# File 'lib/hyrax/configuration.rb', line 274

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

#import_export_jar_file_pathObject



371
372
373
# File 'lib/hyrax/configuration.rb', line 371

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

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



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

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



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

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

#lock_retry_countObject



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

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

#lock_retry_delayObject



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

def lock_retry_delay
  @lock_retry_delay ||= 200 # milliseconds
end

#lock_time_to_liveObject



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

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

#loggerLogger

Returns:

  • (Logger)


77
78
79
80
81
82
83
# File 'lib/hyrax/configuration.rb', line 77

def logger
  @logger ||= if defined?(Rails)
                Rails.logger
              else
                Valkyrie.logger
              end
end

#max_days_between_fixity_checksObject



494
495
496
# File 'lib/hyrax/configuration.rb', line 494

def max_days_between_fixity_checks
  @max_days_between_fixity_checks ||= 7
end

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



484
485
486
# File 'lib/hyrax/configuration.rb', line 484

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

#minter_statefileObject



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

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

#noid_minter_classObject



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

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

#noid_templateObject



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

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



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

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

#public_user_group_nameString

Returns:

  • (String)


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

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



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

def query_index_from_valkyrie
  @query_index_from_valkyrie ||= false
end

#range_for_number_of_results_to_display_per_pageArray<Integer>

Returns:

  • (Array<Integer>)


875
876
877
# File 'lib/hyrax/configuration.rb', line 875

def range_for_number_of_results_to_display_per_page
  @range_for_number_of_results_to_display_per_page ||= [10, 20, 50, 100]
end

#realtime_notifications=(value) ⇒ Object (writeonly)

rubocop:disable Layout/LineLength



656
657
658
# File 'lib/hyrax/configuration.rb', line 656

def realtime_notifications=(value)
  @realtime_notifications = value
end

#redis_connectionObject

Returns the value of attribute redis_connection.



619
620
621
# File 'lib/hyrax/configuration.rb', line 619

def redis_connection
  @redis_connection
end

#redis_namespaceObject



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

def redis_namespace
  @redis_namespace ||= ENV.fetch("HYRAX_REDIS_NAMESPACE", "hyrax")
end

#registered_ingest_dirsObject



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

def registered_ingest_dirs
  @registered_ingest_dirs ||= \
    if defined? BrowseEverything
      file_system_dirs = Array.wrap(BrowseEverything.config['file_system'].try(:[], :home)).compact
      # Include the Rails tmp directory for cases where the BrowseEverything provider is required to download the file to a temporary directory first
      tmp_dir = [Rails.root.join('tmp').to_s]
      file_system_dirs + tmp_dir
    else
      []
    end
end

#registered_user_group_nameString

Returns:

  • (String)


182
183
184
# File 'lib/hyrax/configuration.rb', line 182

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)


294
295
296
# File 'lib/hyrax/configuration.rb', line 294

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

#rights_statement_service_classObject



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

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

#show_work_item_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_default_methodObject



856
857
858
# File 'lib/hyrax/configuration.rb', line 856

def solr_default_method
  @solr_default_method ||= :post
end

#solr_select_pathObject



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

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

#subject_prefixObject



835
836
837
# File 'lib/hyrax/configuration.rb', line 835

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.



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

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



323
324
325
# File 'lib/hyrax/configuration.rb', line 323

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

#uploaderObject



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

def uploader
  @uploader ||= default_uploader_config
end

#virus_scannerObject



378
379
380
381
382
383
384
385
# File 'lib/hyrax/configuration.rb', line 378

def virus_scanner
  @virus_scanner ||=
    if Hyrax.primary_work_type.respond_to?(:default_system_virus_scanner)
      Hyrax.primary_work_type.default_system_virus_scanner
    else
      Hyrax::VirusScanner
    end
end

#visibility_mapHyrax::VisibilityMap

A mapping from visibility string values to permissions; the default and reference implementation is provided by VisibilityMap.



896
897
898
# File 'lib/hyrax/configuration.rb', line 896

def visibility_map
  @visibility_map ||= Hyrax::VisibilityMap.instance
end

#work_requires_files=(value) ⇒ Object (writeonly)

Sets the attribute work_requires_files

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



316
317
318
# File 'lib/hyrax/configuration.rb', line 316

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

Instance Method Details

#active_deposit_agreement_acceptance?Boolean

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)


121
122
123
124
# File 'lib/hyrax/configuration.rb', line 121

def analytics?
  @analytics ||=
    ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_ANALYTICS', false))
end

#arkivo_api?Boolean

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)


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

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

#branding_storage_adapter=(adapter) ⇒ Object

Parameters:

  • adapter (#to_sym)


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

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

#browse_everything?Boolean

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



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

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

#derivatives_storage_adapterValkyrie::StorageAdapter

Returns:

  • (Valkyrie::StorageAdapter)


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

def derivatives_storage_adapter
  @derivatives_storage_adapter ||= Valkyrie::StorageAdapter.find(:derivatives_disk)
end

#derivatives_storage_adapter=(adapter) ⇒ Object

Parameters:

  • adapter (#to_sym)


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

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

#display_media_download_link?Boolean

Returns:

  • (Boolean)


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

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

#display_microdata?Boolean

Returns:

  • (Boolean)


478
479
480
481
# File 'lib/hyrax/configuration.rb', line 478

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

#display_share_button_when_not_logged_in?Boolean

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)


190
191
192
193
# File 'lib/hyrax/configuration.rb', line 190

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

#extract_full_text?Boolean

Returns:

  • (Boolean)


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

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

#geonames_username=(username) ⇒ Object

rubocop:enable Layout/LineLength



671
672
673
# File 'lib/hyrax/configuration.rb', line 671

def geonames_username=(username)
  Qa::Authorities::Geonames.username = username
end

#iiif_image_server?Boolean

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:



238
239
240
241
# File 'lib/hyrax/configuration.rb', line 238

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

#index_adapter#save, ...

Returns an indexing adapter.

Returns:

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

    an indexing adapter



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

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

#index_adapter=(adapter) ⇒ Object

Parameters:

  • adapter (#to_sym)


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

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

#realtime_notifications?Boolean

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?
    Hyrax.logger.warn('Cannot enable realtime notifications atop Passenger + Apache. Coercing `Hyrax.config.realtime_notifications` to `false`. Set this value to `false` in config/initializers/hyrax.rb to stop seeing this warning.') unless @realtime_notifications == false
    @realtime_notifications = false
  end
  return @realtime_notifications unless @realtime_notifications.nil?
  @realtime_notifications = true
end

#register_curation_concern(*curation_concern_types) ⇒ Object

Registers the given curation concern model in the configuration

Parameters:

  • curation_concern_types (Array<Symbol>, Symbol)


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

def register_curation_concern(*curation_concern_types)
  Array.wrap(curation_concern_types).flatten.compact.each do |cc_type|
    @registered_concerns << cc_type unless @registered_concerns.include?(cc_type)
  end
end

#register_roles {|Hyrax::RoleRegistry| ... } ⇒ TrueClass

Exposes a means to register application critical roles

Examples:

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

Yields:

Returns:

  • (TrueClass)


112
113
114
115
# File 'lib/hyrax/configuration.rb', line 112

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



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

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

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



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

def use_valkyrie?
  return true if disable_wings # always return true if wings is disabled
  ActiveModel::Type::Boolean.new.cast(ENV.fetch('HYRAX_VALKYRIE', false))
end

#work_requires_files?Boolean

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