Exemplo n.º 1
0
 /**
  * @param callable $callable
  * @param string[] $paramMap
  * @return \Closure
  */
 public static function fnBindFieldsToParams($callable, $paramMap)
 {
     return function ($record) use($callable, $paramMap) {
         $params = Sequence::make($paramMap)->map(FnGen::fnPluckFrom($record))->to_a();
         return call_user_func_array($callable, $params);
     };
 }
Exemplo n.º 2
0
 public function testFnPluckFrom()
 {
     $from = range(1, 10);
     $fn = FnGen::fnPluckFrom($from);
     foreach ($from as $key => $value) {
         $this->assertEquals($value, $fn($key));
     }
     $from = array('apple' => 'A', 'banana' => 'B', 'orange' => 'O', 'pineapple' => 'P');
     $fn = FnGen::fnPluckFrom($from);
     foreach ($from as $key => $value) {
         $this->assertEquals($value, $fn($key));
     }
     $this->assertNull($fn('pear'));
     $fn = FnGen::fnPluckFrom($from, 'fruit');
     $this->assertEquals('fruit', $fn('pear'));
 }