Class: Contracts::Engine::Eigenclass
- Defined in:
- lib/contracts/engine/eigenclass.rb
Overview
Special case of contracts engine for eigenclasses We don’t care about eigenclass of eigenclass at this point
Instance Attribute Summary collapse
-
#owner_class ⇒ Object
Class that owns this eigenclass.
Class Method Summary collapse
-
.lift(eigenclass, owner) ⇒ Engine::Eigenclass
Automatically enables eigenclass engine if it is not Returns its engine NOTE: Required by jruby in 1.9 mode.
Instance Method Summary collapse
-
#all_decorators ⇒ Object
Fetches just eigenclasses decorators.
-
#set_eigenclass_owner ⇒ Object
No-op for eigenclasses.
Methods inherited from Base
#add_method_decorator, applied?, apply, #decorate, #decorated_methods?, #decorated_methods_for, fetch_from, #initialize, #nearest_decorated_ancestor
Constructor Details
This class inherits a constructor from Contracts::Engine::Base
Instance Attribute Details
#owner_class ⇒ Object
Class that owns this eigenclass
7 8 9 |
# File 'lib/contracts/engine/eigenclass.rb', line 7 def owner_class @owner_class end |
Class Method Details
.lift(eigenclass, owner) ⇒ Engine::Eigenclass
Automatically enables eigenclass engine if it is not Returns its engine NOTE: Required by jruby in 1.9 mode. Otherwise inherited eigenclasses don’t have their engines
17 18 19 20 21 22 23 |
# File 'lib/contracts/engine/eigenclass.rb', line 17 def self.lift(eigenclass, owner) return Engine.fetch_from(eigenclass) if Engine.applied?(eigenclass) Target.new(eigenclass).apply(Eigenclass) Engine.fetch_from(owner).set_eigenclass_owner Engine.fetch_from(eigenclass) end |
Instance Method Details
#all_decorators ⇒ Object
Fetches just eigenclasses decorators
30 31 32 |
# File 'lib/contracts/engine/eigenclass.rb', line 30 def all_decorators pop_decorators end |
#set_eigenclass_owner ⇒ Object
No-op for eigenclasses
26 27 |
# File 'lib/contracts/engine/eigenclass.rb', line 26 def set_eigenclass_owner end |