Огурец Преобразование между файлами - PullRequest
1 голос
/ 08 ноября 2011

У меня есть два преобразования в функциях / support / transforms / date_transform.rb

CAPTURE_YEAR = Transform /^(20\d{2})$/ do |year|
  year.to_i
end

CAPTURE_QUARTER = Transform /^(first|second|third|fourth)$/ do |quarter|
    {first: 1, second: 2, third: 3, fourth: 4}[quarter.to_sym]
end

У меня есть другое преобразование в functions / support / transforms / number_transform.rb

CAPTURE_NUMBER = Transform /^\d+$/ do |number|
  number.to_i
end

Я понимаю, что год и число почти идентичны, но я не хочу просто удалять переменную CAPTURE_YEAR. Я хотел бы сделать:

CAPTURE_YEAR = CAPTURE_NUMBER

Но, к сожалению, CAPTURE_NUMBER не существует в файле, с которым я работаю. Есть идеи, как правильно включить другие преобразования в огурец? Мне нужно явно требовать файл из каждого файла преобразования правильно?

Заранее спасибо!

1 Ответ

2 голосов
/ 10 ноября 2011

Cucumber просто загружает любые файлы в каталоге support. Кажется, что они загружаются в алфавитном порядке (но я не знаю, что это документированное / надежное поведение, т.е. я не хотел бы просто переименовывать файлы, чтобы обойти это).

Если вы попытаетесь объявить CAPTURE_YEAR до загрузки файла, содержащего CAPTURE_NUMBER, то, как вы обнаружили, произойдет сбой.

Я думаю, что вам лучше всего явно указать файл number_transform, прежде чем пытаться использовать объявленные внутри него константы. Лично у меня нет проблем с объявлением в файле, от каких файлов он зависит.

Вы можете также потребовать его внутри env.rb, так как он анализируется перед любыми другими файлами поддержки, и может быть лучшим вариантом, если от этого зависят также и многие другие ваши файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...