about summary refs log tree commit homepage
path: root/lib/dtas/xs.rb
blob: a73bae9d4a6d74ee6f58e4ce9b8fe936c0d53878 (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