Module: MON

Defined in:
lib/monsternet.rb

Constant Summary collapse

@@PEERS =
{}
@@NICKS =
{}
@@NICK =
{}
@@TIMES =
{}
@@LIVES =
{}
@@SEENS =
{}
@@LEFTS =
{}

Class Method Summary collapse

Class Method Details

.bye!Object



238
239
240
# File 'lib/monsternet.rb', line 238

def self.bye!
	leave_to_peers
end

.get(p, i, h = {}, &b) ⇒ Object



260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/monsternet.rb', line 260

def self.get p, i, h={}, &b
  if @@NICKS.has_key? p.to_s
  s = []
  h.merge({ id: ID, nick: NICK }).each_pair { |k,v| s << %[#{k}=#{v}] }
  r = send_message(@@PEERS[@@NICKS[p.to_s]], %[GET #{p} #{i} #{s.join("&")}])
  if block_given?
    b.call(r)
  else
    return r
  end
  end
end

.hi!Object



235
236
237
# File 'lib/monsternet.rb', line 235

def self.hi!
	announce_to_peers
end

.hood(&b) ⇒ Object



241
242
243
244
245
246
247
# File 'lib/monsternet.rb', line 241

def self.hood &b
  if block_given?
    $known_peers.each { |e| b.call(e) }
  else
    $known_peers
  end
end

.init!Object



230
231
232
233
234
# File 'lib/monsternet.rb', line 230

def self.init!
	Thread.new { start_server; }
	sleep 1
	announce_to_peers
end

.leftsObject



227
228
229
# File 'lib/monsternet.rb', line 227

def self.lefts
  @@LEFTS
end

.livesObject



219
220
221
# File 'lib/monsternet.rb', line 219

def self.lives
  @@LIVES
end

.nickObject



211
212
213
# File 'lib/monsternet.rb', line 211

def self.nick
  @@NICK
end

.nicksObject



207
208
209
# File 'lib/monsternet.rb', line 207

def self.nicks
  @@NICKS
end

.peerObject



203
204
205
# File 'lib/monsternet.rb', line 203

def self.peer
  @@PEERS
end

.seensObject



223
224
225
# File 'lib/monsternet.rb', line 223

def self.seens
  @@SEENS
end

.timesObject



215
216
217
# File 'lib/monsternet.rb', line 215

def self.times
  @@TIMES
end

.yo(p, m, &b) ⇒ Object



249
250
251
252
253
254
255
256
257
258
# File 'lib/monsternet.rb', line 249

def self.yo p, m, &b
  if @@NICKS.has_key? p.to_s
  r = send_message(@@PEERS[@@NICKS[p.to_s]], %[YO [YO][#{NICK}] #{m}])
  if block_given?
    b.call(r)
  else
    return r
  end
  end
end