Module: Legion::Extensions::Node::Config
- Defined in:
- lib/legion/extensions/node/config.rb
Constant Summary collapse
- DEFAULT_SETTINGS =
{ cluster_control: { auth: { mode: 'auto', timestamp_skew_seconds: 300, nonce_bytes: 16 }, queue: { durable: true, exclusive: false, auto_delete: false, queue_type: 'classic', expires_ms: 604_800_000, message_ttl_ms: 86_400_000, max_length: 1000 } } }.freeze
Class Method Summary collapse
- .cluster_control ⇒ Object
- .control_auth ⇒ Object
- .control_queue ⇒ Object
- .deep_dup(value) ⇒ Object
- .deep_merge(base, override) ⇒ Object
- .default_settings ⇒ Object
- .extension_settings ⇒ Object
- .log ⇒ Object
- .symbolize_keys(value) ⇒ Object
Class Method Details
.cluster_control ⇒ Object
32 33 34 |
# File 'lib/legion/extensions/node/config.rb', line 32 def cluster_control deep_merge(default_settings[:cluster_control], extension_settings[:cluster_control] || {}) end |
.control_auth ⇒ Object
36 37 38 |
# File 'lib/legion/extensions/node/config.rb', line 36 def control_auth cluster_control[:auth] || {} end |
.control_queue ⇒ Object
40 41 42 |
# File 'lib/legion/extensions/node/config.rb', line 40 def control_queue cluster_control[:queue] || {} end |
.deep_dup(value) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/legion/extensions/node/config.rb', line 62 def deep_dup(value) case value when Hash value.each_with_object({}) { |(key, val), result| result[key] = deep_dup(val) } when Array value.map { |item| deep_dup(item) } else value end end |
.deep_merge(base, override) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/legion/extensions/node/config.rb', line 54 def deep_merge(base, override) base_hash = symbolize_keys(base) override_hash = symbolize_keys(override) base_hash.merge(override_hash) do |_key, old_value, new_value| old_value.is_a?(Hash) && new_value.is_a?(Hash) ? deep_merge(old_value, new_value) : new_value end end |
.default_settings ⇒ Object
28 29 30 |
# File 'lib/legion/extensions/node/config.rb', line 28 def default_settings deep_dup(DEFAULT_SETTINGS) end |
.extension_settings ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/legion/extensions/node/config.rb', line 44 def extension_settings return {} unless defined?(Legion::Settings) && Legion::Settings.respond_to?(:dig) settings = Legion::Settings.dig(:extensions, :node) settings.is_a?(Hash) ? symbolize_keys(settings) : {} rescue StandardError => e log.debug("node settings lookup failed: #{e.}") {} end |
.log ⇒ Object
84 85 86 |
# File 'lib/legion/extensions/node/config.rb', line 84 def log Legion::Logging.respond_to?(:logger) ? Legion::Logging.logger : Legion::Logging end |
.symbolize_keys(value) ⇒ Object
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/legion/extensions/node/config.rb', line 73 def symbolize_keys(value) case value when Hash value.each_with_object({}) { |(key, val), result| result[key.to_sym] = symbolize_keys(val) } when Array value.map { |item| symbolize_keys(item) } else value end end |