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
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