<commit_before>Reporters
=========

A reporter is an object which reads data from the timer,
panellists and topics and reports it to another entity.

Currently there is only the CommandLineReporter, which 
displays a facsimile of the projection window in the 
command line using puts.

Possible others:

* A game log
* Web service calls

Attributes (in the `reporters:` attribute of config/config.yml):

* **class:** The class of your reporter
* **active:** true if you want to report using this reporter class

For specific classes:

* CommandLineReporter
  * **width:** total width in characters of the output
  * **player_width:** width in characters of each panellist

Contract for a reporter
-----------------------

* Ruby file in lib/reporters/
* A class name ending in Reporter
* An 'initialize' method with 2 arguments
  * **window:** The Window object the data will be pulled from
  * **config:** (hash) Any additional configuration, passed
                in from config/config.yml
* A 'report' method which will be called when data changes.

Adding a reporter
-----------------

Once we have a Reporter class, add it to the `reporters:`
attribute in config/config.yml <commit_msg>added important note to reporter doc<commit_after>Reporters
=========

A reporter is an object which reads data from the timer,
panellists and topics and reports it to another entity.

Currently there is only the CommandLineReporter, which 
displays a facsimile of the projection window in the 
command line using puts.

Possible others:

* A game log
* Web service calls

Attributes (in the `reporters:` attribute of config/config.yml):

* **class:** The class of your reporter
* **active:** true if you want to report using this reporter class

For specific classes:

* CommandLineReporter
  * **width:** total width in characters of the output
  * **player_width:** width in characters of each panellist

Contract for a reporter
-----------------------

* Ruby file in lib/reporters/
* A class name ending in Reporter
* An 'initialize' method with 2 arguments
  * **window:** The Window object the data will be pulled from
  * **config:** (hash) Any additional configuration, passed
                in from config/config.yml
* A 'report' method which will be called when data changes.
  * Report may read data from ruby-jam, but not change any.

Adding a reporter
-----------------

Once we have a Reporter class, add it to the `reporters:`
attribute in config/config.yml 
{'fraction_non_alphanumeric': 0.10458046209971625, 'fraction_numerical': 0.0008107012565869477, 'mean_word_length': 3.5118829981718465, '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': '5734187', 'n_tokens_mistral': 652, 'n_tokens_neox': 619, 'n_words': 331}