Module: ArrayCollection::ArrayComponents::Filtering

Included in:
CollectionArray
Defined in:
lib/array_collection/array_components/filtering.rb

Overview

rubocop:disable Style/Documentation

Instance Method Summary collapse

Instance Method Details

#filter(array, &block) ⇒ Object



6
7
8
# File 'lib/array_collection/array_components/filtering.rb', line 6

def filter(array, &block)
  array.select(&block)
end

#where(array, *args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/array_collection/array_components/filtering.rb', line 10

def where(array, *args)
  if args.size == 2
    key, value = args
    array.select { |item| item[key] == value }
  elsif args.size == 3
    key, operator, value = args
    array.select { |item| ArrayCollection::CollectionFilter.apply_operator(operator, item[key], value) }
  else
    raise ArgumentError, "Invalid number of arguments"
  end
end

#where_not_nil(array) ⇒ Object



22
23
24
# File 'lib/array_collection/array_components/filtering.rb', line 22

def where_not_nil(array)
  array.compact
end