Module: MultipleMan

Defined in:
lib/multiple_man.rb,
lib/multiple_man/cli.rb,
lib/multiple_man/runner.rb,
lib/multiple_man/publish.rb,
lib/multiple_man/railtie.rb,
lib/multiple_man/version.rb,
lib/multiple_man/identity.rb,
lib/multiple_man/connection.rb,
lib/multiple_man/routing_key.rb,
lib/multiple_man/configuration.rb,
lib/multiple_man/mixins/listener.rb,
lib/multiple_man/model_populator.rb,
lib/multiple_man/model_publisher.rb,
lib/multiple_man/mixins/publisher.rb,
lib/multiple_man/consumers/general.rb,
lib/multiple_man/mixins/subscriber.rb,
lib/multiple_man/payload_generator.rb,
lib/multiple_man/attribute_extractor.rb,
lib/multiple_man/channel_maintenance/gc.rb,
lib/multiple_man/channel_maintenance/reaper.rb

Defined Under Namespace

Modules: CLI, ChannelMaintenance, Consumers, Listener, Publisher, Subscriber, Subscribers Classes: AttributeExtractor, Configuration, Connection, Identity, ModelPopulator, ModelPublisher, Options, PayloadGenerator, Railtie, RoutingKey, Runner

Constant Summary collapse

Error =
Class.new(StandardError)
ConsumerError =
Class.new(Error)
VERSION =
"1.1.1"

Class Method Summary collapse

Class Method Details

.configurationObject



2
3
4
# File 'lib/multiple_man/configuration.rb', line 2

def self.configuration
  @configuration ||= Configuration.new
end

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

Yields:



6
7
8
# File 'lib/multiple_man/configuration.rb', line 6

def self.configure
  yield(configuration) if block_given?
end

.disable!Object



38
39
40
# File 'lib/multiple_man.rb', line 38

def self.disable!
  configuration.enabled = false
end

.enable!Object



42
43
44
# File 'lib/multiple_man.rb', line 42

def self.enable!
  configuration.enabled = true
end

.error(ex, options = {}) ⇒ Object



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

def self.error(ex, options = {})
  raise ex unless configuration.error_handler

  if configuration.error_handler.arity == 3
    configuration.error_handler.call(ex, options[:payload], options[:delivery_info])
  else
    configuration.error_handler.call(ex)
  end

  raise ex if configuration.reraise_errors && options[:reraise] != false
end

.loggerObject



34
35
36
# File 'lib/multiple_man.rb', line 34

def self.logger
  configuration.logger
end

.publish(klass, options) ⇒ Object



2
3
4
5
# File 'lib/multiple_man/publish.rb', line 2

def self.publish(klass, options)
  klass.send(:include, MultipleMan::Publisher)
  klass.publish options
end

.trap_signals!Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/multiple_man/runner.rb', line 4

def self.trap_signals!
  return if @signals_trapped

  @signals_trapped = true

  handler = proc do |signal|
    puts "received #{Signal.signame(signal)}"
    exit
  end

  %w(INT QUIT TERM).each { |signal| Signal.trap(signal, handler) }
end