Module: MeiliSearch::Rails::Configuration

Included in:
MeiliSearch::Rails
Defined in:
lib/meilisearch/rails/configuration.rb

Instance Method Summary collapse

Instance Method Details

#activate!Object



26
27
28
29
30
# File 'lib/meilisearch/rails/configuration.rb', line 26

def activate!
  semaphore.synchronize do
    @_config.merge!(active: true)
  end
end

#active?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/meilisearch/rails/configuration.rb', line 32

def active?
  configuration.fetch(:active, true)
end

#black_holeObject



36
37
38
# File 'lib/meilisearch/rails/configuration.rb', line 36

def black_hole
  @black_hole ||= NullObject.instance
end

#clientObject



44
45
46
47
48
49
50
51
52
53
# File 'lib/meilisearch/rails/configuration.rb', line 44

def client
  return black_hole unless active?

  ::MeiliSearch::Client.new(
    configuration[:meilisearch_url] || 'http://localhost:7700',
    configuration[:meilisearch_api_key],
    configuration.slice(:timeout, :max_retries)
                 .merge(client_agents: MeiliSearch::Rails.qualified_version)
  )
end

#configurationObject

Raises:



4
5
6
7
8
# File 'lib/meilisearch/rails/configuration.rb', line 4

def configuration
  raise NotConfigured if @_config.blank?

  @_config
end

#configuration=(configuration) ⇒ Object



10
11
12
# File 'lib/meilisearch/rails/configuration.rb', line 10

def configuration=(configuration)
  @_config = configuration
end

#deactivate!Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/meilisearch/rails/configuration.rb', line 14

def deactivate!
  semaphore.synchronize do
    @_config.merge!(active: false)

    return unless block_given?

    yield

    @_config.merge!(active: true)
  end
end

#semaphoreObject



40
41
42
# File 'lib/meilisearch/rails/configuration.rb', line 40

def semaphore
  @semaphore ||= Mutex.new
end