Мне нужно написать метод, который принимает неизвестное количество аргументов (следовательно, * splat), но которое передает спецификацию yields_with_args
.Есть ли способ без (*) аргумента splat передать несколько аргументов в Ruby?
Код:
def eval_block(*args, &block)
raise "NO BLOCK GIVEN!" if block.nil?
block.call(args)
end
RSpec:
it "passes the arguments into the block" do
expect do |block|
eval_block(1, 2, 3, &block)
end.to yield_with_args(1, 2, 3)
end
end
Он работает, но он дает массив, * знак создает: [1,2,3]
против 1,2,3
, и, следовательно, не проходит RSpec. Есть ли другой способ передать несколько аргументов с помощью метода в Ruby?
Сохранение жизней, bruh –