Class: Monster

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

Instance Method Summary collapse

Constructor Details

#initializeMonster

Returns a new instance of Monster.



275
276
277
278
279
280
281
# File 'lib/monsternet.rb', line 275

def initialize
         if !File.exist?(ATTR_FILE)
           File.open(ATTR_FILE, 'w') { |f| f.write(JSON.generate({})) }
         end
         @attr = JSON.parse(File.read(ATTR_FILE))
         MON.init!
end

Instance Method Details

#act(k, x, h = {}) ⇒ Object



304
305
306
# File 'lib/monsternet.rb', line 304

def act k, x, h={}
  EV[:act].call(MON.get(k, "#{x}.erb", h))
end

#attrObject



282
283
284
# File 'lib/monsternet.rb', line 282

def attr
  @attr
end

#byeObject



316
317
318
319
# File 'lib/monsternet.rb', line 316

def bye
	MON.bye!
	exit
end

#helpObject



323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
# File 'lib/monsternet.rb', line 323

def help
  EV[:help].call({
    id: "Your id",
    nick: "Your nick",
    attr: "Your attributes",
    peers: "Known Peers",
    yo: "Send NICK MESSAGE",
    yell: "Send all MESSAGE",
    act: "Fetch PEER INDEX",
    look: "Fetch PEER index.erb with attributes",
    me: "Your host",
    save: "Save your attributes",
    hi: "Announce to peers",
    bye: "Leave peers and quit" })
end

#hiObject



313
314
315
# File 'lib/monsternet.rb', line 313

def hi
	MON.hi!
end

#idObject



289
290
291
# File 'lib/monsternet.rb', line 289

def id
	ID
end

#look(k) ⇒ Object



307
308
309
# File 'lib/monsternet.rb', line 307

def look k
  act(k, 'index', @attr)
end

#meObject



310
311
312
# File 'lib/monsternet.rb', line 310

def me
	my_info
end

#methodsObject



320
321
322
# File 'lib/monsternet.rb', line 320

def methods
	[ :id, :nick, :attr, :peers, :yo, :yell, :act, :look, :me, :save, :hi, :bye, :help ]
end

#nickObject



292
293
294
# File 'lib/monsternet.rb', line 292

def nick
	NICK
end

#peersObject



295
296
297
# File 'lib/monsternet.rb', line 295

def peers
	MON.nicks.keys
end

#saveObject



285
286
287
288
# File 'lib/monsternet.rb', line 285

def save
  File.open(ATTR_FILE, 'w') { |f| f.write(JSON.generate(@attr)) }
  return 'OK'
end

#yell(m) ⇒ Object



301
302
303
# File 'lib/monsternet.rb', line 301

def yell m
  peers.each { |e| yo(e, m) }
end

#yo(k, m) ⇒ Object



298
299
300
# File 'lib/monsternet.rb', line 298

def yo k, m
	MON.yo(k, m)
end