Class: PtyServer
- Inherits:
-
Object
- Object
- PtyServer
- Defined in:
- lib/server/pty_server.rb
Constant Summary collapse
- READSIZE =
4096
- ENTER_KEY =
?\C-m
Instance Method Summary collapse
-
#initialize ⇒ PtyServer
constructor
A new instance of PtyServer.
- #key_callback ⇒ Object
- #screen_loop ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize ⇒ PtyServer
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..screen_port @key_server = KeyServer.new App..key_port, key_callback @pty_s.winsize = [ App..rows, App..columns ] @application = App..application end |
Instance Method Details
#key_callback ⇒ Object
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_loop ⇒ Object
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 |
#start ⇒ Object
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 |