Class: IrcMachine::IrcConnection
- Inherits:
-
EM::Connection
- Object
- EM::Connection
- IrcMachine::IrcConnection
- Includes:
- EM::Protocols::LineText2
- Defined in:
- lib/irc_machine/irc_connection.rb
Instance Method Summary collapse
-
#initialize(opts) ⇒ IrcConnection
constructor
A new instance of IrcConnection.
- #orig_post_init ⇒ Object
- #post_init ⇒ Object
- #receive_line(line) ⇒ Object
- #send_data(data) ⇒ Object
- #ssl_handshake_completed ⇒ Object
- #unbind ⇒ Object
Constructor Details
#initialize(opts) ⇒ IrcConnection
Returns a new instance of IrcConnection.
5 6 7 8 |
# File 'lib/irc_machine/irc_connection.rb', line 5 def initialize(opts) @ssl = opts[:ssl] @session = opts[:session] end |
Instance Method Details
#orig_post_init ⇒ Object
10 |
# File 'lib/irc_machine/irc_connection.rb', line 10 alias_method :orig_post_init, :post_init |
#post_init ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/irc_machine/irc_connection.rb', line 12 def post_init if @ssl @session.log "Initializing SSL connection" @ssl_buffer = "" start_tls else orig_post_init end end |
#receive_line(line) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/irc_machine/irc_connection.rb', line 38 def receive_line(line) @session.receive_line(line) rescue => e @session.log "!! #{self.class} rescued #{e.inspect}" @session.log(" " + e.backtrace.join("\n ")) end |
#send_data(data) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/irc_machine/irc_connection.rb', line 30 def send_data(data) if @ssl_buffer @ssl_buffer << data else super(data) end end |
#ssl_handshake_completed ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/irc_machine/irc_connection.rb', line 22 def ssl_handshake_completed @session.log "SSL handshake complete" orig_post_init buffer = @ssl_buffer @ssl_buffer = nil send_data buffer end |
#unbind ⇒ Object
45 46 47 48 |
# File 'lib/irc_machine/irc_connection.rb', line 45 def unbind @session.log "Disconnected" @session.disconnected end |