module Praxis::Finalizable
Public Class Methods
Source
# File lib/praxis/finalizable.rb, line 5 def self.extended(klass) klass.module_eval do @finalizable = Set.new end end
Public Instance Methods
Source
# File lib/praxis/finalizable.rb, line 29 def finalize! finalizable.reject(&:finalized?).each(&:_finalize!) finalize! unless finalizable.all?(&:finalized?) end
Source
# File lib/praxis/finalizable.rb, line 11 def inherited(base) @finalizable << base base.instance_variable_set(:@finalizable, @finalizable) base.instance_variable_set(:@finalized, false) end