Class: RedisClient::PubSub

Inherits:
Object
  • Object
show all
Defined in:
lib/redis_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(raw_connection, command_builder) ⇒ PubSub

Returns a new instance of PubSub.



551
552
553
554
# File 'lib/redis_client.rb', line 551

def initialize(raw_connection, command_builder)
  @raw_connection = raw_connection
  @command_builder = command_builder
end

Instance Method Details

#call(*command, **kwargs) ⇒ Object



556
557
558
559
# File 'lib/redis_client.rb', line 556

def call(*command, **kwargs)
  raw_connection.write(@command_builder.generate(command, kwargs))
  nil
end

#call_v(command) ⇒ Object



561
562
563
564
# File 'lib/redis_client.rb', line 561

def call_v(command)
  raw_connection.write(@command_builder.generate(command))
  nil
end

#closeObject



566
567
568
569
570
# File 'lib/redis_client.rb', line 566

def close
  @raw_connection&.close
  @raw_connection = nil # PubSub can't just reconnect
  self
end

#next_event(timeout = nil) ⇒ Object



572
573
574
575
576
577
578
579
580
# File 'lib/redis_client.rb', line 572

def next_event(timeout = nil)
  unless raw_connection
    raise ConnectionError, "Connection was closed or lost"
  end

  raw_connection.read(timeout)
rescue ReadTimeoutError
  nil
end