Class: ColumnFilterCleaner

Inherits:
Cleaner
  • Object
show all
Defined in:
lib/suds/cleaner/column_filter_cleaner.rb

Instance Attribute Summary collapse

Attributes inherited from Cleaner

#action, #data

Instance Method Summary collapse

Methods inherited from Cleaner

clean_array, clean_hash

Constructor Details

#initialize(exclude_columns: [], include_columns: []) ⇒ ColumnFilterCleaner

Returns a new instance of ColumnFilterCleaner.



5
6
7
8
9
10
# File 'lib/suds/cleaner/column_filter_cleaner.rb', line 5

def initialize exclude_columns:[], include_columns:[]
  @exclude_columns = [exclude_columns].flatten.map(&:to_s)
  @include_columns = [include_columns].flatten.map(&:to_s)

  raise "You must provide include_columns or exclude_columns." if @exclude_columns.empty? and @include_columns.empty?
end

Instance Attribute Details

#exclude_columnsObject

Returns the value of attribute exclude_columns.



4
5
6
# File 'lib/suds/cleaner/column_filter_cleaner.rb', line 4

def exclude_columns
  @exclude_columns
end

#include_columnsObject

Returns the value of attribute include_columns.



4
5
6
# File 'lib/suds/cleaner/column_filter_cleaner.rb', line 4

def include_columns
  @include_columns
end

Instance Method Details

#clean(data) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/suds/cleaner/column_filter_cleaner.rb', line 12

def clean data
  if not @include_columns.empty?
    exclude_columns = data.first.keys.map(&:to_s) - @include_columns
  else
    exclude_columns = @exclude_columns
  end

  data.each do |row|
    exclude_columns.each do |col|
      row.delete col
      row.delete col.to_sym
    end
  end
end