module Praxis::Finalizable
Public Class Methods
extended(klass)
click to toggle source
# File lib/praxis-blueprints/finalizable.rb, line 4 def self.extended(klass) klass.module_eval do @finalizable = Set.new end end
Public Instance Methods
_finalize!()
click to toggle source
# File lib/praxis-blueprints/finalizable.rb, line 24 def _finalize! @finalized = true end
finalizable()
click to toggle source
# File lib/praxis-blueprints/finalizable.rb, line 16 def finalizable @finalizable end
finalize!()
click to toggle source
# File lib/praxis-blueprints/finalizable.rb, line 28 def finalize! finalizable.reject(&:finalized?).each(&:_finalize!) finalize! unless finalizable.all?(&:finalized?) end
finalized?()
click to toggle source
# File lib/praxis-blueprints/finalizable.rb, line 20 def finalized? @finalized end
inherited(base)
click to toggle source
# 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