Sha256: c148ae5367e631dacd10814a0de24b2c963b46eef6b9e14cfa01e44814f0f2ad
Contents?: true
Size: 928 Bytes
Versions: 1
Compression:
Stored size: 928 Bytes
Contents
# typed: true # frozen_string_literal: true module CLI module UI module Prompt # A class that handles the various options of an InteractivePrompt and their callbacks class OptionsHandler extend T::Sig sig { void } def initialize @options = {} end sig { returns(T::Array[String]) } def options @options.keys end sig { params(option: String, handler: T.proc.params(option: String).returns(String)).void } def option(option, &handler) @options[option] = handler end sig { params(options: T.any(T::Array[String], String)).returns(String) } def call(options) case options when Array options.map { |option| @options[option].call(options) } else @options[options].call(options) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cli-ui-2.3.0 | lib/cli/ui/prompt/options_handler.rb |