class Kozo::DSL

Attributes

configuration[R]

Public Class Methods

new(configuration) click to toggle source
# File lib/kozo/dsl.rb, line 7
def initialize(configuration)
  @configuration = configuration
end

Public Instance Methods

backend(type) { |backend| ... } click to toggle source
# File lib/kozo/dsl.rb, line 15
def backend(type)
  backend = resolve(:backend, type)

  yield backend if block_given?

  configuration.backend = backend
end
kozo() { || ... } click to toggle source
# File lib/kozo/dsl.rb, line 11
def kozo(&_block)
  yield
end
provider(type) { |provider| ... } click to toggle source
# File lib/kozo/dsl.rb, line 23
def provider(type)
  provider = resolve(:provider, type)

  yield provider if block_given?

  configuration.providers[provider.class.name] = provider
end
resource(type, name) { |resource| ... } click to toggle source
# File lib/kozo/dsl.rb, line 31
def resource(type, name)
  resource = resolve(:resource, type, name)
  resource.provider = configuration.providers[resource.class.provider]

  Kozo.logger.fatal "Provider #{resource.class.provider}" unless resource.provider

  yield resource if block_given?

  configuration.resources[resource.class.name] = resource
end

Private Instance Methods

resolve(resource, type, name = nil) click to toggle source
# File lib/kozo/dsl.rb, line 44
def resolve(resource, type, name = nil)
  Kozo.logger.debug "Initializing #{resource} #{type} #{name}"

  Kozo.container.resolve("#{resource}.#{type}")
rescue Container::DependencyNotRegistered
  Kozo.logger.fatal "Unknown #{resource} type: #{type}"
end