Core LibraryAPI Reference

Choose documentation 3

Concept and alpha: example support scope and release maturity.

v0.1.0.alpha.2

Current version

v0.1.0.alpha.2
English

Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

method libtmux-ruby v0.1.0.alpha.2

Server.new

Module LibTmux::Server.new LibTmux

Behavior: Borrowed bindings.

Source and package
Module
LibTmux
Declared in
Server
Package
libtmux
Source
gems/libtmux/lib/libtmux/server.rb
def self.new: ( ?endpoint: ::LibTmux::Endpoint?, ?socket_path: ::String?, ?socket_name: ::String?, ?executable: ::String, ?max_requests: ::Integer, ?max_controls: ::Integer, ?close_timeout: ::Numeric, ?version_timeout: ::Numeric ) -> ::LibTmux::Server

Description#

Behavior contract: Borrowed bindings.

Examples#

Connect a Server client to an existing endpoint and close it without stopping the daemon. The outer Server.start block owns the private demonstration server. Use Ruby 4.0.7, Bundler, Git and tmux 3.2a or newer on Unix, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:

Terminal window
$ git clone https://github.com/libtmux/libtmux-ruby.git libtmux-source && \
git -C libtmux-source checkout dcc9f8b5a6970144a9e7d80cd5f381d8f6198372

Save this dependency file as Gemfile:

source "https://rubygems.org"
gem "libtmux", path: "libtmux-source/gems/libtmux"

Save this complete program as server.rb. Its Server.start block owns a private tmux server and stops it on exit, including after an error. View source

# frozen_string_literal: true
require "libtmux"
begin
LibTmux::Server.start do |owner|
owner.new_session(name: "work", command: ["/bin/cat"])
server = LibTmux::Server.new(endpoint: owner.endpoint)
begin
puts "connected sessions: #{server.list_sessions.length}"
ensure
server.close
end
puts "sessions after client close: #{owner.list_sessions.length}"
end
rescue StandardError => error
warn "#{error.class}: #{error.message}"
exit 1
end

Install the runtime dependencies and run the saved program. An operation or cleanup error makes it exit unsuccessfully:

Terminal window
$ bundle config set --local path vendor/bundle && \
bundle install --jobs 2 && \
bundle exec ruby server.rb

Expected output:

connected sessions: 1
sessions after client close: 1
Esc

Type to search.

Reference preview Open reference