В наборе rspec спецификаций единицы направляющих я делаю что-то как:
describe Foo do
[:bar, :baz].each do |a|
it "should have many #{a}" do
Foo.should have_many(a)
end
end
end
Для более чистого кода я сделал бы что-то как:
describe Foo do
spec_has_many Foo, :bar, :baz
end
Таким образом, как я пишу вспомогательный метод как spec_has_many()
для вставки DSL кодируют как rspec's it()
метод? Если бы это было для обычного метода экземпляра, то я сделал бы что-то как:
def spec_has_many(model, *args)
args.each do |a|
define_method("it_should_have_many_#{a}") do
model.should have_many(a)
end
end
end
Каков был бы эквивалент для определения rspec примеры?