Module: DeepCover::Node::Mixin::Filters::ClassMethods

Defined in:
lib/deep_cover/node/mixin/filters.rb

Instance Method Summary collapse

Instance Method Details

#create_filter(name, &block) ⇒ Object



11
12
13
14
# File 'lib/deep_cover/node/mixin/filters.rb', line 11

def create_filter(name, &block)
  Filters.define_method(filter_to_method_name(name), &block)
  OPTIONALLY_COVERED << name
end

#filter_to_method_name(kind) ⇒ Object



7
8
9
# File 'lib/deep_cover/node/mixin/filters.rb', line 7

def filter_to_method_name(kind)
  :"is_#{kind}?"
end

#unique_filterObject



16
17
18
19
20
21
# File 'lib/deep_cover/node/mixin/filters.rb', line 16

def unique_filter
  (1..Float::INFINITY).each do |i|
    name = :"custom_filter_#{i}"
    return name unless Filters.method_defined?(filter_to_method_name(name))
  end
end