# File lib/core/facets/array/conjoin.rb, line 57
  def conjoin(*args, &block)
    return first.to_s if size < 2

    options = (Hash===args.last) ? args.pop : {}

    spacing = options.delete(:space)  || 0
    spacer  = options.delete(:spacer) || " "
    space   = spacer * spacing.to_i

    sep = []

    if block_given?
      (size - 1).times do |i|
        sep << space + yield(i, *slice(i,2)) + space
      end
    else
      separator   = args.shift || " "
      options[-1] = args.shift if args.first

      options[0]  = options.delete(:first) if options.key?(:first)
      options[-1] = options.delete(:last)  if options.key?(:last)

      separator = space + separator + space

      sep = [separator] * (size - 1)

      options.each{|i, s| sep[i] = space + s + space}
    end
    zip(sep).join
  end