UNPKG

prismic.io

Version:

JavaScript development kit for prismic.io

135 lines (104 loc) 5.05 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: experiments.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: experiments.js</h1> <section> <article> <pre class="prettyprint source linenums"><code> "use strict"; /** * A collection of experiments currently available * @param data the json data received from the Prismic API * @constructor */ function Experiments(data) { var drafts = []; var running = []; if (data) { data.drafts &amp;&amp; data.drafts.forEach(function (exp) { drafts.push(new Experiment(exp)); }); data.running &amp;&amp; data.running.forEach(function (exp) { running.push(new Experiment(exp)); }); } this.drafts = drafts; this.running = running; } Experiments.prototype.current = function() { return this.running.length > 0 ? this.running[0] : null; }; /** * Get the current running experiment variation ref from a cookie content */ Experiments.prototype.refFromCookie = function(cookie) { if (!cookie || cookie.trim() === "") return null; var splitted = cookie.trim().split(" "); if (splitted.length &lt; 2) return null; var expId = splitted[0]; var varIndex = parseInt(splitted[1], 10); var exp = this.running.filter(function(exp) { return exp.googleId() == expId &amp;&amp; exp.variations.length > varIndex; })[0]; return exp ? exp.variations[varIndex].ref() : null; }; function Experiment(data) { this.data = data; var variations = []; data.variations &amp;&amp; data.variations.forEach(function(v) { variations.push(new Variation(v)); }); this.variations = variations; } Experiment.prototype.id = function() { return this.data.id; }; Experiment.prototype.googleId = function() { return this.data.googleId; }; Experiment.prototype.name = function() { return this.data.name; }; function Variation(data) { this.data = data; } Variation.prototype.id = function() { return this.data.id; }; Variation.prototype.ref = function() { return this.data.ref; }; Variation.prototype.label = function() { return this.data.label; }; module.exports = { Experiments: Experiments, Variation: Variation }; </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Api.html">Api</a></li><li><a href="Doc.html">Doc</a></li><li><a href="Experiments.html">Experiments</a></li><li><a href="Fragments_Color.html">Fragments:Color</a></li><li><a href="Fragments_CompositeSlice.html">Fragments:CompositeSlice</a></li><li><a href="Fragments_Date.html">Fragments:Date</a></li><li><a href="Fragments_DocumentLink.html">Fragments:DocumentLink</a></li><li><a href="Fragments_Embed.html">Fragments:Embed</a></li><li><a href="Fragments_FileLink.html">Fragments:FileLink</a></li><li><a href="Fragments_GeoPoint.html">Fragments:GeoPoint</a></li><li><a href="Fragments_Group.html">Fragments:Group</a></li><li><a href="Fragments_ImageEl.html">Fragments:ImageEl</a></li><li><a href="Fragments_ImageLink.html">Fragments:ImageLink</a></li><li><a href="Fragments_ImageView.html">Fragments:ImageView</a></li><li><a href="Fragments_Num.html">Fragments:Num</a></li><li><a href="Fragments_Select.html">Fragments:Select</a></li><li><a href="Fragments_Separator.html">Fragments:Separator</a></li><li><a href="Fragments_SimpleSlice.html">Fragments:SimpleSlice</a></li><li><a href="Fragments_SliceZone.html">Fragments:SliceZone</a></li><li><a href="Fragments_StructuredText.html">Fragments:StructuredText</a></li><li><a href="Fragments_Text.html">Fragments:Text</a></li><li><a href="Fragments_Timestamp.html">Fragments:Timestamp</a></li><li><a href="Fragments_WebLink.html">Fragments:WebLink</a></li><li><a href="Ref.html">Ref</a></li><li><a href="Response.html">Response</a></li><li><a href="SearchForm.html">SearchForm</a></li><li><a href="WithFragments.html">WithFragments</a></li></ul><h3>Namespaces</h3><ul><li><a href="Predicates.html">Predicates</a></li></ul><h3>Global</h3><ul><li><a href="global.html#ApiCache">ApiCache</a></li><li><a href="global.html#data">data</a></li><li><a href="global.html#fragments">fragments</a></li><li><a href="global.html#insertSpans">insertSpans</a></li><li><a href="global.html#LRUCache">LRUCache</a></li><li><a href="global.html#parseDoc">parseDoc</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Fri Apr 28 2017 17:29:54 GMT+0200 (CEST) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>