Module: Messaging

Defined in:
lib/messaging.rb,
lib/messaging/cli.rb,
lib/messaging/config.rb,
lib/messaging/routes.rb,
lib/messaging/message.rb,
lib/messaging/publish.rb,
lib/messaging/routing.rb,
lib/messaging/version.rb,
lib/messaging/adapters.rb,
lib/messaging/middleware.rb,
lib/messaging/adapters/test.rb,
lib/messaging/rails/railtie.rb,
lib/messaging/resque_worker.rb,
lib/messaging/routing/route.rb,
lib/messaging/adapters/kafka.rb,
lib/messaging/sidekiq_worker.rb,
lib/messaging/instrumentation.rb,
lib/messaging/expected_version.rb,
lib/messaging/adapters/postgres.rb,
lib/messaging/exception_handler.rb,
lib/messaging/message/from_json.rb,
lib/messaging/adapters/test/store.rb,
lib/messaging/consumer_supervisor.rb,
lib/messaging/adapters/test/stream.rb,
lib/messaging/adapters/test/category.rb,
lib/messaging/adapters/test/consumer.rb,
lib/messaging/routing/enqueued_route.rb,
lib/messaging/adapters/kafka/consumer.rb,
lib/messaging/adapters/kafka/producer.rb,
lib/messaging/adapters/postgres/store.rb,
lib/messaging/routing/message_matcher.rb,
lib/messaging/adapters/postgres/stream.rb,
lib/messaging/adapters/test/categories.rb,
lib/messaging/middleware/rails_wrapper.rb,
lib/messaging/adapters/postgres/streams.rb,
lib/messaging/adapters/postgres/category.rb,
lib/messaging/adapters/postgres/categories.rb,
lib/messaging/routing/enqueue_message_handler.rb,
lib/messaging/adapters/postgres/categories/row.rb,
lib/messaging/adapters/postgres/serialized_message.rb,
lib/messaging/adapters/postgres/category_with_partitions.rb,
lib/messaging/middleware/after_active_record_transaction.rb,
lib/messaging/adapters/postgres/advisory_transaction_lock.rb

Defined Under Namespace

Modules: Adapters, Instrumentation, Message, Middleware, Rails, Routing Classes: CLI, Config, ConsumerSupervisor, ExceptionHandler, ExpectedVersion, Publish, ResqueWorker, Routes, SidekiqWorker

Constant Summary collapse

VERSION =
'3.8.1'.freeze

Class Method Summary collapse

Class Method Details

.[](adapter) ⇒ Object



47
48
49
# File 'lib/messaging.rb', line 47

def self.[](adapter)
  Adapters[adapter]
end

.categoriesMessaging::Adapters::Test::Categories, Messaging::Adapters::Postgres::Categories

Access the stream categories in the current message store

Examples:

Creating a new category

Messaging.categories.create('customer')

Returns:



77
78
79
# File 'lib/messaging.rb', line 77

def self.categories
  message_store.categories
end

.category(name) ⇒ Object



81
82
83
# File 'lib/messaging.rb', line 81

def self.category(name)
  message_store.category(name)
end

.configObject



27
28
29
# File 'lib/messaging.rb', line 27

def self.config
  Config.config
end

.consumer_adapterObject



35
36
37
# File 'lib/messaging.rb', line 35

def self.consumer_adapter
  Adapters[Config.consumer.adapter]
end

.defined_messagesObject



94
95
96
# File 'lib/messaging.rb', line 94

def self.defined_messages
  ObjectSpace.each_object(Class).select { |c| c.included_modules.include? Messaging::Message }
end

.dispatcherObject



39
40
41
# File 'lib/messaging.rb', line 39

def self.dispatcher
  Adapters::Dispatcher.default
end

.in_consumer_mode?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/messaging.rb', line 98

def self.in_consumer_mode?
  File.basename($PROGRAM_NAME) == 'messaging'
end

.inline!(&block) ⇒ Object



55
56
57
# File 'lib/messaging.rb', line 55

def self.inline!(&block)
  routes.inline!(&block)
end

.loggerObject



31
32
33
# File 'lib/messaging.rb', line 31

def self.logger
  Config.logger
end

.message_storeObject



43
44
45
# File 'lib/messaging.rb', line 43

def self.message_store
  Adapters::Store.default
end

.messages_in_streams(*streams) ⇒ Object



90
91
92
# File 'lib/messaging.rb', line 90

def self.messages_in_streams(*streams)
  message_store.messages_in_streams(*streams)
end

.routesObject



51
52
53
# File 'lib/messaging.rb', line 51

def self.routes
  @routes ||= Routes.new
end

.setup(&block) ⇒ Object



23
24
25
# File 'lib/messaging.rb', line 23

def self.setup(&block)
  Config.setup(&block)
end

.stream(name) ⇒ Object



85
86
87
88
# File 'lib/messaging.rb', line 85

def self.stream(name)
  name = name.stream_name if name.respond_to?(:stream_name)
  message_store.stream(name)
end

.without_dispatch(&block) ⇒ Object



59
60
61
62
63
64
65
66
67
68
# File 'lib/messaging.rb', line 59

def self.without_dispatch(&block)
  current_dispatcher = Config.dispatcher.adapter
  Config.dispatcher.adapter = :null_adapter

  result = block.call

ensure
  Config.dispatcher.adapter = current_dispatcher
  result
end