class SmartCore::Initializer::Plugins::Abstract

@api private @since 0.1.0

Public Class Methods

inherited(child_klass) click to toggle source

@param child_klass [Class] @return [void]

@api private @since 0.1.0

Calls superclass method
# File lib/smart_core/initializer/plugins/abstract.rb, line 12
def inherited(child_klass)
  child_klass.instance_variable_set(:@__loaded__, false)
  child_klass.instance_variable_set(:@__lock__, Mutex.new)
  super
end
load!() click to toggle source

@return [void]

@api private @since 0.1.0

# File lib/smart_core/initializer/plugins/abstract.rb, line 22
def load!
  __thread_safe__ do
    unless @__loaded__
      @__loaded__ = true
      install!
    end
  end
end
loaded?() click to toggle source

@return [Boolean]

@api private @since 0.1.0

# File lib/smart_core/initializer/plugins/abstract.rb, line 35
def loaded?
  __thread_safe__ { @__loaded__ }
end

Private Class Methods

__thread_safe__(&block) click to toggle source

@return [Any]

@api private @since 0.1.0

# File lib/smart_core/initializer/plugins/abstract.rb, line 51
def __thread_safe__(&block)
  @__lock__.synchronize(&block)
end
install!() click to toggle source

@return [void]

@api private @since 0.1.0

# File lib/smart_core/initializer/plugins/abstract.rb, line 45
def install!; end