Sha256: f6763f7de55f44209ecdc7b43feecdd346c4cfef1bb154f6a84fb9c68ea9381a

Contents?: true

Size: 906 Bytes

Versions: 62

Compression:

Stored size: 906 Bytes

Contents

module Workarea
  module Configuration
    module Elasticsearch
      extend self

      def find
        workarea_config.presence || secrets_config.presence || env_config
      end

      def workarea_config
        (Workarea.config.elasticsearch || {}).deep_symbolize_keys
      end

      def secrets_config
        result = Rails.application.secrets.elasticsearch || {}
        result.deep_dup.deep_symbolize_keys
      end

      def env_config
        if env_hosts.present?
          { urls: env_hosts }
        elsif ENV['WORKAREA_ELASTICSEARCH_URL'].present?
          { url: ENV['WORKAREA_ELASTICSEARCH_URL'] }
        else
          { url: 'localhost:9200', logger: Rails.logger }
        end
      end

      private

      def env_hosts
        ENV
          .select { |k| k =~ /^WORKAREA_ELASTICSEARCH_URL_\d+$/ }
          .map(&:last)
          .reject(&:blank?)
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.26 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.45 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.25 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.23 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.44 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.22 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.43 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.21 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.42 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.20 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.41 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.19 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.40 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.18 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.39 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.17 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.38 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.16 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.37 lib/workarea/configuration/elasticsearch.rb