Class: Algolia::Search::Config

Inherits:
BaseConfig show all
Includes:
CallType
Defined in:
lib/algolia/config/search_config.rb

Direct Known Subclasses

Recommend::Config

Constant Summary

Constants included from CallType

CallType::READ, CallType::WRITE

Instance Attribute Summary collapse

Attributes inherited from BaseConfig

#api_key, #app_id, #batch_size, #compression_type, #connect_timeout, #headers, #read_timeout, #symbolize_keys, #use_latest_settings, #write_timeout

Instance Method Summary collapse

Methods inherited from BaseConfig

#set_extra_header

Constructor Details

#initialize(opts = {}) ⇒ Config

Initialize a config

Parameters:

  • options (Hash)

    a customizable set of options



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/algolia/config/search_config.rb', line 18

def initialize(opts = {})
  super(opts)
  @default_hosts = []
  hosts          = []
  hosts << Transport::StatefulHost.new("#{app_id}-dsn.algolia.net", accept: READ)
  hosts << Transport::StatefulHost.new("#{app_id}.algolia.net", accept: WRITE)

  stateful_hosts = 1.upto(3).map do |i|
    Transport::StatefulHost.new("#{app_id}-#{i}.algolianet.com", accept: READ | WRITE)
  end.shuffle

  if opts.has_key?(:custom_hosts)
    opts[:custom_hosts].each do |host|
      host = Transport::StatefulHost.new(host)
      @default_hosts.push(host)
    end
  else
    @default_hosts = hosts + stateful_hosts
  end
end

Instance Attribute Details

#default_hostsObject

Returns the value of attribute default_hosts.



10
11
12
# File 'lib/algolia/config/search_config.rb', line 10

def default_hosts
  @default_hosts
end