Method: Mollusk::Filterable#filter

Defined in:
lib/mollusk/filterable.rb

#filter(name, callback) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'lib/mollusk/filterable.rb', line 26

def filter(name, callback)
  _mollusk_collection_module.send :define_method, name, &callback
  define_singleton_method(name) do
    collection = self == _mollusk_base_class ? all : self
    results = collection.instance_exec(&callback)
    mod = _mollusk_collection_module
    (class << results; self end).send :include, mod
    results
  end
end