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.15 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.36 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.14 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.35 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.13 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.34 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.12 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.33 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.11 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.10 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.32 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.9 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.31 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.8 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.30 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.7 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.29 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.6 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.4.28 lib/workarea/configuration/elasticsearch.rb
workarea-core-3.5.5 lib/workarea/configuration/elasticsearch.rb