Class: BjnInventory::Util::Filter
- Inherits:
-
Object
- Object
- BjnInventory::Util::Filter
- Defined in:
- lib/bjn_inventory/util/filter.rb,
lib/bjn_inventory/util/filter/json_aws.rb
Direct Known Subclasses
Defined Under Namespace
Classes: JsonAws
Instance Method Summary collapse
-
#initialize(kwargs = {}) ⇒ Filter
constructor
A new instance of Filter.
- #logger ⇒ Object
- #match(entity) ⇒ Object
- #select(arr) ⇒ Object
- #set_options(kwargs = {}) ⇒ Object
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] (kwargs) end |
Instance Method Details
#logger ⇒ Object
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 (kwargs={}) @options = kwargs end |