Class: ClientWrapper
- Inherits:
-
Object
- Object
- ClientWrapper
- Defined in:
- lib/accu-net.rb
Overview
The wrapper for TCPClient.
Instance Method Summary collapse
-
#initialize(port = 2000, ip = "127.0.0.1") {|_self, @client| ... } ⇒ ClientWrapper
constructor
A new instance of ClientWrapper.
-
#listen {|msg| ... } ⇒ Object
Listens for a generic network communication and yields to a passed block (if any).
-
#listen_code ⇒ Object
Listens for a network code.
-
#listen_lines ⇒ Object
Listens for multiple lines, appends them together and stops at END.
-
#send(text) ⇒ Object
Sends a plaintext message.
-
#send_code(code) ⇒ Object
Sends a code.
-
#send_encrypted(lines) ⇒ Object
Send over an encrypted multiline message.
-
#send_lines(lines) ⇒ Object
Sends multiple lines and appends END to end the send.
-
#set_password(string) ⇒ Object
Set encryption password.
Constructor Details
#initialize(port = 2000, ip = "127.0.0.1") {|_self, @client| ... } ⇒ ClientWrapper
Returns a new instance of ClientWrapper.
122 123 124 125 126 127 |
# File 'lib/accu-net.rb', line 122 def initialize(port=2000,ip="127.0.0.1") @client = TCPSocket.open(ip, port) @password,@mode = "password",:double yield self,@client if block_given? @client.close end |
Instance Method Details
#listen {|msg| ... } ⇒ Object
Listens for a generic network communication and yields to a passed block (if any).
131 132 133 134 |
# File 'lib/accu-net.rb', line 131 def listen() msg = @client.gets.chomp yield msg end |
#listen_code ⇒ Object
Listens for a network code.
147 148 149 150 151 152 153 154 155 |
# File 'lib/accu-net.rb', line 147 def listen_code() listen { |msg| if msg.slice(0..1) == "C:" then return msg.slice(2..msg.length).to_i else return msg.slice(0..1) end } end |
#listen_lines ⇒ Object
Listens for multiple lines, appends them together and stops at END.
138 139 140 141 142 143 144 |
# File 'lib/accu-net.rb', line 138 def listen_lines() lines = [] while line = @client.gets.chomp and line != "END" do lines << line end lines end |
#send(text) ⇒ Object
Sends a plaintext message.
158 159 160 |
# File 'lib/accu-net.rb', line 158 def send(text) @client.puts text end |
#send_code(code) ⇒ Object
Sends a code.
181 182 183 |
# File 'lib/accu-net.rb', line 181 def send_code(code) send("C:#{code}") end |
#send_encrypted(lines) ⇒ Object
Send over an encrypted multiline message.
173 174 175 176 177 178 |
# File 'lib/accu-net.rb', line 173 def send_encrypted(lines) secret,text = EncryptDecrypt.encrypt(@password,lines,@mode) send_code(3) send(text) send("END") end |
#send_lines(lines) ⇒ Object
Sends multiple lines and appends END to end the send.
164 165 166 167 168 169 170 |
# File 'lib/accu-net.rb', line 164 def send_lines(lines) array = lines.split("\n") array.each do |line| send(line) end send("END") end |
#set_password(string) ⇒ Object
Set encryption password.
186 187 188 189 |
# File 'lib/accu-net.rb', line 186 def set_password(string) warn "Argument 1 is not a string! Continuing anyway." if not string.is_a? String @password = string.to_s end |