Sha256: 6aec754bb1e9aaa13b42c7af30d6c499d4bcdcf75f5ac07c938ceefd67f4f92e
Contents?: true
Size: 1.14 KB
Versions: 3
Compression:
Stored size: 1.14 KB
Contents
module Slack module RealTime module Config class NoConcurrencyError < StandardError; end extend self ATTRIBUTES = [ :token, :websocket_ping, :websocket_proxy, :concurrency ] attr_accessor(*Config::ATTRIBUTES) def reset self.websocket_ping = 30 self.websocket_proxy = nil self.token = nil self.concurrency = method(:detect_concurrency) end def concurrency (val = @concurrency).respond_to?(:call) ? val.call : val end private def detect_concurrency [:Eventmachine, :Celluloid].each do |concurrency| begin return Slack::RealTime::Concurrency.const_get(concurrency) rescue LoadError false # could not be loaded, missing dependencies end end fail NoConcurrencyError, 'Missing concurrency. Add faye-websocket or celluloid-io to your Gemfile.' end end class << self def configure block_given? ? yield(Config) : Config end def config Config end end end end Slack::RealTime::Config.reset
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
slack-ruby-client-0.5.2 | lib/slack/real_time/config.rb |
slack-ruby-client-0.5.1 | lib/slack/real_time/config.rb |
slack-ruby-client-0.5.0 | lib/slack/real_time/config.rb |