Module: Mongoid::Callbacks

Defined in:
lib/patches/embedded_touch.rb

Instance Method Summary collapse

Instance Method Details

#cascadable_child?(kind, child, metadata) ⇒ Boolean

Returns:



73
74
75
76
77
# File 'lib/patches/embedded_touch.rb', line 73

def cascadable_child?(kind, child, )
  return false if kind == :initialize || kind == :find || kind == :touch
  return false if kind == :validate && .validate?
  child.callback_executable?(kind) ? child.in_callback_state?(kind) : false
end

#cascadable_children(kind, children = Set.new) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/patches/embedded_touch.rb', line 54

def cascadable_children(kind, children = Set.new)
  embedded_relations.each_pair do |name, |
    next unless .cascading_callbacks?
    without_autobuild do
      delayed_pulls = delayed_atomic_pulls[name]
      delayed_unsets = delayed_atomic_unsets[name]
      children.merge(delayed_pulls) if delayed_pulls
      children.merge(delayed_unsets) if delayed_unsets
      relation = send(name)
      Array.wrap(relation).each do |child|
        next if children.include?(child)
        children.add(child) if cascadable_child?(kind, child, )
        child.send(:cascadable_children, kind, children)
      end
    end
  end
  children.to_a
end