У меня есть хеш с regex
для ключа и block
для значения.Что-то вроде следующего:
{ 'test (.+?)' => { puts $1 } }
Не точно , как это, очевидно, поскольку блок хранится как Proc, но это идея.
Я тогдаПозже у меня будет совпадение с регулярным выражением, которое выглядит примерно так:
hash.each do |pattern, action|
if /#{pattern}/i.match(string)
action.call
end
end
Идея заключалась в том, чтобы сохранить блок в хэше, чтобы мне было легче расширяться в будущем, но теперьregex
захват не передается в блок.Есть ли способ сделать это чисто, который бы поддерживал любое количество захватов, которые я вставил в regex
(например, в некоторых шаблонах regex
может быть 1 захват, в других - 3)?