class SalesforceStreamer::Configuration

Manages server configuration.

Attributes

instance[W]
config_file[RW]
environment[RW]
exception_adapter[RW]
faye_extensions[R]
logger[RW]
manage_topics[RW]
middleware[R]
replay_adapter[RW]
require_path[RW]

Public Class Methods

configure() { |instance| ... } click to toggle source
# File lib/salesforce_streamer/configuration.rb, line 11
def configure
  yield instance
end
instance() click to toggle source
# File lib/salesforce_streamer/configuration.rb, line 15
def instance
  @instance ||= new
end
new() click to toggle source
# File lib/salesforce_streamer/configuration.rb, line 20
def initialize
  @environment = ENV['RACK_ENV'] || :development
  @logger = Logger.new(IO::NULL)
  @exception_adapter = proc { |exc| fail(exc) }
  @replay_adapter = Hash.new { |hash, key| hash[key] = -1 }
  @manage_topics = false
  @config_file = './config/streamer.yml'
  @require_path = './config/environment'
  @middleware = []
  @faye_extensions = [ReplayIdErrorExtension.new]
end

Public Instance Methods

manage_topics?() click to toggle source
# File lib/salesforce_streamer/configuration.rb, line 32
def manage_topics?
  @manage_topics
end
middleware_runner(last_handler) click to toggle source

returns a ready to use chain of middleware

# File lib/salesforce_streamer/configuration.rb, line 47
def middleware_runner(last_handler)
  @middleware.reduce(last_handler) do |next_handler, current_handler|
    klass, args, block = current_handler
    klass.new(next_handler, *args, &block)
  end
end
push_topic_data() click to toggle source
# File lib/salesforce_streamer/configuration.rb, line 54
def push_topic_data
  return @push_topic_data if @push_topic_data

  data = YAML.safe_load(File.read(config_file), [], [], true)
  @push_topic_data = data[environment.to_s]
end
restforce_logger!() click to toggle source
# File lib/salesforce_streamer/configuration.rb, line 61
def restforce_logger!
  Restforce.log = true
end
use_faye_extension(extension) click to toggle source

adds a Faye extension

# File lib/salesforce_streamer/configuration.rb, line 42
def use_faye_extension(extension)
  @faye_extensions << extension
end
use_middleware(klass, *args, &block) click to toggle source

adds a setup proc to the middleware array

# File lib/salesforce_streamer/configuration.rb, line 37
def use_middleware(klass, *args, &block)
  @middleware << [klass, args, block]
end