Class: PtyServer

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

Constant Summary collapse

READSIZE =
4096
ENTER_KEY =
?\C-m

Instance Method Summary collapse

Constructor Details

#initializePtyServer

Returns a new instance of PtyServer.



15
16
17
18
19
20
21
22
# File 'lib/server/pty_server.rb', line 15

def initialize
  @pty_m, @pty_s         = PTY.open
  @application_interface = ApplicationInterface.new @pty_m
  @screen_server         = ScreenServer.new App.options.screen_port
  @key_server            = KeyServer.new App.options.key_port, key_callback
  @pty_s.winsize         = [ App.options.rows, App.options.columns ]
  @application           = App.options.application
end

Instance Method Details

#key_callbackObject



32
33
34
35
36
37
# File 'lib/server/pty_server.rb', line 32

def key_callback
  ->(key){
    print key
    @application_interface << key
  }
end

#screen_loopObject



39
40
41
42
43
44
45
# File 'lib/server/pty_server.rb', line 39

def screen_loop
  Thread.new do
    loop {
      @screen_server.async.write @pty_m.readpartial( READSIZE )
    }
  end
end

#startObject



24
25
26
27
28
29
30
# File 'lib/server/pty_server.rb', line 24

def start
  initialize_pty
  @screen_server.listen
  @key_server.listen
  screen_loop
  spawn_application
end