From 7c72b0c68a8ee4dfe3d5b5b922d21519c584a3bf Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Thu, 6 Aug 2015 17:20:02 +0800 Subject: [PATCH] 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 --- Library/Homebrew/extend/enumerable.rb | 11 +++++++++++ Library/Homebrew/global.rb | 1 + 2 files changed, 12 insertions(+) create mode 100644 Library/Homebrew/extend/enumerable.rb diff --git a/Library/Homebrew/extend/enumerable.rb b/Library/Homebrew/extend/enumerable.rb new file mode 100644 index 0000000000..fededbfcac --- /dev/null +++ b/Library/Homebrew/extend/enumerable.rb @@ -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 diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index 5a809ab6f7..4ab84941c3 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -3,6 +3,7 @@ require "extend/fileutils" require "extend/pathname" require "extend/ARGV" require "extend/string" +require "extend/enumerable" require "os" require "utils" require "exceptions"