nas/app/lib/chewy_config.rb
2024-05-17 09:01:13 +09:00

59 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require 'singleton'
require 'yaml'
class ChewyConfig
include Singleton
class InvalidElasticSearchVersionError < Mastodon::Error; end
CONFIG_VERSION = 1
def initialize
custom_config_file = Rails.root.join('.elasticsearch.yml')
default_config_file = Rails.root.join('config', 'elasticsearch.default.yml')
custom_config = nil
custom_config = YAML.load_file(custom_config_file) if File.exist?(custom_config_file)
default_config = YAML.load_file(default_config_file)
@config = default_config.merge(custom_config || {})
raise InvalidElasticSearchVersionError, "ElasticSearch config version is missmatch. expected version=#{CONFIG_VERSION} actual version=#{@config['version']}" if @config['version'] != CONFIG_VERSION
end
attr_reader :config
def accounts
config['accounts']
end
def accounts_analyzers
config['accounts_analyzers']
end
def public_statuses
config['public_statuses']
end
def public_statuses_analyzers
config['public_statuses_analyzers']
end
def statuses
config['statuses']
end
def statuses_analyzers
config['statuses_analyzers']
end
def tags
config['tags']
end
def tags_analyzers
config['tags_analyzers']
end
end