Методы не могут быть замыканиями в Ruby, только блоки могут:
country = nil
ret = parent.xpath(".//text()[regex(.)]", Class.new{
define_method(:regex) do |node_set, lead|
result = node_set.find_all do |node|
node.text =~ POST_CODE_EXPRESSION || node.text =~ ZIP_CODE_EXPRESSION
end
result
end
}.new)
Кстати: ваш regex
метод намного сложнее, чем нужно. Это просто эквивалентно
define_method(:regex) do |node_set, lead|
node_set.find_all do |node|
node.text =~ POST_CODE_EXPRESSION || node.text =~ ZIP_CODE_EXPRESSION
end
end