Class: Dor::StaticConfig

Inherits:
Object
  • Object
show all
Extended by:
ActiveSupport::Autoload
Defined in:
lib/dor/static_config.rb,
lib/dor/static_config/ssl_config.rb,
lib/dor/static_config/solr_config.rb,
lib/dor/static_config/suri_config.rb,
lib/dor/static_config/fedora_config.rb,
lib/dor/static_config/stacks_config.rb

Overview

Provides configuration for dor-services

Defined Under Namespace

Classes: FedoraConfig, SolrConfig, SslConfig, StacksConfig, SuriConfig

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ StaticConfig

Returns a new instance of StaticConfig.



17
18
19
20
21
22
23
# File 'lib/dor/static_config.rb', line 17

def initialize(hash)
  @ssl = SslConfig.new(hash.fetch(:ssl))
  @fedora = FedoraConfig.new(hash.fetch(:fedora))
  @solr = SolrConfig.new(hash.fetch(:solr))
  @stacks = StacksConfig.new(hash.fetch(:stacks))
  @suri = SuriConfig.new(hash.fetch(:suri))
end

Instance Method Details

#configure(&block) ⇒ Object



25
26
27
28
# File 'lib/dor/static_config.rb', line 25

def configure(&block)
  instance_eval(&block)
  maybe_connect_solr
end

#default_ssl_cert_storeObject



63
64
65
# File 'lib/dor/static_config.rb', line 63

def default_ssl_cert_store
  @default_ssl_cert_store ||= RestClient::Request.default_ssl_cert_store
end

#fedora(&block) ⇒ Object



72
73
74
75
# File 'lib/dor/static_config.rb', line 72

def fedora(&block)
  @fedora.configure(&block) if block_given?
  @fedora
end

#fedora_configObject

This is consumed by ActiveFedora.configurator



47
48
49
50
51
52
53
54
# File 'lib/dor/static_config.rb', line 47

def fedora_config
  fedora_uri = URI.parse(fedora.url)
  connection_opts = { url: fedora.safeurl, user: fedora_uri.user, password: fedora_uri.password }
  connection_opts[:ssl_client_cert] = OpenSSL::X509::Certificate.new(File.read(ssl.cert_file)) if ssl.cert_file.present?
  connection_opts[:ssl_client_key] = OpenSSL::PKey::RSA.new(File.read(ssl.key_file), ssl.key_pass) if ssl.key_file.present?
  connection_opts[:ssl_cert_store] = default_ssl_cert_store
  connection_opts
end

#make_solr_connectionObject



37
38
39
# File 'lib/dor/static_config.rb', line 37

def make_solr_connection
  ::RSolr.connect(url: Dor::Config.solr.url)
end

#maybe_connect_solrObject



30
31
32
33
34
35
# File 'lib/dor/static_config.rb', line 30

def maybe_connect_solr
  return unless solr.url.present?

  ActiveFedora::SolrService.register
  ActiveFedora::SolrService.instance.instance_variable_set :@conn, make_solr_connection
end

#predicate_configObject

This is consumed by ActiveFedora.configurator



57
58
59
60
61
# File 'lib/dor/static_config.rb', line 57

def predicate_config
  # rubocop:disable Security/YAMLLoad
  YAML.load(File.read(File.expand_path('../../config/predicate_mappings.yml', __dir__)))
  # rubocop:enable Security/YAMLLoad
end

#solr(&block) ⇒ Object



77
78
79
80
81
# File 'lib/dor/static_config.rb', line 77

def solr(&block)
  @solr.configure(&block) if block_given?

  @solr
end

#solr_configObject

This is consumed by ActiveFedora.configurator



42
43
44
# File 'lib/dor/static_config.rb', line 42

def solr_config
  { url: solr.url }
end

#ssl(&block) ⇒ Object



67
68
69
70
# File 'lib/dor/static_config.rb', line 67

def ssl(&block)
  @ssl.configure(&block) if block_given?
  @ssl
end

#stacks(&block) ⇒ Object



83
84
85
86
87
# File 'lib/dor/static_config.rb', line 83

def stacks(&block)
  @stacks.configure(&block) if block_given?

  @stacks
end

#suri(&block) ⇒ Object



89
90
91
92
93
# File 'lib/dor/static_config.rb', line 89

def suri(&block)
  @suri.configure(&block) if block_given?

  @suri
end