<commit_before>
//= require "object"

/**
 * Коллекция пар ключ/значение
 *
 * Представляет собой обертку для объектов javascript-класса Object
 * 
 * @class
 * @extends Ergo.core.Object
 *  
 */
Ergo.core.Collection = Ergo.declare('Ergo.core.Collection', 'Ergo.core.Object', /** @lends Ergo.core.Collection.prototype */{
	
	defaults: {
		extensions: [Ergo.Observable]
	},
	
	initialize: function(src, options) {
		Ergo.core.Collection.superclass.initialize.call(this, options);
		this.src = src || {};
	},
	
	/**
	 * Установка значения
	 * @param {Object} i ключ
	 * @param {Object} item значение
	 */
	set: function(i, item) {
		this.src[i] = item;
	},
	
	/**
	 * Удаление значения по ключу
	 * @param {Object} i ключ
	 */
	unset: function(i) {
		delete this.src[i];
	},
	
	/**
	 * Получение значения по ключу
	 * @param {Object} i
	 */
	get: function(i) {
		return this.src[i];
	},
	
	/**
	 * Добавление нового значения
	 * @param {Object} item значение
	 * @param {Object} [i] ключ
	 * 
	 * Аналогично по работе методу set
	 */
	add: function(item, i) {
		this.src[i] = item;
//		this.events.fire('item:add', {'item': item});
	},
	
	/**
	 * Удаление значения
	 *
	 * Для удаления используется метод remove_at
	 *
	 * @param {Object} item значение
	 */
	remove: function(item) {
		this.remove_at(this.key_of(item));
		return item;
	},

	/**
	 * Удаление значения по ключу
	 * @param {Object} i ключ
	 */
	remove_at: function(i) {
		var item = this.src[i];
		delete this.src[i];
		return item;
//		this.events.fire('item:remove', {'item': item});
	},
	<commit_msg>removed methods unset and add from collection<commit_after>
//= require "object"

/**
 * Коллекция пар ключ/значение
 *
 * Представляет собой обертку для объектов javascript-класса Object
 * 
 * @class
 * @extends Ergo.core.Object
 *  
 */
Ergo.core.Collection = Ergo.declare('Ergo.core.Collection', 'Ergo.core.Object', /** @lends Ergo.core.Collection.prototype */{
	
	defaults: {
		extensions: [Ergo.Observable]
	},
	
	initialize: function(src, options) {
		Ergo.core.Collection.superclass.initialize.call(this, options);
		this.src = src || {};
	},
	
	/**
	 * Установка значения
	 * @param {Object} i ключ
	 * @param {Object} item значение
	 */
	set: function(i, item) {
		this.src[i] = item;
	},
	
	/**
	 * Удаление значения по ключу
	 * @param {Object} i ключ
	 */
	// unset: function(i) {
		// delete this.src[i];
	// },
	
	/**
	 * Получение значения по ключу
	 * @param {Object} i
	 */
	get: function(i) {
		return this.src[i];
	},
	
	/**
	 * Добавление нового значения
	 * @param {Object} item значение
	 * @param {Object} [i] ключ
	 * 
	 * Аналогично по работе методу set
	 */
	// add: function(item, i) {
		// this.src[i] = item;
// //		this.events.fire('item:add', {'item': item});
	// },
	
	/**
	 * Удаление значения
	 *
	 * Для удаления используется метод remove_at
	 *
	 * @param {Object} item значение
	 */
	remove: function(item) {
		this.remove_at(this.key_of(item));
		return item;
	},

	/**
	 * Удаление значения по ключу
	 * @param {Object} i ключ
	 */
	remove_at: function(i) {
		var item = this.src[i];
		delete this.src[i];
		return item;
//		this.events.fire('item:remove', {'item': item});
	},
	
{'fraction_non_alphanumeric': 0.1695447409733124, 'fraction_numerical': 0.0, 'mean_word_length': 3.053435114503817, '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': '7019153', 'n_tokens_mistral': 1315, 'n_tokens_neox': 1244, 'n_words': 264}