Module: UmbrellioUtils

Extended by:
UmbrellioUtils
Included in:
UmbrellioUtils
Defined in:
lib/umbrellio_utils.rb,
lib/umbrellio_utils/sql.rb,
lib/umbrellio_utils/misc.rb,
lib/umbrellio_utils/cards.rb,
lib/umbrellio_utils/store.rb,
lib/umbrellio_utils/vault.rb,
lib/umbrellio_utils/checks.rb,
lib/umbrellio_utils/random.rb,
lib/umbrellio_utils/control.rb,
lib/umbrellio_utils/parsing.rb,
lib/umbrellio_utils/version.rb,
lib/umbrellio_utils/database.rb,
lib/umbrellio_utils/rounding.rb,
lib/umbrellio_utils/constants.rb,
lib/umbrellio_utils/passwords.rb,
lib/umbrellio_utils/formatting.rb,
lib/umbrellio_utils/migrations.rb,
lib/umbrellio_utils/click_house.rb,
lib/umbrellio_utils/http_client.rb,
lib/umbrellio_utils/request_wrapper.rb,
lib/umbrellio_utils/click_house/backends.rb,
lib/umbrellio_utils/click_house/backends/base.rb,
lib/umbrellio_utils/click_house/backends/legacy.rb,
lib/umbrellio_utils/click_house/backends/native.rb,
lib/umbrellio_utils/semantic_logger/tiny_json_formatter.rb

Defined Under Namespace

Modules: Cards, Checks, ClickHouse, Constants, Control, Database, Formatting, Jobs, Migrations, Misc, Parsing, Passwords, Random, Rounding, SQL, SemanticLogger, Store, Vault Classes: HTTPClient, RequestWrapper

Constant Summary collapse

GLOBAL_MUTEX =
Mutex.new
VERSION =
"1.13.0"

Instance Method Summary collapse

Instance Method Details

#configObject

rubocop:disable Style/ClassVars



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/umbrellio_utils.rb', line 16

def config
  synchronize do
    @@config ||= Struct
      .new(
        :store_table_name,
        :http_client_name,
        :ch_optimize_timeout,
        :clickhouse_backend,
        :clickhouse_native_settings,
        :clickhouse_native_logger,
        :clickhouse_cluster,
        keyword_init: true,
      )
      .new(**default_settings)
  end
end

#configureObject

rubocop:enable Style/ClassVars



35
36
37
38
39
40
41
# File 'lib/umbrellio_utils.rb', line 35

def configure
  synchronize { yield config }
  # Consumers on the native backend rely on `::ClickHouse.config`
  # being available at rake/runtime (e.g. umbrellio-sequel-plugins'
  # ch:create). Load the shim eagerly once the backend is selected.
  require_relative "umbrellio_utils/click_house/config" if config.clickhouse_backend == :native
end

#extend_util!(module_name, &block) ⇒ Object



43
44
45
46
# File 'lib/umbrellio_utils.rb', line 43

def extend_util!(module_name, &block)
  const = UmbrellioUtils.const_get(module_name)
  synchronize { const.class_eval(&block) }
end

#included(othermod) ⇒ Object



10
11
12
13
# File 'lib/umbrellio_utils.rb', line 10

def included(othermod)
  super
  othermod.extend(self)
end