The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
The featureflag
package provides a feature flag (also
called as feature toggles, feature switches) implementation for R.
Feature flags allow developers to turn functionalities on and off based
on configuration.
If you are interested in learning more about feature flags, check out those great resources:
Install the development version from GitHub with:
# install.packages("devtools")
::install_github("szymanskir/featureflag") devtools
The featureflag
package currently supports one type of
feature flags: bool feature flags (simple on and off flags):
library(featureflag)
<- create_bool_feature_flag(TRUE)
my_feature_flag
if (is_enabled(my_feature_flag)) {
print("My feature is enabled!")
else {
} print("My feature is not enabled!")
}
featureflag
provides helpers that allow you to omit
boilerplate code such as if
or if/else
. They
can be replace by the usage of feature_if
or
feature_ifelse
accordingly:
feature_ifelse(
my_feature_flag,print("My feature is enabled!"),
print("My feature is not enabled!")
)
The source code of all examples is available in the examples folder of the repository.
Feature flags can be especially useful when developing shiny applications. The example below shows how feature flags can be used to turn parts application on and off – in this case an extra instance of the counter module.
<- list(
FLAGS extra_counter_flag = create_bool_feature_flag(value = FALSE)
)
<- fluidPage(
ui counterButton("counter1", "Always Visible Counter"),
feature_if(FLAGS$extra_counter_flag, {
counterButton("flagged_counter", "Flagged Counter")
})
)
<- function(input, output, session) {
server counterServer("counter1")
feature_if(FLAGS$extra_counter_flag, {
counterServer("flagged_counter")
}) }
The featureflag
package can also be used in combination
with the config
package by using the R code execution feature:
default:
extra_counter_flag: !expr featureflag::create_bool_feature_flag(value = TRUE)
test:
extra_counter_flag: !expr featureflag::create_bool_feature_flag(value = TRUE)
production:
extra_counter_flag: !expr featureflag::create_bool_feature_flag(value = FALSE)
You can create feature flags that are turned on based on your own custom criteria. The procedure on how to define your own feature flag is presented in this tutorial
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.