about summary refs log tree commit homepage
path: root/lib/dtas/xs.rb
blob: 6836172b3fe552e36628ae1245ca2d22d48328f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Copyright (C) 2013-2016 all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require_relative '../dtas'
require 'shellwords'

# We always escape binary strings because paths on POSIX filesystems are
# encoding agnostic.  Shellwords.split does give UTF-8 strings, but nothing
# cares at that point if the encoding isn't valid (and it's right to not care,
# again, filesystems can use any byte value in names except '\0'.
module DTAS::XS # :nodoc:
  def xs(ary)
    Shellwords.join(Array(ary).map(&:b))
  end
end