Core Library0.xAPI Reference

Choose documentation 3

v0.1.1

Current version

v0.1.1
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

method libtmux-ruby v0.1.1

Server.new

Behavior: Borrowed bindings.

Source and package
Qualified name
LibTmux::Server.new
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 3.3 or newer with Bundler, and tmux 3.3a or newer, on Unix with /bin/cat and /bin/sh available. In an empty directory, save this Gemfile:

source "https://rubygems.org"
gem "libtmux", "0.1.1"

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
begin
# docs:begin main
require "libtmux"
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
# docs:end main
rescue StandardError => error
warn "#{error.class}: #{error.message}"
exit 1
end

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

Terminal window
$ bundle install && \
bundle exec ruby server.rb

Expected output:

connected sessions: 1
sessions after client close: 1
Parameters
Esc

Type to search.

Reference previewOpen reference