rmoliva/ockham

View on GitHub
examples/home.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html id='doc'>
  <head>
    <title>Ockham</title>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
    <script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.js' type='text/javascript'></script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/bluebird/2.9.30/bluebird.js' type='text/javascript'></script>
    <script src='../dist/ockham.max.js' type='text/javascript'></script>



    <script type="text/javascript">
    //<![CDATA[
     
    var fsm = Ockham.create({
      config: function(fsm) {
        return {
          states: {
            none: {
              init: 'off'
            },
            off: {
              blink: this.blink,
              round: this.round
            },
            blink: {
              turn_on: 'on',
            },
            on: {
              turn_off: 'off',
            }
          }
        };
      },
      blink : function(fsm, options) {
        return new Promise(function(resolve, reject) {
          fsm.deferTransition("turn_on", options);
          resolve('blink', options);
        });
      },
      round: function(fsm, options) {
        return new Promise(function(resolve, reject) {
          fsm.deferTransition("turn_on", options);
          fsm.deferTransition("turn_off", options);
          resolve('blink', options);
        });
      }
    });

    fsm.doTransition('init').then(function(data) {
      return fsm.doTransition('turn', {1: "Uno",2: "Dos"});
    }).then(function(data) {
      console.log(data);
    });
    
    //]]>
    </script>

  </head>
  <body>
    <div id="main_content">
  </body>
</html>