Exemplo n.º 1
0
 /**
  * @param Record $record
  * @param null $keyed_by
  */
 public function addRecord(Record $record, $keyed_by = null)
 {
     // register this Results object as the record's parent automatically
     $record->setParent($this);
     $this->returned_results_count++;
     if (is_callable($keyed_by)) {
         $this->results->put($keyed_by($record), $record);
     } elseif ($keyed_by) {
         $this->results->put($record->get($keyed_by), $record);
     } else {
         $this->results->push($record);
     }
 }
Exemplo n.º 2
0
 /** @test **/
 public function it_allows_array_access()
 {
     $r = new Record();
     $r->set('one', '1');
     $r->set(2, 'two');
     $r->set(3, 'three');
     $r['something'] = 'else';
     $r['to'] = 'remove';
     unset($r['to']);
     $this->assertSame('1', $r['one']);
     $this->assertFalse(isset($r['bogus']));
     $this->assertNull($r['bogus']);
     $this->assertSame('else', $r['something']);
     $this->assertNull($r['to']);
 }
Exemplo n.º 3
0
 protected function parseRecordFromLine(Session $rets, &$xml, $parameters, &$line, Results $rs)
 {
     $delim = $this->getDelimiter($rets, $xml, $parameters);
     $r = new Record();
     $field_data = (string) $line;
     // split up DATA row on delimiter found earlier
     $field_data = preg_replace("/^{$delim}/", "", $field_data);
     $field_data = preg_replace("/{$delim}\$/", "", $field_data);
     $field_data = explode($delim, $field_data);
     foreach ($rs->getHeaders() as $key => $name) {
         // assign each value to it's name retrieved in the COLUMNS earlier
         $r->set($name, $field_data[$key]);
     }
     return $r;
 }
Exemplo n.º 4
0
 /** @test **/
 public function it_gives_a_list_excluding_restricted_values()
 {
     $rs = new Results();
     $rs->setRestrictedIndicator('****');
     $r = new Record();
     $r->set('id', 'extra');
     $r->set('name', 'test');
     $rs->addRecord($r);
     $r = new Record();
     $r->set('id', '****');
     $r->set('name', 'test');
     $rs->addRecord($r);
     $r = new Record();
     $r->set('id', 'bonus');
     $r->set('name', 'test');
     $rs->addRecord($r);
     $this->assertSame(['extra', 'bonus'], $rs->lists('id'));
 }