module Comprehension::ProcExtension
Public Instance Methods
comprehension(first_enum, *rest_enums) { |self.(x)| ... }
click to toggle source
# File lib/comprehension.rb, line 9 def comprehension(first_enum, *rest_enums) return lazy_comprehension(first_enum, *rest_enums).map(&:itself) unless block_given? if rest_enums.empty? first_enum.each {|x| yield self.(x) } else first_enum.each do |x| ->(*rest_elts) { yield(self.(x, *rest_elts)) }.comprehension(*rest_enums) end end end
lazy_comprehension(first_enum, *rest_enums)
click to toggle source
# File lib/comprehension.rb, line 5 def lazy_comprehension(first_enum, *rest_enums) enum_for(:comprehension, first_enum, *rest_enums) end