Class: TypedEAV::Engine
- Inherits:
-
Rails::Engine
- Object
- Rails::Engine
- TypedEAV::Engine
- Defined in:
- lib/typed_eav/engine.rb
Class Method Summary collapse
-
.register_attachment_associations! ⇒ Object
Conditionally register the :attachment has_one_attached association on TypedEAV::Value.
Class Method Details
.register_attachment_associations! ⇒ Object
Conditionally register the :attachment has_one_attached association
on TypedEAV::Value. Idempotent — safe to call multiple times. The
idempotency guard (@attachment_registered) prevents double-
registration when specs invoke the seam in addition to the engine
boot path. Without the guard, AR's has_one_attached macro would
redefine the association methods (technically harmless but
generates RuntimeError noise on duplicate declaration in newer AS
versions).
Returns truthy on first successful registration, falsy when AS is unloaded or the association is already registered. The return is not part of the public contract — specs that care about the registration outcome inspect TypedEAV::Value.reflect_on_attachment directly.
129 130 131 132 133 134 135 |
# File 'lib/typed_eav/engine.rb', line 129 def self. return false unless defined?(::ActiveStorage::Blob) return false if @attachment_registered TypedEAV::Value.has_one_attached :attachment @attachment_registered = true end |