lib/dtas/unix_client.rb in dtas-0.2.0 vs lib/dtas/unix_client.rb in dtas-0.3.0

- old
+ new

@@ -1,26 +1,28 @@ -# -*- encoding: binary -*- # Copyright (C) 2013, Eric Wong <normalperson@yhbt.net> and all contributors # License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt) -require 'dtas' +require_relative '../dtas' +require_relative 'xs' require 'socket' require 'io/wait' require 'shellwords' class DTAS::UNIXClient # :nodoc: attr_reader :to_io + include DTAS::XS + def self.default_path (ENV["DTAS_PLAYER_SOCK"] || File.expand_path("~/.dtas/player.sock")).b end def initialize(path = self.class.default_path) @to_io = Socket.new(:AF_UNIX, :SOCK_SEQPACKET, 0) @to_io.connect(Socket.pack_sockaddr_un(path)) end def req_start(args) - args = Shellwords.join(args) if Array === args + args = xs(args) if Array === args @to_io.send(args, Socket::MSG_EOR) end def req_ok(args, timeout = nil) res = req(args, timeout)