Как мне получить доступ к имени этой задачи во вспомогательной функции внутри задачи rake?

У меня есть задача rake, которая загружает данные для моего веб-приложения. У меня есть две рейк-задачи: «production_data» и «demo_data». У меня также есть функция с именем create_admin_login. Я хотел бы поместить условный переключатель в create_admin_login, чтобы увидеть, какая задача вызывает его, и задать соответствующее значение электронной почты.

Я не могу понять, как узнать, что вызывается :task. Как мне это сделать? (Я также понимаю, что это может быть неправильный способ написания rake-файла... должен ли я иметь отдельную функцию с именем create_demo_admin_login? Это не очень СУХО.)


person Avery    schedule 13.05.2015    source источник


Ответы (1)


Не знаю, поможет ли это кверентам спустя столько времени, но другим, которые придут сюда искать.

Как узнать, какая задача вызывает create_admin_login (или другими словами — как узнать, какая задача выполняется/вызывается в rake):

  def create_admin_login
    foo = Rake.application.top_level_tasks.join(', ')
    if /production_data/ =~ foo
    # or exclude .join(', ') and make if statement with: foo.include?('production_data')
      # seed one data
    else
      # seed other data
    end
  end
person That's me - who else    schedule 31.01.2017