Myna 1.0 Alpha 13 Release Change Log

(per Jeff Bader) Added support for Myna.DataSet,
an extension of Array for
managing arrays of objects, optionally with a loader function. DataSets
bring the data handling of query result sets , without requiring a
query. Here are
some examples of DataSet in action:

//Create Dataaet from a regular array:
var DS = new Myna.DataSet([{dude:"bob"},{dude:"bob2"}])
//Create DataSet from a loader:
DS = new Myna.DataSet({
columns:"label,value",
loader:function(options){
return Array.dim(options.maxRows).map(function(d,index){
return {
value:index+options.startRow,
label:"Label #" +(index+options.startRow)
}
})
}
})
DS.load({startRow:1,maxRows:10}); //load the first 10 rows
DS.load({startRow:11,maxRows:10}); //replace with the second 10 rows
//Create DataSet from a Query:
var DS = new Myna.Query({
ds:"myna_log",
sql:"Select * from myna_log_general",
maxRows:10
}).data
//Query.data is now a DataSet
//DataSets have several functions that make them easier to work with:
//returns an array of all values in the "request_elapsed" column
DS.valueArray("request_elapsed");
//returns the row that contains The highest request elpased time
DS.maxByCol("request_elapsed");
//treat the DataSet as a hashtable via any column
var bob = DS.findFirst("employee_id",/123658332/)

(per Jeff Bader) Added PUT and DELETE methods to HttpConnection. This can be
helpful for calling RESTful services

(per Jeff Bader) Added Global server scope via $server.set(key,value) and
$server.get(key). Values set in the server scope are persisted between
requests
until the server (JVM) is restarted

(per Jeff Bader) Added findBeans
to DataManager. This works like manager.find()
except
it returns a DataSet of bean objects instead of just the ids

Modified Myna.DataManager.ManagerBase
to have setters and
getters for
each column that call the the appropriate set_<column> and
get_<column> functions. This means you can use the aggregate
functions: