class Dry::Types::FnContainer

Internal container for constructor functions used by the built-in types

@api private

Public Class Methods

[](fn_name) click to toggle source

@api private

# File lib/dry/types/fn_container.rb, line 25
def self.[](fn_name)
  if container.key?(fn_name)
    container[fn_name]
  else
    fn_name
  end
end
container() click to toggle source

@api private

# File lib/dry/types/fn_container.rb, line 12
def self.container
  @container ||= Container.new
end
register(function = Dry::Core::Constants::Undefined, &block) click to toggle source

@api private

# File lib/dry/types/fn_container.rb, line 17
def self.register(function = Dry::Core::Constants::Undefined, &block)
  fn = Dry::Core::Constants::Undefined.default(function, block)
  fn_name = register_name(fn)
  container.register(fn_name, fn) unless container.key?(fn_name)
  fn_name
end
register_name(function) click to toggle source

@api private

# File lib/dry/types/fn_container.rb, line 34
def self.register_name(function)
  "fn_#{function.object_id}"
end