Рассмотрим код ниже. self
явно вызывает метод. Но он также получает .each
. Не должен ли .each
быть получен получателем, находящимся вне метода, таким как bar
, напрямую? Мне трудно понять рабочую логику здесь.
def find_all
foo = []
self.each do |f| #shouldn't I iterate over some enumerable outside method?
if yield(f)
foo << f
end
end
foo
end
bar = []
File.open("some-text.txt") { |s| bar = s.readlines }
my_line = bar.find_all {|b| b.include?('line')}
puts my_line