module Stenotype::Configuration

A module containing freshly-event gem configuration

@example Configuring the library

Stenotype.configure do |config|
  config.enabled = true
  config.targets = [Target1.new, Target2.new]
  config.uuid_generator = SecureRandom

  config.google_cloud do |gc|
    gc.credentials = "abc"
    gc.project_id  = "project"
    gc.topic       = "42"
    gc.async       = true
  end

  config.rails do |rc|
    rc.enable_action_controller_ext = true
    rc.enable_active_job_ext        =  false
  end
end

Public Instance Methods

logger() click to toggle source

@example With default logger

Stenotype.configure do |config|
  # config.logger = nil # logger not set manually
end
Stenotype.config.logger #=> `Logger.new(STDOUT)` instance

@example With custom logger

Stenotype.configure do |config|
  config.logger = custom_logger_instance
end
Stenotype.config.logger #=> custom_logger_instance

@return [{Logger, CustomLogger}] a logger object. Logger.new(STDOUT) by

default if another is not set during configuration
# File lib/stenotype/configuration.rb, line 116
def logger
  return config.logger if config.logger

  config.logger || Logger.new(STDOUT)
end
targets() click to toggle source

@example When at least one target is present

Stenotype.configure do |config|
  config.targets = [Target1.new, Target2.new]
end
Stenotype.config.targets #=> [target_obj1, target_obj2]

@example When no targets have been configured

Stenotype.configure { |config| config.targets = [] }
Stenotype.config.targets #=> Stenotype::NoTargetsSpecifiedError

@raise {Stenotype::NoTargetsSpecifiedError} in case no targets are configured @return {Array<#publish>} An array of targets implementing method [#publish]

@todo THIS NEVER GETS CALLED, needs a fix

# File lib/stenotype/configuration.rb, line 138
def targets
  return config.targets unless config.targets.empty?

  raise Stenotype::NoTargetsSpecifiedError,
        "Please configure a target(s) for events to be sent to. "\
        "See #{Stenotype::Configuration} for reference."
end