Feature flag sample

by Renoir Boulanger

HTML

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css">
<h1>Feature flip <small>example</small></h1>
<blockquote>In order to progressively roll out/in features, we need to fork behaviors.<br /><br />
    To do so, we create a featureDescriptionFlag object which contains arrays of strings. If it exist return true, otherwise false</blockquote>

JavaScript

/**
 * Fiddle's main subject
 **/

    // Initial state, as a global object singleton
    window.featureFlagDescriptor = {};


    // WARNING: Requires underscore.js
    function featureFlag(flagContainerName, elementKeyToCheck) {
      //console.log('Feature flagging on '+flagContainerName+', with ' + elementKeyToCheck); // DEBUG
      if (_.has(window.featureFlagDescriptor||{}, flagContainerName)) {
         if(_.contains(window.featureFlagDescriptor[flagContainerName]||[], elementKeyToCheck)) {
           //console.log('Disabled by '+flagContainerName+', matching ' + elementKeyToCheck); // DEBUG
           return true;
         }
      }
      return false;
    }










/**
 * SUPPORTING CODE *********************************************************** 
 **/