# 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