Module: Lepus

Defined in:
lib/lepus.rb,
lib/lepus/cli.rb,
lib/lepus/web.rb,
lib/lepus/timer.rb,
lib/lepus/message.rb,
lib/lepus/process.rb,
lib/lepus/testing.rb,
lib/lepus/version.rb,
lib/lepus/web/api.rb,
lib/lepus/web/app.rb,
lib/lepus/consumer.rb,
lib/lepus/producer.rb,
lib/lepus/consumers.rb,
lib/lepus/processes.rb,
lib/lepus/producers.rb,
lib/lepus/publisher.rb,
lib/lepus/middleware.rb,
lib/lepus/prometheus.rb,
lib/lepus/supervisor.rb,
lib/lepus/app_executor.rb,
lib/lepus/configuration.rb,
lib/lepus/rails/railtie.rb,
lib/lepus/processes/base.rb,
lib/lepus/web/aggregator.rb,
lib/lepus/connection_pool.rb,
lib/lepus/consumers/stats.rb,
lib/lepus/producers/hooks.rb,
lib/lepus/consumers/config.rb,
lib/lepus/consumers/worker.rb,
lib/lepus/message/metadata.rb,
lib/lepus/middleware_chain.rb,
lib/lepus/process_registry.rb,
lib/lepus/producers/config.rb,
lib/lepus/testing/exchange.rb,
lib/lepus/web/respond_with.rb,
lib/lepus/consumers/handler.rb,
lib/lepus/supervisor/pidfile.rb,
lib/lepus/supervisor/signals.rb,
lib/lepus/web/management_api.rb,
lib/lepus/supervisor/pidfiled.rb,
lib/lepus/producers/definition.rb,
lib/lepus/prometheus/collector.rb,
lib/lepus/message/delivery_info.rb,
lib/lepus/supervisor/maintenance.rb,
lib/lepus/testing/rspec_matchers.rb,
lib/lepus/testing/message_builder.rb,
lib/lepus/consumers/stats_registry.rb,
lib/lepus/consumers/worker_factory.rb,
lib/lepus/process_registry/backend.rb,
lib/lepus/supervisor/children_pipes.rb,
lib/lepus/consumers/middleware_chain.rb,
lib/lepus/consumers/middlewares/json.rb,
lib/lepus/producers/middleware_chain.rb,
lib/lepus/producers/middlewares/json.rb,
lib/lepus/prometheus/instrumentation.rb,
lib/lepus/supervisor/lifecycle_hooks.rb,
lib/lepus/supervisor/registry_cleaner.rb,
lib/lepus/consumers/middlewares/unique.rb,
lib/lepus/producers/middlewares/header.rb,
lib/lepus/producers/middlewares/unique.rb,
lib/lepus/process_registry/file_backend.rb,
lib/lepus/consumers/middlewares/max_retry.rb,
lib/lepus/process_registry/message_builder.rb,
lib/lepus/consumers/middlewares/honeybadger.rb,
lib/lepus/process_registry/rabbitmq_backend.rb,
lib/lepus/producers/middlewares/correlation_id.rb,
lib/lepus/producers/middlewares/instrumentation.rb,
lib/lepus/consumers/middlewares/exception_logger.rb

Defined Under Namespace

Modules: AppExecutor, Consumers, Primitive, Processes, Producers, Prometheus, Testing, Timer, Web Classes: CLI, Configuration, ConnectionPool, ConnectionPoolError, ConnectionPoolTimeoutError, Consumer, Error, InvalidConsumerConfigError, InvalidConsumerReturnError, InvalidProducerConfigError, LogSubscriber, MaxRecoveryAttemptsExhaustedError, Message, Middleware, MiddlewareChain, Process, ProcessRegistry, Producer, Publisher, Railtie, ShutdownError, Supervisor

Constant Summary collapse

DEFAULT_LOGGER =
Logger.new($stdout)
VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject



69
70
71
# File 'lib/lepus.rb', line 69

def logger
  @logger ||= DEFAULT_LOGGER
end

Class Method Details

.configObject



92
93
94
# File 'lib/lepus.rb', line 92

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



96
97
98
# File 'lib/lepus.rb', line 96

def configure
  yield config
end

.eager_load_consumers!Object



81
82
83
84
85
86
87
88
89
90
# File 'lib/lepus.rb', line 81

def eager_load_consumers!
  return false unless Lepus.config.consumers_directory.exist?

  Dir[config.consumers_directory.join("**/*.rb")].map { |path| Pathname.new(path) }.each do |path|
    next unless path.extname == ".rb"

    require(path.expand_path.to_s)
  end
  true
end

.instrument(channel, **options, &block) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/lepus.rb', line 73

def instrument(channel, **options, &block)
  if defined?(ActiveSupport::Notifications)
    ActiveSupport::Notifications.instrument("#{channel}.lepus", **options, &block)
  else
    yield(options.dup)
  end
end