Skip to content

Опции для действий

Опция if

Перед вызовом метода будет проверено условие, описанное в if.

ruby
make :something,
     if: ->(**) { Settings.features.preview.enabled }

def something
  # ...
end

Опция unless

Противоположность опции if.

ruby
make :something,
     unless: ->(**) { Settings.features.preview.disabled }

def something
  # ...
end

Опция position

Все методы имеют позицию. Если какой-то метод нужно вызвать не в тот момент, в который он был добавлен через make, то можно воспользоваться опцией position. Может быть полезно при наследовании сервисов.

ruby
class SomeApiService::Base < ApplicationService::Base
  make :api_request!,
       position: 2

  # ...
end

class SomeApiService::Posts::Create < SomeApiService::Base
  input :post_name, type: String

  # ...
  
  make :validate!,
       position: 1

  private

  def validate!
    # ...
  end

  # ...
end