Module: Typesense

Extended by:
Config
Defined in:
lib/typesense-rails.rb,
lib/typesense/config.rb,
lib/typesense/railtie.rb,
lib/typesense/version.rb,
lib/typesense/utilities.rb,
lib/typesense/import_job.rb,
lib/typesense/pagination.rb,
lib/typesense/typesense_job.rb,
lib/typesense/pagination/pagy.rb,
lib/typesense/pagination/kaminari.rb,
lib/typesense/pagination/will_paginate.rb

Defined Under Namespace

Modules: ClassMethods, Config, InstanceMethods, Pagination, Utilities Classes: BadConfiguration, Engine, ImportJob, IndexSettings, NoBlockGiven, NotConfigured, Railtie, TypesenseJob

Constant Summary collapse

GEM_VERSION =
"1.0.0.rc8"

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Config

client, configuration, configuration=, debug_info, initiliaze, log_level, log_level_to_const, pagination_backend, reset_server_version_cache!, server_major_version, setup_client

Class Attribute Details

.included_inObject (readonly)

Returns the value of attribute included_in.



32
33
34
# File 'lib/typesense-rails.rb', line 32

def included_in
  @included_in
end

.loggerObject



35
36
37
38
39
40
# File 'lib/typesense-rails.rb', line 35

def logger
  return @logger if defined?(@logger) && @logger

  rails_logger = (defined?(::Rails) && Rails.respond_to?(:logger)) ? Rails.logger : nil
  @logger = rails_logger || Logger.new($stdout)
end

Class Method Details

.included(klass) ⇒ Object



65
66
67
68
69
70
71
72
73
74
# File 'lib/typesense-rails.rb', line 65

def included(klass)
  @included_in ||= []
  @included_in << klass
  @included_in.uniq!

  klass.class_eval do
    extend ClassMethods
    include InstanceMethods
  end
end

.log(severity, message = nil, &block) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/typesense-rails.rb', line 42

def log(severity, message = nil, &block)
  # If a min log level is configured, skip below-threshold messages
  min_level = log_level
  if min_level && !passes_min_level?(severity, min_level)
    return
  end

  sev_const = log_level_to_const(severity)
  if logger.respond_to?(:tagged)
    logger.tagged("Typesense") { logger.add(sev_const, message, &block) }
  else
    logger.add(sev_const, message, &block)
  end
end

.passes_min_level?(severity, min_level) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
60
61
62
63
# File 'lib/typesense-rails.rb', line 57

def passes_min_level?(severity, min_level)
  return true if min_level.nil?

  sev_const = log_level_to_const(severity)
  min_const = log_level_to_const(min_level)
  sev_const >= min_const
end