Loading src/Plugin/DatasetTransform/Remove.php 0 → 100644 +46 −0 Original line number Diff line number Diff line <?php declare(strict_types=1); namespace Drupal\data_pipelines\Plugin\DatasetTransform; use Drupal\data_pipelines\DatasetData; use Drupal\data_pipelines\Transform\TransformPluginBase; /** * Defines a transform that unset records. * * @DatasetTransform( * id="remove", * fields=FALSE, * records=TRUE * ) */ class Remove extends TransformPluginBase { /** * {@inheritdoc} */ public function defaultConfiguration() { return parent::defaultConfiguration() + [ 'fields' => [], ]; } /** * {@inheritdoc} */ protected function doTransformRecord(DatasetData $record): DatasetData { $record = parent::doTransformRecord($record); if (!$this->configuration['fields']) { return $record; } foreach ($this->configuration['fields'] as $field_name) { if ($record->offsetExists($field_name)) { unset($record[$field_name]); } } return $record; } } tests/modules/data_pipelines_test/data_pipelines_test.data_pipelines.yml +4 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,10 @@ test_pipeline_1: - firstname as: full_name separator: ', ' - plugin: remove fields: - lastname - firstname validations: record: ItemCount: Loading tests/src/Functional/DatasetUiTest.php +0 −4 Original line number Diff line number Diff line Loading @@ -141,14 +141,10 @@ class DatasetUiTest extends BrowserTestBase { $this->assertEquals([ new DatasetData([ 'should_we' => TRUE, 'firstname' => 'joe', 'lastname' => 'bloggs', 'full_name' => 'bloggs, joe', ]), new DatasetData([ 'should_we' => FALSE, 'firstname' => 'betty', 'lastname' => 'bloggs', 'full_name' => 'bloggs, betty', ]), ], $data); Loading tests/src/Kernel/Transform/TransformTest.php +1 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ use Psr\Log\LoggerInterface; * @covers \Drupal\data_pipelines\DatasetPipelineBase * @covers \Drupal\data_pipelines\Plugin\DatasetTransform\Concat * @covers \Drupal\data_pipelines\Plugin\DatasetTransform\MapValues * @covers \Drupal\data_pipelines\Plugin\DatasetTransform\Unset * @covers \Drupal\data_pipelines\Entity\Dataset * @covers \Drupal\data_pipelines\Transform\TransformPluginBase * @covers \Drupal\data_pipelines\Transform\DatasetTransformPluginManager Loading Loading @@ -52,14 +53,10 @@ class TransformTest extends DatasetKernelTestBase implements LoggerInterface { $this->assertEquals([ new DatasetData([ 'should_we' => TRUE, 'firstname' => 'joe', 'lastname' => 'bloggs', 'full_name' => 'bloggs, joe', ]), new DatasetData([ 'should_we' => FALSE, 'firstname' => 'betty', 'lastname' => 'bloggs', 'full_name' => 'bloggs, betty', ]), ], $data); Loading Loading
src/Plugin/DatasetTransform/Remove.php 0 → 100644 +46 −0 Original line number Diff line number Diff line <?php declare(strict_types=1); namespace Drupal\data_pipelines\Plugin\DatasetTransform; use Drupal\data_pipelines\DatasetData; use Drupal\data_pipelines\Transform\TransformPluginBase; /** * Defines a transform that unset records. * * @DatasetTransform( * id="remove", * fields=FALSE, * records=TRUE * ) */ class Remove extends TransformPluginBase { /** * {@inheritdoc} */ public function defaultConfiguration() { return parent::defaultConfiguration() + [ 'fields' => [], ]; } /** * {@inheritdoc} */ protected function doTransformRecord(DatasetData $record): DatasetData { $record = parent::doTransformRecord($record); if (!$this->configuration['fields']) { return $record; } foreach ($this->configuration['fields'] as $field_name) { if ($record->offsetExists($field_name)) { unset($record[$field_name]); } } return $record; } }
tests/modules/data_pipelines_test/data_pipelines_test.data_pipelines.yml +4 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,10 @@ test_pipeline_1: - firstname as: full_name separator: ', ' - plugin: remove fields: - lastname - firstname validations: record: ItemCount: Loading
tests/src/Functional/DatasetUiTest.php +0 −4 Original line number Diff line number Diff line Loading @@ -141,14 +141,10 @@ class DatasetUiTest extends BrowserTestBase { $this->assertEquals([ new DatasetData([ 'should_we' => TRUE, 'firstname' => 'joe', 'lastname' => 'bloggs', 'full_name' => 'bloggs, joe', ]), new DatasetData([ 'should_we' => FALSE, 'firstname' => 'betty', 'lastname' => 'bloggs', 'full_name' => 'bloggs, betty', ]), ], $data); Loading
tests/src/Kernel/Transform/TransformTest.php +1 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ use Psr\Log\LoggerInterface; * @covers \Drupal\data_pipelines\DatasetPipelineBase * @covers \Drupal\data_pipelines\Plugin\DatasetTransform\Concat * @covers \Drupal\data_pipelines\Plugin\DatasetTransform\MapValues * @covers \Drupal\data_pipelines\Plugin\DatasetTransform\Unset * @covers \Drupal\data_pipelines\Entity\Dataset * @covers \Drupal\data_pipelines\Transform\TransformPluginBase * @covers \Drupal\data_pipelines\Transform\DatasetTransformPluginManager Loading Loading @@ -52,14 +53,10 @@ class TransformTest extends DatasetKernelTestBase implements LoggerInterface { $this->assertEquals([ new DatasetData([ 'should_we' => TRUE, 'firstname' => 'joe', 'lastname' => 'bloggs', 'full_name' => 'bloggs, joe', ]), new DatasetData([ 'should_we' => FALSE, 'firstname' => 'betty', 'lastname' => 'bloggs', 'full_name' => 'bloggs, betty', ]), ], $data); Loading