<commit_before>( function _FileProviderCachingStats_s_() {

'use strict';

if( typeof module !== 'undefined' )
{

  require( '../provider/Abstract.s' );

}

if( wTools.FileProvider.CachingStats )
return;

//

var _ = wTools;
var Abstract = _.FileProvider.Abstract;
var Parent = _.FileProvider.Default;
var Self = function wFileProviderCachingStats( o )
{
  if( !( this instanceof Self ) )
  if( o instanceof Self )
  return o;
  else
  return new( _.routineJoin( Self, Self, arguments ) );
  return Self.prototype.init.apply( this,arguments );
}

//

function init( o )
{
  var self = this;

  var self = this;
  Parent.prototype.init.call( self,o );

  if( !self.originalProvider )
  self.originalProvider = _.FileProvider.Default();

  return self;
}

//

function fileStat( o )
{
  var self = this;
  var original = self.originalProvider.fileStat;

  var o = _._fileOptionsGet.apply( original,arguments );
  var pathFile = _.pathResolve( o.pathFile );

  debugger;
  var stat = original.call( self.originalProvider, o );

  if( o.sync )
  {
    self._cache[ pathFile ] = stat;
    return stat;
  }
  else
  {
    return stat.doThen( function( err, got )
    {
      if( err )
      throw err;
      self._cache[ pathFile ] = got;
      return got;
    })
  }
}

fileStat.defaults = {};
fileStat.defaults.__proto__ = Parent.prototype.fileStat.defaults;

// --
// relationship
// --

var Composes =
{
  originalProvider : null,
}

var Aggregates =
{
}

var Associates =
{
}

var Restricts =
{
  _cache : [],
}

// --
// prototype
// --

var Proto =
{

  init : init,

  fileStat : fileStat,

  //

  constructor : Self,
  Composes : Composes,
  Aggregates : Aggregates,
  Associates : Associates,
  Restricts : Restricts,

}

//

_.protoMake
({
  constructor : Self,
  parent : Parent,
  extend : Proto,
});<commit_msg>CachingStats _cache adjust<commit_after>( function _FileProviderCachingStats_s_() {

'use strict';

if( typeof module !== 'undefined' )
{

  require( '../provider/Abstract.s' );

}

if( wTools.FileProvider.CachingStats )
return;

//

var _ = wTools;
var Abstract = _.FileProvider.Abstract;
var Parent = _.FileProvider.Default;
var Self = function wFileProviderCachingStats( o )
{
  if( !( this instanceof Self ) )
  if( o instanceof Self )
  return o;
  else
  return new( _.routineJoin( Self, Self, arguments ) );
  return Self.prototype.init.apply( this,arguments );
}

//

function init( o )
{
  var self = this;

  var self = this;
  Parent.prototype.init.call( self,o );

  if( !self.originalProvider )
  self.originalProvider = _.FileProvider.Default();

  return self;
}

//

function fileStat( o )
{
  var self = this;
  var original = self.originalProvider.fileStat;

  var o = _._fileOptionsGet.apply( original,arguments );
  var pathFile = _.pathResolve( o.pathFile );

  debugger;
  var stat = original.call( self.originalProvider, o );

  if( o.sync )
  {
    self._cache[ pathFile ] = stat;
    return stat;
  }
  else
  {
    return stat.doThen( function( err, got )
    {
      if( err )
      throw err;
      self._cache[ pathFile ] = got;
      return got;
    })
  }
}

fileStat.defaults = {};
fileStat.defaults.__proto__ = Parent.prototype.fileStat.defaults;

// --
// relationship
// --

var Composes =
{
  originalProvider : null,
}

var Aggregates =
{
}

var Associates =
{
}

var Restricts =
{
  _cache : {},
}

// --
// prototype
// --

var Proto =
{

  init : init,

  fileStat : fileStat,

  //

  constructor : Self,
  Composes : Composes,
  Aggregates : Aggregates,
  Associates : Associates,
  Restricts : Restricts,

}

//

_.protoMake
({
  constructor : Self,
  parent : Parent,
  extend : Proto,
});
{'fraction_non_alphanumeric': 0.13632630714481248, 'fraction_numerical': 0.0, 'mean_word_length': 2.8585005279831046, 'pattern_counts': {'":': 0, '<': 3, '<?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': '972657', 'n_tokens_mistral': 1280, 'n_tokens_neox': 1257, 'n_words': 298}