Welcome to ClientVPS Mirrors

Defining custom feature flags

Defining custom feature flags

Introduction

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.

library(featureflag)

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

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

  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) {
  stopifnot(is_odd_feature_flag(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!")
}
#> [1] "The feature flag is on!"

Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.

This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.