Машинист + RSpec и зарезервированные слова - PullRequest
3 голосов
/ 23 августа 2011

У меня есть план:

Model.blueprint(:something) do
  name "Some name"
  context "some context"
end

«контекст» является атрибутом модели, но это также зарезервированное слово RSpec. Когда я пытаюсь создать объект, я получаю ArgumentError в строке «context».

Есть идеи, как преодолеть эту ситуацию?

1 Ответ

0 голосов
/ 11 февраля 2012

Невозможно скопировать это с Machinist 2.0.0.beta2.

Машинист работает, переопределяя method_missing? и затем назначая атрибуты на основе этих аргументов. Если rspec каким-то образом присваивает метод context объектам токарного станка машиниста, то этот метод будет вызываться до method_missing?. Если вы все еще испытываете эту проблему, вы можете попробовать remove_method :context перед оценкой атрибутов:

Model.blueprint(:something) do
  remove_method :context
  name "Some name"
  context "some context"
  alias_method :context, :describe
end

Я не могу сказать, сработает ли это, поскольку я не могу повторить это локально, но я бы попробовал.

...