class SmartCore::Initializer::Settings::TypeSystem
@api private @since 0.1.0
Public Class Methods
new()
click to toggle source
@return [void]
@api private @since 0.1.0
# File lib/smart_core/initializer/settings/type_system.rb, line 10 def initialize @type_system = nil @lock = SmartCore::Engine::Lock.new end
Public Instance Methods
assign(value)
click to toggle source
@param value [String, Symbol] @return [void]
@api private @since 0.1.0
# File lib/smart_core/initializer/settings/type_system.rb, line 40 def assign(value) thread_safe do SmartCore::Initializer::TypeSystem.resolve(value) # NOTE: type system existence validation @type_system = value end end
dup()
click to toggle source
@return [SmartCore::Initializer::Settings::TypeSystem]
@api private @since 0.1.0
# File lib/smart_core/initializer/settings/type_system.rb, line 51 def dup thread_safe do self.class.new.tap do |duplicate| duplicate.instance_variable_set(:@type_system, @type_system) end end end
generic_type_object()
click to toggle source
@return [Any]
@api private @since 0.1.0
# File lib/smart_core/initializer/settings/type_system.rb, line 19 def generic_type_object thread_safe do SmartCore::Initializer::TypeSystem.resolve(resolve).generic_type_object end end
resolve()
click to toggle source
@return [Symbol]
@api private @since 0.1.0
# File lib/smart_core/initializer/settings/type_system.rb, line 29 def resolve thread_safe do @type_system || SmartCore::Initializer::Configuration.config[:default_type_system] end end
Private Instance Methods
thread_safe(&block)
click to toggle source
@param block [Block] @return [Any]
@api private @since 0.1.0
# File lib/smart_core/initializer/settings/type_system.rb, line 66 def thread_safe(&block) @lock.synchronize(&block) end