class Mongocore::Filters

Attributes

after[RW]

Accessors

before[RW]

Accessors

klass[RW]

Accessors

validate[RW]

Accessors

Public Class Methods

new(klass) click to toggle source

Init

# File lib/mongocore/filters.rb, line 12
def initialize(klass)
  # Save model class
  @klass = klass

  # The before filters
  @before = Hash.new{|h, k| h[k] = []}

  # Add timestamp filters if enabled
  @before[:save] << :timestamps if Mongocore.timestamps

  # The after filters
  @after = Hash.new{|h, k| h[k] = []}

  # The validators
  @validate = []
end

Public Instance Methods

call(k, m) click to toggle source

Execute a proc or a method

# File lib/mongocore/filters.rb, line 40
def call(k, m)
  k.is_a?(Proc) ? m.instance_eval(&k) : m.send(k)
end
run(m, f, key = nil) click to toggle source

Available filters are :save, :delete

# File lib/mongocore/filters.rb, line 35
def run(m, f, key = nil)
  send(f)[key].each{|k| call(k, m)}
end
valid?(m) click to toggle source

Valid?

# File lib/mongocore/filters.rb, line 30
def valid?(m)
  @validate.each{|k| call(k, m)}; m.errors.empty?
end