Class: Sanford::Protocol::FakeSocket

Inherits:
Object
  • Object
show all
Defined in:
lib/sanford-protocol/fake_socket.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*bytes) ⇒ FakeSocket

Returns a new instance of FakeSocket.



29
30
31
32
33
# File 'lib/sanford-protocol/fake_socket.rb', line 29

def initialize(*bytes)
  @out = StringIO.new
  @in  = StringIO.new
  reset(*bytes)
end

Class Method Details

.with_encoded_msg_body(encoded_body, size = nil, encoded_version = nil) ⇒ Object



23
24
25
26
27
# File 'lib/sanford-protocol/fake_socket.rb', line 23

def self.with_encoded_msg_body(encoded_body, size = nil, encoded_version = nil)
  encoded_size      = Sanford::Protocol.msg_size.encode(size || encoded_body.bytesize)
  encoded_version ||= Sanford::Protocol.msg_version
  self.new(encoded_version, encoded_size, encoded_body)
end

.with_msg_body(body, size = nil, encoded_version = nil) ⇒ Object



18
19
20
21
# File 'lib/sanford-protocol/fake_socket.rb', line 18

def self.with_msg_body(body, size = nil, encoded_version = nil)
  encoded_body = Sanford::Protocol.msg_body.encode(body)
  self.with_encoded_msg_body(encoded_body, size, encoded_version)
end

.with_request(*request_params) ⇒ Object



13
14
15
16
# File 'lib/sanford-protocol/fake_socket.rb', line 13

def self.with_request(*request_params)
  request = Sanford::Protocol::Request.new(*request_params)
  self.with_msg_body(request.to_hash)
end

Instance Method Details

#closeObject



52
53
54
# File 'lib/sanford-protocol/fake_socket.rb', line 52

def close
  @closed = true
end

#close_writeObject



60
61
62
# File 'lib/sanford-protocol/fake_socket.rb', line 60

def close_write
  @write_stream_closed = true
end

#closed?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/sanford-protocol/fake_socket.rb', line 56

def closed?
  !!@closed
end

#inObject



39
# File 'lib/sanford-protocol/fake_socket.rb', line 39

def in;  @in.string;  end

#outObject



40
# File 'lib/sanford-protocol/fake_socket.rb', line 40

def out; @out.string; end

#recv(number_of_bytes, flags = nil) ⇒ Object

Socket methods – requied by Sanford::Protocol



44
45
46
# File 'lib/sanford-protocol/fake_socket.rb', line 44

def recv(number_of_bytes, flags = nil)
  @in.read(number_of_bytes.to_i) || ""
end

#reset(*new_bytes) ⇒ Object



35
36
37
# File 'lib/sanford-protocol/fake_socket.rb', line 35

def reset(*new_bytes)
  @in << new_bytes.join; @in.rewind;
end

#send(bytes, flag) ⇒ Object



48
49
50
# File 'lib/sanford-protocol/fake_socket.rb', line 48

def send(bytes, flag)
  @out << bytes
end

#write_stream_closed?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/sanford-protocol/fake_socket.rb', line 64

def write_stream_closed?
  !!@write_stream_closed
end