Sha256: 91551de0ff52052d9522ae3188c9cdb84387771d8db8260239d2fe6cd9bf90f6
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 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! broadcast 'LEFT' room.drop_client! self end def exit! puts 'END' socket.close @deleted = true destroy! end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
whatup-0.3.1 | lib/whatup/server/models/client.rb |
whatup-0.3.0 | lib/whatup/server/models/client.rb |
whatup-0.2.5 | lib/whatup/server/models/client.rb |