class TTY::Prompt::ConverterRegistry

Immutable collection of converters for type transformation

@api private

Public Class Methods

new(registry = {}) click to toggle source

Create a registry of conversions

@param [Hash] registry

@api private

# File lib/tty/prompt/converter_registry.rb, line 20
def initialize(registry = {})
  @__registry = registry.dup
end

Public Instance Methods

[](name) click to toggle source

Execute converter

@api public

# File lib/tty/prompt/converter_registry.rb, line 55
def [](name)
  conv_name = name.to_s.downcase.to_sym
  @__registry.fetch(conv_name) do
    raise UnsupportedConversion,
          "converter #{conv_name.inspect} is not registered"
  end
end
Also aliased as: fetch
contain?(name) click to toggle source

Check if conversion is available

@param [String] name

@return [Boolean]

@api public

# File lib/tty/prompt/converter_registry.rb, line 31
def contain?(name)
  conv_name = name.to_s.downcase.to_sym
  @__registry.key?(conv_name)
end
fetch(name)
Alias for: []
inspect() click to toggle source
# File lib/tty/prompt/converter_registry.rb, line 64
def inspect
  @_registry.inspect
end
register(*names, &block) click to toggle source

Register a conversion

@param [Symbol] name

the converter name

@api public

# File lib/tty/prompt/converter_registry.rb, line 42
def register(*names, &block)
  names.each do |name|
    if contain?(name)
      raise ConversionAlreadyDefined,
            "converter for #{name.inspect} is already registered"
    end
    @__registry[name] = block
  end
end