Фича объект Featury 
Фича объект может содержать работу как с одним конкретным фича-флагом, так и с несколькими фича-флагами. Несколько фича-флагов также могут быть представлены в виде группы — вложенном объекте фичи.
Префикс 
Объект фичи всегда имеет префикс. По умолчанию он собирается на основе имени класса объекта фичи. Например, для User::OnboardingFeature по умолчанию префикс будет иметь значение user_onboarding.
Изменить префикс можно при помощи метода prefix:
class User::OnboardingFeature < ApplicationFeature
  prefix :onboarding
  
  # ...
endРесурсы 
Объект фичи может ожидать на вход передачу ресурса. Эти ресурсы могут быть использованы в действиях в качестве дополнения для работы с фича-флагами.
Опции 
Опция option 
Делает ресурс необязательным для вызова объекта фичи. По умолчанию false.
class User::OnboardingFeature < ApplicationFeature
  prefix :onboarding
  resource :user, type: User, option: true
  # ...
endОпция nested 
Передает ресурс во вложенные объекты фичей через groups. По умолчанию false.
class User::OnboardingFeature < ApplicationFeature
  prefix :onboarding
  resource :user, type: User, nested: true
  # ...
endУсловие 
Объект фичи может содержать в себе базовое условие для работы. Например, это может быть полезно если нужно позволить работу с ресурсом только в определенном состоянии.
class User::OnboardingFeature < ApplicationFeature
  prefix :onboarding
  resource :user, type: User
  condition ->(resources:) { resources.user.onboarding_awaiting? } 
  # ...
endНабор фичей 
В рамках одного объекта фичи можно указать один фича-флаг или несколько фича-флагов.
class User::OnboardingFeature < ApplicationFeature
  prefix :onboarding
  resource :user, type: User
  condition ->(resources:) { resources.user.onboarding_awaiting? }
  features :passage
endclass User::OnboardingFeature < ApplicationFeature
  prefix :onboarding
  resource :user, type: User
  condition ->(resources:) { resources.user.onboarding_awaiting? }
  features :passage, :integration
endВместе с префиксом onboarding, пример которого представлен выше, будут собираться эти фича-флаги:
# => onboarding_passage# => onboarding_passage
# => onboarding_integrationГруппы наборов фичей 
class User::OnboardingFeature < ApplicationFeature
  prefix :onboarding
  resource :user, type: User
  condition ->(resources:) { resources.user.onboarding_awaiting? }
  features :passage
  groups BillingFeature, 
         PaymentSystemFeature
end