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.2.0.0 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.55 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.54 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.53 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.52 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.51 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.50 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.49 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.48 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.47 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.46 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.45 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.44 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.43 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.42 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.41 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.40 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.39 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.38 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.37 tracks/ecmascript/exercises/secret-handshake/example.js