Что делает каждый_с_объектом? Где он получает выбор? https://github.com/bodrovis/lokalise_manager/blob/master/lib%2Flokalise_manager%2Ftask_definitions%2Fbase.rb#L23
primary_opts = global_config
.singleton_methods
.filter { |m| m.to_s.end_with?('=') }
.each_with_object({}) do |method, opts|
reader = method.to_s.delete_suffix('=')
opts[reader.to_sym] = global_config.send(reader)
end
# *your text*
Попробовал просмотреть заднюю документацию на сайте Ruby.
🤔 А знаете ли вы, что...
Ruby популярен в мире искусственного интеллекта и машинного обучения.
each_with_object повторяет перечисляемое таким же образом, как и each
.
Но позволяет передать в блок дополнительный объект (например, пустой хэш в этом примере) и возвращает этот объект в конце (а не итератор, как это сделал бы each
).
Это упрощенный пример. Вместо
hash = {}
[1, 2, 3].each do |number|
hash[number] = number * number
end
hash
#=> { 1 => 1, 2 => 4, 3 => 9 }
each_with_object
позволяет написать:
[1, 2, 3].each_with_object({}) do |number, hash|
hash[number] = number * number
end
#=> { 1 => 1, 2 => 4, 3 => 9 }