Ruby возврат, если не блок - PullRequest
1 голос
/ 24 апреля 2020

У меня есть поле из github webhook - webhook.repository.private - которое проверяет, был ли созданный репозиторий закрытым (логическим). Я хочу использовать блок return if для обработки сценария: проверьте, является ли webhook.repository.private истиной, а если нет, вызовите новый класс PublicRepositoryCreated, но если это правда - верните и выполните fields_hash

код ниже:

      def required_fields
        PublicRepositoryCreated.new(webhook).call unless webhook.repository.private

        fields_hash
      end

      private

      def fields_hash
        {
          'fields' => {
            'summary' => 'summary',
            'description' => 'description',
            'project' => '123'
          }
        }
      end

Сейчас кажется, что fields_hash все еще выполняется, даже если webhook.repository.private равно false

1 Ответ

1 голос
/ 24 апреля 2020

У вас есть несколько способов решения вашей проблемы.

Вы можете:

  1. вызвать вашу функцию и вернуть
def required_fields
  PublicRepositoryCreated.new(webhook).call && return unless webhook.repository.private

  fields_hash
end
вернуть вашу функцию
def required_fields
  return PublicRepositoryCreated.new(webhook).call unless webhook.repository.private

  fields_hash
end
использование троичного
def required_fields
  webhook.repository.private ? fields_hash : PublicRepositoryCreated.new(webhook).call
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...