backport flat_map for Ruby 1.8

Code is copied from
https://github.com/marcandre/backports/blob/master/lib/backports/1.9.2/enumerable/flat_map.rb
(MIT License by Marc-Andre Lafortune)

Closes Homebrew/homebrew#42543.

Signed-off-by: Xu Cheng <xucheng@me.com>
This commit is contained in:
Xu Cheng 2015-08-06 17:20:02 +08:00
parent ae0e270727
commit 7c72b0c68a
2 changed files with 12 additions and 0 deletions

View File

@ -0,0 +1,11 @@
module Enumerable
def flat_map
return to_enum(:flat_map) unless block_given?
r = []
each do |*args|
result = yield(*args)
result.respond_to?(:to_ary) ? r.concat(result) : r.push(result)
end
r
end unless method_defined?(:flat_map)
end

View File

@ -3,6 +3,7 @@ require "extend/fileutils"
require "extend/pathname" require "extend/pathname"
require "extend/ARGV" require "extend/ARGV"
require "extend/string" require "extend/string"
require "extend/enumerable"
require "os" require "os"
require "utils" require "utils"
require "exceptions" require "exceptions"