Module: Foobara::Entity::Concerns::Callbacks::ClassMethods

Defined in:
foobara-0.0.110/projects/entity/src/concerns/callbacks.rb

Instance Method Summary collapse

Instance Method Details

#class_callback_registryObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'foobara-0.0.110/projects/entity/src/concerns/callbacks.rb', line 40

def class_callback_registry
  @class_callback_registry ||= begin
    actions = %i[
      initialized
      initialized_built
      initialized_thunk
      initialized_loaded
      initialized_created
      dirtied
      undirtied
      attribute_changed
      reverted
      loaded
      persisted
      hard_deleted
      unhard_deleted
      invalidated
      uninvalidated
    ]

    if self == Entity
      Callback::Registry::MultipleAction.new(actions).tap do |registry|
        registry.allowed_types = [:after]
      end
    else
      Callback::Registry::ChainedMultipleAction.new(superclass.class_callback_registry)
    end
  end
end