Class: Jekyll::ClientSearch::LiveSearchConfiguration

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/client_search/live_search_configuration.rb

Overview

Normalizes optional browser live-search behavior.

Constant Summary collapse

DEFAULTS =
{
  "min_chars" => 2,
  "debounce_ms" => 150,
  "semantic_debounce_ms" => 500,
  "update_url" => true
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(config, engine: "minisearch") ⇒ LiveSearchConfiguration

Returns a new instance of LiveSearchConfiguration.



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/jekyll/client_search/live_search_configuration.rb', line 14

def initialize(config, engine: "minisearch")
  unless config.is_a?(Hash)
    raise Jekyll::Errors::FatalException,
          "client_search live_search configuration must be a mapping"
  end

  @engine = engine
  @values = DEFAULTS.merge(config)
  @values["enabled"] = default_enabled?(engine) unless config.key?("enabled")
  validate!
end

Instance Method Details

#to_h(engine:) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/jekyll/client_search/live_search_configuration.rb', line 26

def to_h(engine:)
  {
    "enabled" => @values.fetch("enabled"),
    "minChars" => @values.fetch("min_chars"),
    "debounceMs" => debounce_ms(engine),
    "updateUrl" => @values.fetch("update_url")
  }
end