class Libis::Ingester::Initializer
noinspection RubyResolve
Attributes
config[RW]
database[RW]
Public Class Methods
init(config_file)
click to toggle source
# File lib/libis/ingester/initializer.rb, line 25 def self.init(config_file) initializer = self.instance initializer.configure(config_file) initializer.database initializer.sidekiq initializer end
new()
click to toggle source
# File lib/libis/ingester/initializer.rb, line 20 def initialize @config = nil @database = nil end
Private Class Methods
load_config(config_file)
click to toggle source
# File lib/libis/ingester/initializer.rb, line 123 def self.load_config(config_file) raise RuntimeError, "Configuration file '#{config_file}' not found." unless File.exist?(config_file) config = Libis::Tools::ConfigFile.new({}, preserve_original_keys: false) config << config_file config end
Public Instance Methods
configure(config_file)
click to toggle source
# File lib/libis/ingester/initializer.rb, line 33 def configure(config_file) @config = Initializer.load_config(config_file) raise RuntimeError, "Configuration file '#{config_file}' not found." unless @config raise RuntimeError, "Missing section 'config' in site config." unless @config.config ::Libis::Ingester.configure do |cfg| @config.config.each do |key, value| if value.is_a?(Hash) && cfg[key] unless cfg[key].respond_to?(:merge!) Libis::Ingester::Config.logger.error "Config value type mismatch for key #{key}. Old '#{cfg[key]}' - new '#{value}'" next end next unless cfg[key].is_a?(Hash) cfg[key].merge!(value) else cfg.send("#{key}=", value) end end end if @config.ingester && @config.ingester.task_dir ::Libis::Ingester::Config.require_all(@config.ingester.task_dir) end if @config.format_config Libis::Format::TypeDatabase.instance.load_types(@config.format_config.type_database) if @config.format_config.type_database Libis::Format::Tools::Fido.add_format(@config.format_config.fido_formats) if @config.format_config.fido_formats end self end
seed_database()
click to toggle source
# File lib/libis/ingester/initializer.rb, line 109 def seed_database raise RuntimeError, 'Database not initialized.' unless @database sources = [] sources << @config.database.seed_dir if @config.database.seed_dir && Dir.exist?(@config.database.seed_dir) sources << @config.seed.to_h if @config.seed @database.setup.seed(*sources) @database end
sidekiq()
click to toggle source
# File lib/libis/ingester/initializer.rb, line 81 def sidekiq return @sidekiq if @sidekiq raise RuntimeError, 'Missing sidekiq section in configuration.' unless @config && @config.sidekiq id = (@config.sidekiq.namespace.gsub(/\s/, '') || 'Ingester' rescue 'Ingester') Sidekiq.configure_client do |config| config.redis = { url: @config.sidekiq.redis_url, namespace: @config.sidekiq.namespace, id: "#{id}Client" }.cleanup end Sidekiq.configure_server do |config| config.redis = { url: @config.sidekiq.redis_url, namespace: @config.sidekiq.namespace, id: "#{id}Server" }.cleanup end @sidekiq = Sidekiq::Client.new end