2015-08-06 17:20:02 +08:00
|
|
|
module Enumerable
|
2016-11-13 23:37:40 +01:00
|
|
|
unless method_defined?(:flat_map)
|
|
|
|
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
|
2015-08-06 17:20:02 +08:00
|
|
|
end
|
2016-11-13 23:37:40 +01:00
|
|
|
end
|
2015-08-06 17:20:02 +08:00
|
|
|
end
|