Sha256: 87d5c94cfb9dbee9fe581c8ef180d58993b8231f8dfd7a0acfbc3db679c9287c
Contents?: true
Size: 1021 Bytes
Versions: 1
Compression:
Stored size: 1021 Bytes
Contents
# typed: true # frozen_string_literal: true require('cli/ui') module CLI module UI module Widgets class Base extend T::Sig extend T::Helpers abstract! class << self extend T::Sig sig { params(argstring: String).returns(String) } def call(argstring) new(argstring).render end end sig { params(argstring: String).void } def initialize(argstring) pat = self.class.argparse_pattern unless (@match_data = pat.match(argstring)) raise(Widgets::InvalidWidgetArguments.new(argstring, pat)) end @match_data.names.each do |name| instance_variable_set(:"@#{name}", @match_data[name]) end end class << self extend T::Sig sig { abstract.returns(Regexp) } def argparse_pattern; end end sig { abstract.returns(String) } def render; 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/widgets/base.rb |