Sha256: ce927a87d6fbf6257d2825fed3d0d62f21468cb8427209aaa474d9fcd05bc60d

Contents?: true

Size: 1.19 KB

Versions: 141

Compression:

Stored size: 1.19 KB

Contents

EventMachine (EM) can respond to keyboard events. This gives your event-driven
programs the ability to respond to input from local users.

Programming EM to handle keyboard input in Ruby is simplicity itself. Just use
EventMachine#open_keyboard, and supply the name of a Ruby module or class that
will receive the input:

 require 'rubygems'
 require 'eventmachine'

 module MyKeyboardHandler
 	def receive_data keystrokes
 		puts "I received the following data from the keyboard: #{keystrokes}"
 	end
 end

 EM.run {
 	EM.open_keyboard(MyKeyboardHandler)
 }

If you want EM to send line-buffered keyboard input to your program, just
include the LineText2 protocol module in your handler class or module:

 require 'rubygems'
 require 'eventmachine'

 module MyKeyboardHandler
 	include EM::Protocols::LineText2
 	def receive_line data
 		puts "I received the following line from the keyboard: #{data}"
 	end
 end

 EM.run {
 	EM.open_keyboard(MyKeyboardHandler)
 }

As we said, simplicity itself. You can call EventMachine#open_keyboard at any
time while the EM reactor loop is running. In other words, the method
invocation may appear anywhere in an EventMachine#run block, or in any code
invoked in the #run block.

Version data entries

141 entries across 138 versions & 12 rubygems

Version Path
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.1.0/gems/eventmachine-1.2.7/docs/old/KEYBOARD
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/2.6.0/gems/eventmachine-1.2.7/docs/old/KEYBOARD
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.0.0/gems/eventmachine-1.2.7/docs/old/KEYBOARD
eventmachine-mkroman-1.3.0.dev.1 docs/old/KEYBOARD
wj_eventmachine-1.3.2 docs/old/KEYBOARD
wj_eventmachine-1.3.1 docs/old/KEYBOARD
wj_eventmachine-1.3.0.dev.1 docs/old/KEYBOARD
sensu-em-2.7.0-java docs/old/KEYBOARD
eventmachine-1.2.7-java docs/old/KEYBOARD
eventmachine-1.2.7-x64-mingw32 docs/old/KEYBOARD
eventmachine-1.2.7-x86-mingw32 docs/old/KEYBOARD
eventmachine-1.2.7 docs/old/KEYBOARD
eventmachine-1.2.6-x64-mingw32 docs/old/KEYBOARD
eventmachine-1.2.6-x86-mingw32 docs/old/KEYBOARD
eventmachine-1.2.6-java docs/old/KEYBOARD
eventmachine-1.2.6 docs/old/KEYBOARD
eventmachine-1.2.5-x86-mingw32 docs/old/KEYBOARD
eventmachine-1.2.5-x64-mingw32 docs/old/KEYBOARD
eventmachine-1.2.5-java docs/old/KEYBOARD
eventmachine-1.2.5 docs/old/KEYBOARD