<commit_before>/***
 * Copyright (c) 2016, 2017 <NAME> (@localnerve), LocalNerve LLC
 * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
 */
/* global window, document */
import debugLib from 'debug';
import React from 'react';
import PropTypes from 'prop-types';
import { connectToStores, provideContext } from 'fluxible-addons-react';
import { handleHistory, navigateAction } from 'fluxible-router';
import ReactSwipe from 'react-swipe';
import { closeModal as modalAction } from 'application/actions/modal';
import Background from './Background';
import PageContainer from './PageContainer';
import Header from './header';
import Footer from './footer';
import pages from './pages';

const debug = debugLib('application');

class Application extends React.Component {
  constructor (props) {
    super(props);

    this.handleSwipe = this.handleSwipe.bind(this);
  }

  static get propTypes () {
    return {
      hasServiceWorker: PropTypes.bool.isRequired,
      navigateComplete: PropTypes.bool.isRequired,
      currentNavigateError: PropTypes.object,
      pageTitle: PropTypes.string.isRequired,
      analytics: PropTypes.string,
      pageName: PropTypes.string.isRequired,
      pages: PropTypes.object.isRequired,
      pageModels: PropTypes.object.isRequired,
      modal: PropTypes.object
    };
  }

  static get contextTypes () {
    return {
      getStore: PropTypes.func.isRequired,
      executeAction: PropTypes.func.isRequired
    };
  }<commit_msg>bind custom methods in Application class<commit_after>/***
 * Copyright (c) 2016, 2017 <NAME> (@localnerve), LocalNerve LLC
 * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
 */
/* global window, document */
import debugLib from 'debug';
import React from 'react';
import PropTypes from 'prop-types';
import { connectToStores, provideContext } from 'fluxible-addons-react';
import { handleHistory, navigateAction } from 'fluxible-router';
import ReactSwipe from 'react-swipe';
import { closeModal as modalAction } from 'application/actions/modal';
import Background from './Background';
import PageContainer from './PageContainer';
import Header from './header';
import Footer from './footer';
import pages from './pages';

const debug = debugLib('application');

class Application extends React.Component {
  constructor (props) {
    super(props);

    this.handleSwipe = this.handleSwipe.bind(this);
    this.modalClose = this.modalClose.bind(this);
    this.handleMessage = this.handleMessage.bind(this);
  }

  static get propTypes () {
    return {
      hasServiceWorker: PropTypes.bool.isRequired,
      navigateComplete: PropTypes.bool.isRequired,
      currentNavigateError: PropTypes.object,
      pageTitle: PropTypes.string.isRequired,
      analytics: PropTypes.string,
      pageName: PropTypes.string.isRequired,
      pages: PropTypes.object.isRequired,
      pageModels: PropTypes.object.isRequired,
      modal: PropTypes.object
    };
  }

  static get contextTypes () {
    return {
      getStore: PropTypes.func.isRequired,
      executeAction: PropTypes.func.isRequired
    };
  }
{'fraction_non_alphanumeric': 0.10769718086791258, 'fraction_numerical': 0.005068102629078239, 'mean_word_length': 4.044728434504792, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, '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': '5617749', 'n_tokens_mistral': 858, 'n_tokens_neox': 856, 'n_words': 247}