<commit_before>/**
 * Morse.js
 * Convert text to and from morse code
 */

var Morse = {
  encode: function(selector) {
    var lookup = {
          'a': '.-',
          'b': '-...',
          'c': '-.-.',
          'd': '-..',
          'e': '.',
          'f': '..-.',
          'g': '--.',
          'h': '....',
          'i': '..',
          'j': '.---',
          'k': '-.-',
          'l': '.-..',
          'm': '--',
          'n': '-.',
          'o': '---',
          'p': '.--.',
          'q': '--.-',
          'r': '.-.',
          's': '...',
          't': '-',
          'u': '..-',
          'v': '...-',
          'w': '.--',
          'x': '-..-',
          'y': '-.--',
          'z': '--..',
          '1': '.----',
          '2': '..---',
          '3': '...--',
          '4': '....-',
          '5': '.....',
          '6': '-....',
          '7': '--...',
          '8': '---..',
          '9': '----.',
          '0': '-----',
          ' ': ''
        },
        elements = document.querySelectorAll(selector),
        length = elements.length, i, j;

    for ( i = 0; i < length; ++i ) {
      var el = elements[i],
          original = el.innerHTML,
          encoded = [],
          chars = original.toLowerCase().split(''),
          len = chars.length;

      for ( j = 0; j < len; j++ ) {
        encoded.push(lookup[chars[j]]);
      }

      el.innerHTML = encoded.join(' ');
      el.setAttribute( 'data-original-value', original );
    }
  },

  decode: function(selector) {
    var lookup = {
          '.-': 'a',
          '-...': 'b',
          '-.-.': 'c',
          '-..': 'd',
          '.': 'e',
          '..-.': 'f',
          '--.': 'g',
          '....': 'h',
          '..': 'i',
          '.---': 'j',
          '-.-': 'k',
          '.-..': 'l',
          '--': 'm',
          '-.': 'n',
          '---': 'o',
          '.--.': 'p',
          '--.-': 'q',
          '.-.': 'r',
          '...': 's',
          '-': 't',
          '..-': 'u',
          '...-': 'v',
          '.--': 'w',
          '-..-': 'x',
          '-.--': 'y',
          '--..': 'z',
          '.----': '1',
          '..---': '2',
          '...--': '3',
          '....-': '4',
          '.....': '5',
          '-....': '6',
          '--...': '7',
          '---..': '8',
          '----.': '9',
          '-----': '0',
          '': ' '
        },
        elements = document.querySelectorAll(selector),
        length = elements.length, i, j;

    for ( i = 0; i < length; ++i ) {
      var el = elements[i],
          original = el.innerHTML,
          decoded = [],
          chars = original.toLowerCase().split(' '),
          len = chars.length;

      for ( j = 0; j < len; j++ ) {
        decoded.push(lookup[chars[j]]);
      }

      el.innerHTML = decoded.join('');
      el.setAttribute( 'data-original-value', original );
    }
  }
};<commit_msg>Refactor Morse module<commit_after>/**
 * Morse.js
 * Convert text to and from morse code
 */

var Morse = (function() {

  var _map = {
    'a': '.-',
    'b': '-...',
    'c': '-.-.',
    'd': '-..',
    'e': '.',
    'f': '..-.',
    'g': '--.',
    'h': '....',
    'i': '..',
    'j': '.---',
    'k': '-.-',
    'l': '.-..',
    'm': '--',
    'n': '-.',
    'o': '---',
    'p': '.--.',
    'q': '--.-',
    'r': '.-.',
    's': '...',
    't': '-',
    'u': '..-',
    'v': '...-',
    'w': '.--',
    'x': '-..-',
    'y': '-.--',
    'z': '--..',
    '1': '.----',
    '2': '..---',
    '3': '...--',
    '4': '....-',
    '5': '.....',
    '6': '-....',
    '7': '--...',
    '8': '---..',
    '9': '----.',
    '0': '-----',
    ' ': ''
  };

  function _iterate(selector, separator, joiner, lookup) {
    var elements = document.querySelectorAll(selector),
        elen = elements.length;

    for (var i = 0; i < elen; ++i) {
      var el = elements[i],
          original = el.innerHTML,
          list = [],
          chars = original.toLowerCase().split(separator),
          slen = chars.length;

      for (var j = 0; j < slen; ++j) {
        list.push( lookup.call(this, _map, chars[j]) );
      }

      el.innerHTML = list.join(joiner);
      el.setAttribute('data-original-value', original);
    }
  }

  function encode(selector) {
    _iterate(selector, '', ' ', function(map, character) {
      return map[character];
    });
  }

  function decode(selector) {
    _iterate(selector, ' ', '', function(map, character) {
      return Object.keys(map).filter(function(key) {
        return map[key] === character;
      })[0];
    });
  }

  return {
    encode: encode,
    decode: decode
  };
}());
{'fraction_non_alphanumeric': 0.30890960329503575, 'fraction_numerical': 0.00802081075222198, 'mean_word_length': 1.0443066016836509, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3975760', 'n_tokens_mistral': 1664, 'n_tokens_neox': 1624, 'n_words': 276}