<commit_before>//
//  MBModule.h
//  Mockingbird Toolbox
//
//  Created by <NAME> on 7/24/14.
//  Copyright (c) 2014 Gilt Groupe. All rights reserved.
//

#import "MBSingleton.h"
#import "MBModuleLog.h"

/******************************************************************************/
#pragma mark -
#pragma mark MBModule class
/******************************************************************************/

/*!
 Modules are the mechanism by which functionality is added to Mockingbird.
 
 Related sets of code are exposed as modules, each of which is represented
 by an `MBModule` singleton instance.
 
 Each module has an associated logger, which can be used to report
 module-specific information to the console.
 */
@protocol MBModule <MBInstanceVendor>

/*!
 Returns the `MBModuleLog` associated with the receiving module.
 
 @return    The module log.
 */
+ (MBModuleLog*) log;

@optional

/*!
 This optional method is implemented by modules that participate in the
 environment loading process. When the module is activated, its associated 
 environment loaders will be used to populate the current environment.
 
 @return    The environment loader classes used by the module. `nil` is
            an acceptable return value to indicate that the module
            has no associated environment loaders.
 */
+ (NSArray*) environmentLoaderClasses;

@end

/******************************************************************************/
#pragma mark -
#pragma mark MBModuleBase class
/******************************************************************************/

/*!
 Modules are the mechanism by which functionality is added to Mockingbird.

 Related sets of code are exposed as modules, each of which is represented
 by an `MBModule` singleton instance.

 Each module has an associated logger, which can be used to report
 module-specific information to the console.
 */
@interface MBModuleBase : NSObject <MBModule>

/*!
 Returns the `MBModuleLog` associated with the receiver.

 The log can be used to record notable runtime occurrances to the console.
 */
@property(nonatomic, readonly) MBModuleLog* log;

@end
<commit_msg>add hook to allow modules to specify an environment file<commit_after>//
//  MBModule.h
//  Mockingbird Toolbox
//
//  Created by <NAME> on 7/24/14.
//  Copyright (c) 2014 <NAME>. All rights reserved.
//

#import "MBSingleton.h"
#import "MBModuleLog.h"

/******************************************************************************/
#pragma mark -
#pragma mark MBModule class
/******************************************************************************/

/*!
 Modules are the mechanism by which functionality is added to Mockingbird.
 
 Related sets of code are exposed as modules, each of which is represented
 by an `MBModule` singleton instance.
 
 Each module has an associated logger, which can be used to report
 module-specific information to the console.
 */
@protocol MBModule <MBInstanceVendor>

/*!
 Returns the `MBModuleLog` associated with the receiving module.
 
 @return    The module log.
 */
+ (MBModuleLog*) log;

@optional

/*!
 This optional method is implemented by modules that participate in the
 environment loading process. When the module is activated, its associated 
 environment loaders will be used to populate the current environment.
 
 @return    The environment loader classes used by the module. `nil` is
            an acceptable return value to indicate that the module
            has no associated environment loaders.
 */
+ (NSArray*) environmentLoaderClasses;

/*!
 This optional method is implemented by modules that need a specific
 environment file included whenever a new environment is loaded. If the
 method is not implemented or if it returns `nil`, no attempt will
 be made to load an environment file for the module.
 
 @return    The name of the environment file to load. Note that this is
            a filename and not a full pathname.
 */
+ (NSString*) moduleEnvironmentFilename;

@end

/******************************************************************************/
#pragma mark -
#pragma mark MBModuleBase class
/******************************************************************************/

/*!
 Modules are the mechanism by which functionality is added to Mockingbird.

 Related sets of code are exposed as modules, each of which is represented
 by an `MBModule` singleton instance.

 Each module has an associated logger, which can be used to report
 module-specific information to the console.
 */
@interface MBModuleBase : NSObject <MBModule>

/*!
 Returns the `MBModuleLog` associated with the receiver.

 The log can be used to record notable runtime occurrances to the console.
 */
@property(nonatomic, readonly) MBModuleLog* log;

@end

{'fraction_non_alphanumeric': 0.1917000210659364, 'fraction_numerical': 0.003791868548556983, 'mean_word_length': 4.299107142857143, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, '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': '622113', 'n_tokens_mistral': 1131, 'n_tokens_neox': 1059, 'n_words': 536}