Class: GemeraldBeanstalk::Plugin::DirectConnection::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/gemerald_beanstalk/plugins/direct_connection/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(beanstalk) ⇒ Client

Returns a new instance of Client.



13
14
15
16
17
# File 'lib/gemerald_beanstalk/plugins/direct_connection/client.rb', line 13

def initialize(beanstalk)
  @beanstalk = beanstalk
  @connection = beanstalk.connect(self)
  @async_response = nil
end

Instance Attribute Details

#beanstalkObject (readonly)

Returns the value of attribute beanstalk.



4
5
6
# File 'lib/gemerald_beanstalk/plugins/direct_connection/client.rb', line 4

def beanstalk
  @beanstalk
end

#connectionObject (readonly)

Returns the value of attribute connection.



4
5
6
# File 'lib/gemerald_beanstalk/plugins/direct_connection/client.rb', line 4

def connection
  @connection
end

Instance Method Details

#close_connectionObject



6
7
8
9
10
# File 'lib/gemerald_beanstalk/plugins/direct_connection/client.rb', line 6

def close_connection
  return unless connection.alive?
  connection.close_connection
  beanstalk.disconnect(self)
end

#send_data(message) ⇒ Object



31
32
33
# File 'lib/gemerald_beanstalk/plugins/direct_connection/client.rb', line 31

def send_data(message)
  @async_response = message
end

#transmit(message) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/gemerald_beanstalk/plugins/direct_connection/client.rb', line 20

def transmit(message)
  message += "\r\n" unless message[-2, 2] == "\r\n"
  connection.execute(message)
  while (async_response = @async_response).nil?
    sleep 0.1
  end
  @async_response = nil
  return async_response
end