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.15 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.14 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.13 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.12 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.11 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.10 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.9 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.8 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.7 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.6 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.5 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.4 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.3 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.2 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.1 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.1.0.0 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.0.8.55 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.0.8.54 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.0.8.53 tracks/ecmascript/exercises/secret-handshake/example.js
trackler-2.0.8.52 tracks/ecmascript/exercises/secret-handshake/example.js