# encoding: ascii
# api: powershell
# title: h20 -Hashtables 2 object
# description: hashtable to object function.
# version: 0.1
# type: function
# author: karl prosser
# license: CC0
# x-poshcode-id: 2325
# x-derived-from-id: 2335
# x-archived: 2010-10-30T04:58:41
#
# used to be able to make custom objects with math inside the pipeline
#
#hashtable to object function.
#used to be able to make custom objects with math inside the pipeline
#e.g. 1..10 | h20 { @{karl = $_;dude = $_+1} }
#gps | h20 { @{name = $_.processname; mem = $_.workingset / 1MB} }
function h20([scriptblock]$sb )
{
begin {}
process{ if ($sb -ne $null)
{
$ht = &$sb;
if ($ht -is [hashtable])
{
New-Object PSObject -Property $ht}
}
if ($ht -is [object[]])
{
$ht | where { $_ -is [hashtable]} | % { New-Object PSObject -Property $_ }
}
}
end{}
}