Module: Sinapse

Defined in:
lib/sinapse.rb,
lib/sinapse/config.rb,
lib/sinapse/server.rb,
lib/sinapse/version.rb,
lib/sinapse/channels.rb,
lib/sinapse/keep_alive.rb,
lib/sinapse/publishable.rb,
lib/sinapse/authentication.rb,
lib/sinapse/cross_origin_resource_sharing.rb

Defined Under Namespace

Modules: Config, Publishable, Rack, VERSION Classes: Authentication, Channels, KeepAlive, Server

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configObject



26
27
28
29
30
31
32
# File 'lib/sinapse.rb', line 26

def config
  @config ||= {
    size: 5,
    timeout: 5,
    url: ENV['REDIS_URL'] || 'redis://localhost:6379/0'
  }
end

.config=(options) ⇒ Object



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

def config=(options)
  @config = config.merge(options.symbolize_keys)
end

.generate_tokenObject



4
5
6
# File 'lib/sinapse/authentication.rb', line 4

def self.generate_token
  SecureRandom.urlsafe_base64(64)
end

.pool_optionsObject



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

def pool_options
  @pool_options ||= { size: config[:size], timeout: config[:timeout] }
end

.redis(&block) ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
# File 'lib/sinapse.rb', line 15

def redis(&block)
  raise ArgumentError, "requires a block" unless block
  @redis ||= ConnectionPool.new(pool_options) { Redis.new(url: config[:url]) }
  @redis.with(&block)
end

.redis=(redis) ⇒ Object

Raises:

  • (ArgumentError)


21
22
23
24
# File 'lib/sinapse.rb', line 21

def redis=(redis)
  raise ArgumentError, "requires a ConnectionPool" unless redis.kind_of?(ConnectionPool)
  @redis = redis
end

.versionObject



2
3
4
# File 'lib/sinapse/version.rb', line 2

def self.version
  Gem::Version.new File.read(File.expand_path('../../../VERSION', __FILE__))
end

Instance Method Details

#sinapseObject



10
11
12
# File 'lib/sinapse.rb', line 10

def sinapse
  @sinapse ||= Sinapse::Channels.new(self)
end