/dry-configurable

A simple mixin to make Ruby classes configurable

Primary LanguageRubyMIT LicenseMIT

dry-configurable Join the Gitter chat

Gem Version Build Status Code Climate Test Coverage API Documentation Coverage

Synopsis

class App
  extend Dry::Configurable

  # Pass a block for nested configuration (works to any depth)
  setting :database do
    # Can pass a default value
    setting :dsn, 'sqlite:memory'
  end
  # Defaults to nil if no default value is given
  setting :adapter
  # Passing the reader option as true will create reader method for the class
  setting :pool, 5, reader: true
  # Passing the reader attributes works with nested configuration
  setting :uploader, reader: true do
    setting :bucket, 'dev'
  end
end

App.configure do |config|
  config.database.dsn = 'jdbc:sqlite:memory'
end

App.config.database.dsn
# => 'jdbc:sqlite:memory'
App.config.adapter # => nil
App.pool # => 5
App.uploader.bucket # => 'dev'

Links

License

See LICENSE file.