Class: TTYtest::Tmux::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/ttytest/tmux/session.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(driver, name) ⇒ Session

Returns a new instance of Session.



8
9
10
11
12
13
# File 'lib/ttytest/tmux/session.rb', line 8

def initialize(driver, name)
  @driver = driver
  @name = name

  ObjectSpace.define_finalizer(self, self.class.finalize(driver, name))
end

Instance Attribute Details

#driverObject (readonly)

Returns the value of attribute driver.



6
7
8
# File 'lib/ttytest/tmux/session.rb', line 6

def driver
  @driver
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/ttytest/tmux/session.rb', line 6

def name
  @name
end

Class Method Details

.finalize(driver, name) ⇒ Object



15
16
17
# File 'lib/ttytest/tmux/session.rb', line 15

def self.finalize(driver, name)
  proc { driver.tmux(*%W[kill-session -t #{name}]) }
end

Instance Method Details

#captureObject



19
20
21
22
23
24
25
# File 'lib/ttytest/tmux/session.rb', line 19

def capture
  contents = driver.tmux(*%W[capture-pane -t #{name} -p])
  str = driver.tmux(*%W[display-message -t #{name} -p #\{cursor_x},#\{cursor_y},#\{cursor_flag}])
  x, y, cursor_flag = str.split(',').map(&:to_i)
  cursor_visible = (cursor_flag != 0)
  TTYtest::Capture.new(contents, cursor_x: x, cursor_y: y, cursor_visible: cursor_visible)
end

#send_keys(*keys) ⇒ Object



27
28
29
# File 'lib/ttytest/tmux/session.rb', line 27

def send_keys(*keys)
  driver.tmux(*%W[send-keys -t #{name}], *keys)
end

#send_raw(*keys) ⇒ Object



31
32
33
# File 'lib/ttytest/tmux/session.rb', line 31

def send_raw(*keys)
  driver.tmux(*%W[send-keys -t #{name} -l], *keys)
end