Module: Praxis::Finalizable
- Included in:
- Blueprint
- Defined in:
- lib/praxis-blueprints/finalizable.rb
Class Method Summary collapse
Instance Method Summary collapse
- #_finalize! ⇒ Object
- #finalizable ⇒ Object
- #finalize! ⇒ Object
- #finalized? ⇒ Boolean
- #inherited(base) ⇒ Object
Class Method Details
.extended(klass) ⇒ Object
4 5 6 7 8 |
# File 'lib/praxis-blueprints/finalizable.rb', line 4 def self.extended(klass) klass.module_eval do @finalizable = Set.new end end |
Instance Method Details
#_finalize! ⇒ Object
24 25 26 |
# File 'lib/praxis-blueprints/finalizable.rb', line 24 def _finalize! @finalized = true end |
#finalizable ⇒ Object
16 17 18 |
# File 'lib/praxis-blueprints/finalizable.rb', line 16 def finalizable @finalizable end |
#finalize! ⇒ Object
28 29 30 31 32 |
# File 'lib/praxis-blueprints/finalizable.rb', line 28 def finalize! finalizable.reject(&:finalized?).each(&:_finalize!) finalize! unless finalizable.all?(&:finalized?) end |
#finalized? ⇒ Boolean
20 21 22 |
# File 'lib/praxis-blueprints/finalizable.rb', line 20 def finalized? @finalized end |
#inherited(base) ⇒ Object
10 11 12 13 14 |
# File 'lib/praxis-blueprints/finalizable.rb', line 10 def inherited(base) @finalizable << base base.instance_variable_set(:@finalizable, @finalizable) base.instance_variable_set(:@finalized, false) end |