Helma Logo
main list history
previous version  overview  next version

Version 8 by hannes on 30. April 2009, 11:42

<style>h3+p,Helma-NG comes with a number of modules ranging in functionality from enhancements of the basic language environment to a full featured web application framework. h3+p+p,The content and structure of the module tree should not be considered stable or complete at this point. h3+p+p+p { margin-left: 1em } h4 { margin-left: 1em } h4+p, h4+p+p, h4+p+p+p { margin-left: 2em } h5 { margin-left: 2em } h5+p, h5+p+p, h5+p+p+p { margin-left: 3em } </style>This page tries to give an overview of what is curently available.

Currently Helma-NG ships with some modulesThis intent of this page is to document the actual status of the Helma NG module library. See the *Modules Discussion* page for discussing bugs, transfered from helma 1features, new additions, etc.

Our goal is to open a discussion,=== about which modules and function should ship with helma-ng, and how they should be structured in directories and modules.binary
=== hash
=== hashp
=== helmaglobal
=== io
=== core/array
=== core/date
=== core/JSON
=== core/json2
=== core/number
=== core/object
=== core/string
=== helma/buffer
=== helma/file
=== helma/filestore
=== helma/functional
=== helma/googlestore
=== helma/helma1
=== helma/httpclient
=== helma/httpserver
=== helma/logging
=== helma/markdown
=== helma/profiler
=== helma/shell
=== helma/skin
=== helma/skin/filters
=== helma/skin/macros
=== helma/system
=== helma/unittest
=== helma/util
=== helma/webapp
=== helma/webapp/continuation
=== helma/webapp/env
=== helma/webapp/request
=== helma/webapp/response
=== helma/webapp/util

=== core

Core could be renamed to "lang" or "javascript" because all modules here are extending original Javascript objects. Mozilla docs refers to these objects as "Core" (Core JavaScript 1.5 Reference:Global Objects:Array:indexOf at http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:indexOf) in their reference. What do you think? Should we stay with "Core"? Or should we change that? (matt) +/-

==== array.js

<a href="http://www.prototypejs.org">prototype.js</a> provides a bunch of neat functions: <a href="http://www.prototypejs.org/api/enumerable">Enumerable Docs</a> and <a href="http://www.prototypejs.org/api/array">Array Docs</a>. prototype.js could be offered as a replacement or addition to the current array.js -> see <a href="https://dev.helma.org/trac/helma/browser/sandbox/aida/modules/javascript/prototype.js">/sandbox/aida/modules/javascript/prototype.js</a>

===== Array.prototype.contains

works, but could be replaced by prototype.js>Enumerable>include ; see: http://www.prototypejs.org/api/enumerable/include, for compaitibility reasons we could add a conatains alias

===== Array.union

Has a bug when the source objects look similar, but are not

var obj1 = {test:"one"};
var obj2 = {test:"one"};
(obj1 != obj2) === true;
var arr1 = [obj1];
var arr2 = [obj2];
Array.union(arr1, arr2); // => [{test:"one"}]
                          //    instead of [{test:"one"}, {test:"one"}]
 
Array.union could be replaced by using the prototyp.js .uniq() function. It's not very fast, but it works like expected.

// replacement using prototype.js
var result = arr1.concat(ar2).uniq();
// or:
Array.union = function() {
  var r = [];
      $A(arguments).forEach(function(arr) { r = r.concat(arr).uniq() });
      return r;
}

===== Array.intersection

not tested yet

// replacement using prototype.js
var result = arr1.intersect(ar2).uniq();

==== date.js
==== json2.js
==== JSON.js
==== number.js
==== object.js
==== string.js

=== helma

==== buffer.js
==== file.js
==== filestore.js
==== filters.js
==== functional.js
==== helma1.js
==== httpclient.js
==== httpserver.js
==== logging.js
==== profiler.js
==== shell.js
==== skin.js
==== system.js
==== unittest.js
==== webapp.js

     removed
     added