Rand Stats

Hydrate

github:vendethiel

Hydrate

Hydrate is a small module to "hydrate" (ORM speak) your object hierarchy, from a bunch of hashes.

Example:

use Hydrate;

my class Mes {
  has Int $.height;
  has Int $.width;
}

my class Cont {
  has Str $.name is required;
  has Mes @.mesures;
  has %.data; # optional 
}

say hydrate(Cont, {
  name => "Some mesures",
  mesures => [
    {height => 50,  width => 50},
    {height => 150, width => 75},
    {height => 200, width => 200},
  ]
})

Result:

Cont.new(
  name => "Some mesures",
  mesures => Array[Mes].new(
    Mes.new(height => 50, width => 50),
    Mes.new(height => 150, width => 75),
    Mes.new(height => 200, width => 200)
  ),
  data => {},
)