module Lite::Report::Helpers::Filters

Private Instance Methods

except?(delete: false) click to toggle source
# File lib/lite/report/helpers/filters.rb, line 10
def except?(delete: false)
  return @data_options.delete(:except) if delete

  @data_options[:except]
end
filter!(row) click to toggle source
# File lib/lite/report/helpers/filters.rb, line 20
def filter!(row)
  case row.class.name
  when 'Array' then filter_array!(row)
  when 'Hash' then filter_hash!(row)
  end
end
filter?(delete: false) click to toggle source
# File lib/lite/report/helpers/filters.rb, line 16
def filter?(delete: false)
  only?(delete: delete) || except?(delete: delete)
end
filter_array!(row) click to toggle source
# File lib/lite/report/helpers/filters.rb, line 27
def filter_array!(row)
  if only?
    row.keep_if.with_index { |_, i| @data_options[:only].include?(i) }
  elsif except?
    row.delete_if.with_index { |_, i| @data_options[:except].include?(i) }
  else
    row
  end
end
filter_hash!(row) click to toggle source
# File lib/lite/report/helpers/filters.rb, line 37
def filter_hash!(row)
  if only?
    row.keep_if { |key, _| @data_options[:only].include?(key) }
  elsif except?
    row.keep_if { |key, _| @data_options[:except].include?(key) }
  else
    row
  end
end
only?(delete: false) click to toggle source
# File lib/lite/report/helpers/filters.rb, line 47
def only?(delete: false)
  return @data_options.delete(:only) if delete

  @data_options[:only]
end