1 dump('entering util/functional.js\n');
3 if (typeof util == 'undefined') var util = {};
6 util.functional.EXPORT_OK = [
7 'filter_list', 'filter_object', 'find_list', 'find_object', 'map_list', 'map_flat_list',
8 'map_object', 'map_object_to_list', 'convert_object_list_to_hash', 'find_id_object_in_list',
9 'find_attr_object_in_list'
11 util.functional.EXPORT_TAGS = { ':all' : util.functional.EXPORT_OK };
13 util.functional.filter_list = function(list,f) {
17 if (t) new_list.push( list[i] );
22 util.functional.filter_object = function(obj,f) {
25 var t = f( i, obj[i] );
26 if (t) new_obj[i] = obj[i];
31 util.functional.find_list = function(list,f) {
34 if (t) return list[i];
39 util.functional.find_object = function(obj,f) {
41 var t = f( i, obj[i] );
47 util.functional.map_list = function(list,f) {
50 new_list.push( f( list[i] ) );
55 util.functional.map_flat_list = function(list,f) {
58 new_list = new_list.concat( f( list[i] ) );
63 util.functional.map_object = function(obj,f) {
66 new_obj[ f( i, obj[i] )[0] ] = f( i, obj[i] )[1];
71 util.functional.map_object_to_list = function(obj,f) {
74 new_list.push( f( obj, i ) );
79 util.functional.convert_object_list_to_hash = function(list) {
80 var my_hash = new Object();
82 for (var i = 0; i < list.length; i++) {
83 my_hash[ list[i].id() ] = list[i];
89 util.functional.find_id_object_in_list = function(list,id) {
91 for (var i = 0; i < list.length; i++ ) {
93 if ( list[i].id() == id ) {
104 util.functional.find_attr_object_in_list = function(list,attr,value) {
106 for (var i = 0; i < list.length; i++ ) {
108 var command = 'list[' + i + '].'+attr+'() == ' + value;
109 if ( eval(command) ) {
120 dump('exiting util/functional.js\n');