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 19 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 54 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 30 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 63 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 41 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