2017-02-09 19 views
0

Извините за такой вопрос новичков, но я очень смущен тем, как писать скрипт Fastlane за пределами использования предоставленных методов.Пользовательская переменная в скрипте Fastlane

Что я ищу сделать, это создать переменную message, которая может быть передана в функцию after_all, поэтому, когда я отправляю к отними, каждая дорожка может иметь свой собственный пользовательский сообщение:

put message # is this how to set a variable? 
lane :alpha do 
    # This is what I'd like to do 
    message = "[Google Play] Alpha Channel Deployed" 
end 

after_all |lane, options| do 
    slack(message: message) 
end 

Может кто-то указать мне верное направление? Я так сильно потерял, как создавать и передавать переменные, которые не поступают из командной строки в сценарии Fastfile.

+1

Вы устанавливаете переменную с помощью оператора '=', как и в строке 4. Локальная переменная существует только в пределах области, где она создана. Я ничего не знаю о Fastlane, но предполагая, что блок, переданный в 'lane', вызывается до того, как блок передан в' after_all', затем изменив первую строку на 'message = nil' (чтобы переменная существовала вне области первого блока) может работать. –

+1

И если вы не знаете, как использовать Ruby, хорошим началом было бы прочитать некоторые документы, начинающиеся, возможно, с помощью [этого учебника] (https://www.ruby-lang.org/en/documentation/quickstart/). –

+0

@ Джордан - Это сработало. Наверное, мне просто нужно было сначала его инициализировать. Учебники, которые я читал прошлой ночью, не помогли на этом фронте; Я посмотрю, что вы отправили! – EHorodyski

ответ

1

Вы устанавливаете переменную с помощью оператора =, как и в строке 4. Локальная переменная существует только в пределах области, где она создана. Если предположить, что блок, переданный lane вызывается перед блок передается after_all, затем изменить первую строку в message = nil (так что переменная существует вне сферы действия первого блока) должно работать:

message = nil 

lane :alpha do 
    message = "[Google Play] Alpha Channel Deployed" 
end 

after_all |lane, options| do 
    slack(message: message) 
end 
2

В качестве альтернативы вы можете также сделать нижеследующее:

lane :alpha do 
    @message = "[Google Play] Alpha Channel Deployed" 
end 

after_all |lane, options| do 
    slack(message: @message) 
end 
+0

Работает отлично, но что там происходит? Не могли бы вы объяснить не рубинам. – Dren

+0

Ответьте мне, это просто ivar :) – Dren

 Смежные вопросы

  • Нет связанных вопросов^_^