Class: BjnInventory::Util::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/bjn_inventory/util/filter.rb,
lib/bjn_inventory/util/filter/json_aws.rb

Direct Known Subclasses

JsonAws

Defined Under Namespace

Classes: JsonAws

Instance Method Summary collapse

Constructor Details

#initialize(kwargs = {}) ⇒ Filter

Returns a new instance of Filter.



9
10
11
12
13
14
15
16
# File 'lib/bjn_inventory/util/filter.rb', line 9

def initialize(kwargs={})
    @logger = kwargs.delete(:logger) || BjnInventory::DefaultLogger.new
    unless kwargs.has_key? :filters
        raise RuntimeError, "#{self.class} requires :filters to be set"
    end
    @filters = kwargs[:filters]
    set_options(kwargs)
end

Instance Method Details

#loggerObject



22
23
24
# File 'lib/bjn_inventory/util/filter.rb', line 22

def logger()
    @logger
end

#match(entity) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/bjn_inventory/util/filter.rb', line 26

def match(entity)
    if @filters.respond_to? :call
        @filters.call entity
    else
        raise RuntimeError, "#{self.class} requires :filters to be callable"
    end
end

#select(arr) ⇒ Object



34
35
36
# File 'lib/bjn_inventory/util/filter.rb', line 34

def select(arr)
    arr.select { |entity| match entity }
end

#set_options(kwargs = {}) ⇒ Object



18
19
20
# File 'lib/bjn_inventory/util/filter.rb', line 18

def set_options(kwargs={})
    @options = kwargs
end