Module: Expectr::Interface

Included in:
Child, Lambda
Defined in:
lib/expectr/error.rb,
lib/expectr/interface.rb

Defined Under Namespace

Classes: NotKillableError

Instance Method Summary collapse

Instance Method Details

#init_instanceObject

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_threadObject

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_interfaceObject

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_environmentObject

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