Defining custom feature flags

  collapse = TRUE,
  comment = "#>"


In this document the process of implementing custom feature flags is presented. In the subsequent sections we will create a feature flag that is enabled if it's number field is odd.

Functions to be implemented

Each feature flag requires 1 function to be implemented:

However, it is recommended to additionally include:

Create feature flag function

Let's start with a construction method that will use create a base feature flag, add the number field to it and assign it to the proper class.


create_odd_feature_flag <- function(number) {
  flag <- create_feature_flag()

  flag$number <- number
  class(flag) <- c("odd_feature_flag", class(flag))


Class checking function

Next, we will create a function checking the class attribute of the object.

is_odd_feature_flag <- function(feature_flag) {
  inherits(feature_flag, "odd_feature_flag")

is_enabled function

Finally, we define the is_enabled function which checks whether the number field of our flag is odd.

is_enabled.odd_feature_flag <- function(feature_flag) {
  (feature_flag$number %% 2) != 0

Now, let's test if everything is working

my_odd_feature_flag <- create_odd_feature_flag(number = 3)

if (is_enabled(my_odd_feature_flag)) {
  print("The feature flag is on!")

Try the featureflag package in your browser

Any scripts or data that you put into this service are public.

featureflag documentation built on Feb. 18, 2021, 5:06 p.m.