Class: Kiba::Extend::Transforms::Report::Fields
- Inherits:
-
Object
- Object
- Kiba::Extend::Transforms::Report::Fields
- Defined in:
- lib/kiba/extend/transforms/report/fields.rb
Overview
Combines a number of other transforms into a one-step way of outputting a report of specified fields. Optionally, rows not having any information in a specified set of fields will be omitted from the report.
Instance Method Summary collapse
-
#initialize(fields:, filter_fields: nil, filter_mode: :any) ⇒ Fields
constructor
A new instance of Fields.
-
#process(row) ⇒ Object
Constructor Details
#initialize(fields:, filter_fields: nil, filter_mode: :any) ⇒ Fields
Returns a new instance of Fields.
101 102 103 104 105 106 107 108 109 110 |
# File 'lib/kiba/extend/transforms/report/fields.rb', line 101 def initialize(fields:, filter_fields: nil, filter_mode: :any) @deleter = Delete::FieldsExcept.new(fields: fields) return unless filter_fields filter_xform = case filter_mode when :all then FilterRows::AllFieldsPopulated when :any then FilterRows::AnyFieldsPopulated end @filter = filter_xform.new(action: :keep, fields: filter_fields) end |
Instance Method Details
#process(row) ⇒ Object
113 114 115 116 117 118 |
# File 'lib/kiba/extend/transforms/report/fields.rb', line 113 def process(row) deleter.process(row) return row unless instance_variable_defined?(:@filter) filter.process(row) end |