Sha256: d8321042df42dd5902e314ba785f0857af8237e2e9628067ed35a18dadbdcd10
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true require 'whatup/server/models/application_record' module Whatup module Server class Client < ApplicationRecord has_many :sent_messages, class_name: 'Message', foreign_key: 'sender_id' has_many :received_messages, class_name: 'Message', foreign_key: 'recipient_id' belongs_to :room, optional: true validates_uniqueness_of :name attr_accessor *%i[socket composing_dm deleted] def puts msg socket&.puts(msg) end def gets socket&.gets end def input! loop while (msg = gets).blank? msg.chomp end def chatting? !room_id.nil? end def composing_dm? !composing_dm.nil? end def status "#{name}#{chatting? ? " (#{room.name})" : ''}" end def broadcast msg room.broadcast(except: self) { "#{name}> #{msg}" } end def leave_room! room.drop_client! self end def exit! puts 'END' socket.close @deleted = true destroy! end def to_s name end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
whatup-0.3.5 | lib/whatup/server/models/client.rb |