Module: ActiveRecord::Trino::Config
- Defined in:
- lib/active_record/trino/config.rb
Constant Summary collapse
- DEFAULT_QUERY_TIMEOUT =
150- DEFAULT_PLAN_TIMEOUT =
30- DEFAULT_SLOW_QUERY_THRESHOLD_SECONDS =
20- DEFAULT_HTTP_PORT =
8080- DEFAULT_HTTPS_PORT =
443- REQUIRED_KEYS =
%i[host user catalog schema].freeze
Class Method Summary collapse
- .client_options(config) ⇒ Object
- .default_port(ssl) ⇒ Object
- .slow_query_threshold(config) ⇒ Object
- .symbolize(config) ⇒ Object
- .validate!(config) ⇒ Object
Class Method Details
.client_options(config) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/active_record/trino/config.rb', line 16 def (config) symbolized = symbolize(config) validate!(symbolized) ssl = symbolized.fetch(:ssl, false) port = symbolized.fetch(:port, default_port(ssl)) { server: "#{symbolized[:host]}:#{port}", user: symbolized[:user], password: symbolized[:password], catalog: symbolized[:catalog], schema: symbolized[:schema], ssl: ssl, http_proxy: symbolized[:http_proxy], time_zone: symbolized[:time_zone], query_timeout: symbolized.fetch(:query_timeout, DEFAULT_QUERY_TIMEOUT), plan_timeout: symbolized.fetch(:plan_timeout, DEFAULT_PLAN_TIMEOUT), }.compact end |
.default_port(ssl) ⇒ Object
35 36 37 |
# File 'lib/active_record/trino/config.rb', line 35 def default_port(ssl) ssl ? DEFAULT_HTTPS_PORT : DEFAULT_HTTP_PORT end |
.slow_query_threshold(config) ⇒ Object
39 40 41 42 |
# File 'lib/active_record/trino/config.rb', line 39 def slow_query_threshold(config) symbolized = symbolize(config) symbolized.fetch(:slow_query_threshold_seconds, DEFAULT_SLOW_QUERY_THRESHOLD_SECONDS).to_f end |
.symbolize(config) ⇒ Object
53 54 55 |
# File 'lib/active_record/trino/config.rb', line 53 def symbolize(config) config.to_h.transform_keys(&:to_sym) end |
.validate!(config) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/active_record/trino/config.rb', line 44 def validate!(config) symbolized = symbolize(config) missing = REQUIRED_KEYS.reject { |k| symbolized[k] && !symbolized[k].to_s.empty? } return if missing.empty? raise ActiveRecord::Trino::ConfigurationError, "activerecord-trino-adapter: missing required config keys: #{missing.join(', ')}" end |