Sha256: 2d1b7d7bf6ec7e9c7565a1bc2756e1e4444a7a1e214a84cd6957001f2898a131

Contents?: true

Size: 798 Bytes

Versions: 211

Compression:

Stored size: 798 Bytes

Contents

export default function (handshake) {
  const HANDSHAKE_COMMANDS = [ 'wink', 'double blink', 'close your eyes', 'jump', 'REVERSE' ]

  if (typeof handshake !== 'number') {
    throw new Error('Handshake must be a number');
  }

  this.commands = () => this.shakeWith;

  this.calculateHandshake = (handshake) => {
    const shakeWith = [];

    for (let i = 0; i < HANDSHAKE_COMMANDS.length; i++) {
      const currentCommand = HANDSHAKE_COMMANDS[i];
      const handshakeHasCommand = handshake & Math.pow(2,i);

      if (handshakeHasCommand) {
        if (currentCommand === 'REVERSE') {
          shakeWith.reverse();
        } else {
          shakeWith.push(HANDSHAKE_COMMANDS[i]);
        }
      }
    }

    return shakeWith;
  };

  this.shakeWith = this.calculateHandshake(handshake);

}

Version data entries

211 entries across 211 versions & 1 rubygems

Version Path
trackler-2.1.0.36 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.34 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.33 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.32 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.31 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.30 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.29 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.28 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.27 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.26 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.25 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.24 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.23 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.22 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.21 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.20 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.19 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.18 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.17 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.16 tracks/ecmascript/exercises/secret-handshake/example.js