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

    sep = []

    if block_given?
      (size - 1).times do |i|
        sep << yield(i, *slice(i,2))
      end
    else
      options   = (Hash===args.last) ? args.pop : {}
      separator = args.shift || ""
      options[-1] = args.shift unless args.empty?

      sep = [separator] * (size - 1)

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

      options[-1] ||= " and "

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