<commit_before>//
//  EKEnumerable.h
//  EnumeratorKit
//
//  Created by <NAME> on 13/05/13.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <AvailabilityMacros.h>


#pragma mark EKEnumerable API

@protocol EKEnumerable <NSObject>

@required<commit_msg>[appledoc] Document EKEnumerable protocol and each:<commit_after>//
//  EKEnumerable.h
//  EnumeratorKit
//
//  Created by <NAME> on 13/05/13.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <AvailabilityMacros.h>


#pragma mark EKEnumerable API

/**
 The `EKEnumerable` protocol and mixin provide a number of methods for
 traversing, searching and sorting collection classes. To include the
 `EKEnumerable` mixin, collection classes need to:

 1. Adopt the `EKEnumerable` protocol
 2. Implement `+load` and call `[self includeEKEnumerable]`
 3. Implement `-each:` to traverse the collection, applying the block
    to each element.
 */
@protocol EKEnumerable <NSObject>

@required

/**
 Collection classes must implement this method to traverse each element
 in the collection, applying the block to each element.

 Example:

    NSArray *greetings = @[@"Hello", @"Hi"];
    [numbers each:^(id greeting){
        NSLog(@"%@, world", greeting);
    }];

 @param block A block that accepts a single object as a parameter.

 @return Your implementation of this method should return `self`.
 */
{'fraction_non_alphanumeric': 0.1149584487534626, 'fraction_numerical': 0.01592797783933518, 'mean_word_length': 3.848993288590604, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, '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': '343013', 'n_tokens_mistral': 458, 'n_tokens_neox': 422, 'n_words': 160}