summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rbot/core/utils/extends.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/rbot/core/utils/extends.rb b/lib/rbot/core/utils/extends.rb
index 332a1629..fc7119fa 100644
--- a/lib/rbot/core/utils/extends.rb
+++ b/lib/rbot/core/utils/extends.rb
@@ -124,7 +124,9 @@ class ::Array
replace shuffle
end
end
+end
+module ::Enumerable
# This method is an advanced version of #join
# allowing fine control of separators:
#
@@ -139,12 +141,14 @@ class ::Array
# git-rev: c8b7395255b977d3c7de268ff563e3c5bc7f1441
# file: lib/core/facets/array/conjoin.rb
def conjoin(*args, &block)
- return first.to_s if size < 2
+ num = count - 1
+
+ return first.to_s if num < 1
sep = []
if block_given?
- (size - 1).times do |i|
+ num.times do |i|
sep << yield(i, *slice(i, 2))
end
else
@@ -152,7 +156,7 @@ class ::Array
separator = args.shift || ""
options[-1] = args.shift unless args.empty?
- sep = [separator] * (size - 1)
+ sep = [separator] * num
if options.key?(:last)
options[-1] = options.delete(:last)