Module: Eventboss

Defined in:
lib/eventboss.rb,
lib/eventboss/queue.rb,
lib/eventboss/logger.rb,
lib/eventboss/runner.rb,
lib/eventboss/sender.rb,
lib/eventboss/worker.rb,
lib/eventboss/fetcher.rb,
lib/eventboss/logging.rb,
lib/eventboss/manager.rb,
lib/eventboss/version.rb,
lib/eventboss/launcher.rb,
lib/eventboss/listener.rb,
lib/eventboss/publisher.rb,
lib/eventboss/sns_client.rb,
lib/eventboss/long_poller.rb,
lib/eventboss/safe_thread.rb,
lib/eventboss/unit_of_work.rb,
lib/eventboss/configuration.rb,
lib/eventboss/polling/basic.rb,
lib/eventboss/queue_listener.rb,
lib/eventboss/instrumentation.rb,
lib/eventboss/error_handlers/logger.rb,
lib/eventboss/error_handlers/airbrake.rb,
lib/eventboss/polling/timed_round_robin.rb

Defined Under Namespace

Modules: ErrorHandlers, Instrumentation, Listener, Logging, Polling, SafeThread Classes: Configuration, Fetcher, Launcher, Logger, LongPoller, Manager, NotConfigured, Publisher, Queue, QueueListener, Railtie, Runner, Sender, SnsClient, UnitOfWork, Worker

Constant Summary collapse

Shutdown =
Class.new(StandardError)
VERSION =
"1.1.0"

Class Method Summary collapse

Class Method Details

.configurationObject



71
72
73
# File 'lib/eventboss.rb', line 71

def configuration
  @_configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



67
68
69
# File 'lib/eventboss.rb', line 67

def configure
  yield configuration if block_given?
end

.envObject



63
64
65
# File 'lib/eventboss.rb', line 63

def env
  @env ||= ENV['EVENTBUS_ENV'] || ENV['RAILS_ENV'] || ENV['RACK_ENV']
end

.launchObject



59
60
61
# File 'lib/eventboss.rb', line 59

def launch
  Eventboss::Runner.launch
end

.publisher(event_name, opts = {}) ⇒ Object



40
41
42
# File 'lib/eventboss.rb', line 40

def publisher(event_name, opts = {})
  Publisher.new(event_name, configuration.sns_client, configuration, opts)
end

.sender(event_name, destination_app, options = {}) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/eventboss.rb', line 44

def sender(event_name, destination_app, options = {})
  queue_name = Queue.build_name(
    destination: destination_app,
    source: configuration.eventboss_app_name,
    event: event_name,
    env: env,
    generic: options[:generic]
  )

  Sender.new(
    client: configuration.sqs_client,
    queue: Queue.new(queue_name)
  )
end