Module: Expectr::Interface
Defined Under Namespace
Classes: NotKillableError
Instance Method Summary collapse
-
#init_instance ⇒ Object
Public: Enumerate and expose all interface functions for a given Interface.
-
#interface_interact_thread ⇒ Object
Public: Return a Thread which does nothing, representing an interface with no functional interact environment available.
-
#interface_prepare_interact_interface ⇒ Object
Public: Return an empty Hash representing a case where no action needed to be taken in order to prepare the environment for interact mode.
-
#interface_restore_environment ⇒ Object
Internal: Restore environment after interact mode has been left.
Instance Method Details
#init_instance ⇒ Object
Public: Enumerate and expose all interface functions for a given Interface.
Returns a two-dimensional Array containing a name for the new method and a reference to the extant method.
8 9 10 11 12 13 14 15 16 |
# File 'lib/expectr/interface.rb', line 8 def init_instance methods = [] public_methods.select { |m| m =~ /^interface_/ }.each do |name| method = public_method(name) name = name.to_s.gsub(/^interface_/, '').to_sym methods << [name, method] end methods end |
#interface_interact_thread ⇒ Object
Public: Return a Thread which does nothing, representing an interface with no functional interact environment available.
Returns a Thread.
22 23 24 25 26 |
# File 'lib/expectr/interface.rb', line 22 def interface_interact_thread -> { Thread.new { } } end |
#interface_prepare_interact_interface ⇒ Object
Public: Return an empty Hash representing a case where no action needed to be taken in order to prepare the environment for interact mode.
Returns an empty Hash.
32 33 34 35 36 |
# File 'lib/expectr/interface.rb', line 32 def interface_prepare_interact_interface -> { {} } end |
#interface_restore_environment ⇒ Object
Internal: Restore environment after interact mode has been left.
Returns nothing.
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/expectr/interface.rb', line 41 def interface_restore_environment ->(env) { env[:sig].each do |signal, handler| trap signal, handler end unless env[:tty].nil? `stty #{env[:tty]}` end @interact = false } end |