Module: Deimos::Configurable

Extended by:
ActiveSupport::Concern
Included in:
Deimos
Defined in:
lib/deimos/config/configurable.rb

Overview

Module to allow configuration. Loosely based off of the dry-configuration gem but with several advantages:

  • Works with Ruby 2.3.
  • More succinct syntax using method_missing so you do not need to write "config.whatever" and can just write "whatever".
  • Use nested blocks: Deimos.configure do config.kafka.ssl do enabled true ca_cert_file 'my_file' end end
  • Allows for arrays of configurations: Deimos.configure do |config| config.producer do class_name 'MyProducer' topic 'MyTopic' end end
  • Allows to call configure multiple times without crashing.
  • Allows to lazy-set default values by passing a proc as a default:

Deimos.define_settings do |config| setting :my_val, default_proc: proc { MyDefault.calculated_value } end

  • Support for setting up and automatically calling deprecated configurations.
  • Support for configuration callbacks.

Defined Under Namespace

Modules: ClassMethods Classes: ConfigStruct, ConfigValue