Skip to content
This repository has been archived by the owner on Oct 2, 2019. It is now read-only.

Commit

Permalink
refactor: Move connection and message to distinct files
Browse files Browse the repository at this point in the history
  • Loading branch information
marceloboeira committed Nov 7, 2016
1 parent 8da9358 commit a5763a5
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 39 deletions.
38 changes: 1 addition & 37 deletions src/bojack/event_loop.cr
@@ -1,39 +1,3 @@
require "socket"
require "./logger"
require "./request"

module BoJack
module EventLoop
class Connection
@logger : BoJack::Logger = BoJack::Logger.instance

def initialize(@server : TCPServer, @channel : ::Channel::Unbuffered(BoJack::Request)); end

def start
loop do
if socket = @server.accept
@logger.info("#{socket.remote_address} connected")

Message.new(socket, @channel).start
end
end
end

end

class Message
def initialize(@socket : TCPSocket, @channel : ::Channel::Unbuffered(BoJack::Request)); end

def start
spawn do
loop do
message = @socket.gets
break unless message

@channel.send(BoJack::Request.new(message, @socket))
end
end
end
end
end
module EventLoop; end
end
24 changes: 24 additions & 0 deletions src/bojack/event_loop/connection.cr
@@ -0,0 +1,24 @@
require "socket"
require "../logger"
require "../request"
require "./message"

module BoJack
module EventLoop
class Connection
@logger : BoJack::Logger = BoJack::Logger.instance

def initialize(@server : TCPServer, @channel : ::Channel::Unbuffered(BoJack::Request)); end

def start
loop do
if socket = @server.accept
@logger.info("#{socket.remote_address} connected")

Message.new(socket, @channel).start
end
end
end
end
end
end
21 changes: 21 additions & 0 deletions src/bojack/event_loop/message.cr
@@ -0,0 +1,21 @@
require "socket"
require "../request"

module BoJack
module EventLoop
class Message
def initialize(@socket : TCPSocket, @channel : ::Channel::Unbuffered(BoJack::Request)); end

def start
spawn do
loop do
message = @socket.gets
break unless message

@channel.send(BoJack::Request.new(message, @socket))
end
end
end
end
end
end
3 changes: 1 addition & 2 deletions src/bojack/server.cr
Expand Up @@ -3,8 +3,7 @@ require "./memory"
require "./logger"
require "./request"
require "./logo"
require "./event_loop"
require "./event_loop/channel"
require "./event_loop/*"

module BoJack
class Server
Expand Down

0 comments on commit a5763a5

Please sign in to comment.