Files

Class/Module Index [+]

Quicksearch

ActiveMessaging

'abstract' base class for ActiveMessaging processor classes


'abstract' base class for ActiveMessaging filter classes


This is meant to avoid the need to use a broker in development, and generally make development mode easier

Constants

ROOT

Public Class Methods

app_env() click to toggle source
# File lib/activemessaging.rb, line 42
def self.app_env
  @@app_env  ||= (ENV['APP_ENV']  || (defined?(::Rails) && ::Rails.env)  || ENV['RAILS_ENV']  || 'development')
end
app_root() click to toggle source
# File lib/activemessaging.rb, line 38
def self.app_root
  @@app_root ||= (ENV['APP_ROOT'] || (defined?(::Rails) && ::Rails.root) || ENV['RAILS_ROOT'] || File.expand_path(Dir.pwd))
end
load_activemessaging() click to toggle source
# File lib/activemessaging.rb, line 98
def self.load_activemessaging
  load_extensions
  load_config
  load_processors
end
load_config() click to toggle source
# File lib/activemessaging.rb, line 67
def self.load_config
  path = File.expand_path("#{app_root}/config/messaging.rb")
  begin
    load path
  rescue
    raise $!, " ActiveMessaging: problems trying to load '#{path}': \n\t#{$!.message}"
  end
end
load_extensions() click to toggle source
# File lib/activemessaging.rb, line 46
def self.load_extensions
  require 'logger'
  require 'activemessaging/gateway'
  require 'activemessaging/threaded_poller'
  require 'activemessaging/adapter'
  require 'activemessaging/message_sender'
  require 'activemessaging/processor'
  require 'activemessaging/filter'
  require 'activemessaging/trace_filter'

  # load all under the adapters dir 
  Dir[File.join(ROOT, 'lib', 'activemessaging', 'adapters', '*.rb')].each do |a| 
    begin
      adapter_name = File.basename(a, ".rb")
      require 'activemessaging/adapters/' + adapter_name
    rescue RuntimeError, LoadError => e
      logger.warn "ActiveMessaging: adapter #{adapter_name} not loaded: #{ e.message }"
    end
  end
end
load_processors(first=true) click to toggle source
# File lib/activemessaging.rb, line 76
def self.load_processors(first=true)
  logger.info "ActiveMessaging: Loading #{app_root}/app/processors/application_processor.rb" if first
  load "#{app_root}/app/processors/application_processor.rb" if File.exist?("#{app_root}/app/processors/application_processor.rb")
  Dir["#{app_root}/app/processors/*.rb"].each do |f|
    unless f.match(/\/application_processor.rb/)
      logger.info "ActiveMessaging: Loading #{f}" if first
      load f
    end
  end
end
logger() click to toggle source
# File lib/activemessaging.rb, line 27
def self.logger
  @@logger = nil unless defined? @@logger
  @@logger ||= Rails.logger if defined? Rails
  @@logger ||= Logger.new(STDOUT)
  @@logger
end
logger=(logger) click to toggle source
# File lib/activemessaging.rb, line 34
def self.logger=(logger)
  @@logger = logger
end
reload_activemessaging() click to toggle source
# File lib/activemessaging.rb, line 87
def self.reload_activemessaging
  # this is resetting the messaging.rb
  ActiveMessaging::Gateway.filters = []
  ActiveMessaging::Gateway.named_destinations = {}
  ActiveMessaging::Gateway.processor_groups = {}

  # now load the config
  load_config
  load_processors(false)
end
start() click to toggle source
# File lib/activemessaging.rb, line 104
def self.start
  if ActiveMessaging::Gateway.subscriptions.empty?
    err_msg =       ActiveMessaging Error: No subscriptions.            If you have no processor classes in app/processors, add them using the command:        script/generate processor DoSomething"      If you have processor classes, make sure they include in the class a call to 'subscribes_to':        class DoSomethingProcessor < ActiveMessaging::Processor          subscribes_to :do_something          # ...        end
    puts err_msg
    logger.error err_msg
    exit
  end

  Gateway.start
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.