Sha256: 57d8b5d14941f5277d94c287b9668be8279814e112f14f1ad15e7916fcf8d32a
Contents?: true
Size: 924 Bytes
Versions: 4
Compression:
Stored size: 924 Bytes
Contents
# typed: strict # frozen_string_literal: true module Packwerk module Commands class LazyLoadedEntry extend T::Sig sig { returns(String) } attr_reader :name sig { params(name: String, aliases: T::Array[String]).void } def initialize(name, aliases: []) @name = name @aliases = aliases end sig { returns(T.class_of(BaseCommand)) } def command_class classname = @name.sub(" ", "_").underscore.classify + "Command" Commands.const_get(classname) # rubocop:disable Sorbet/ConstantsFromStrings end sig { returns(String) } def description command_class.description end sig { params(name_or_alias: String).returns(T::Boolean) } def matches_command?(name_or_alias) @name == name_or_alias || @aliases.include?(name_or_alias) end end private_constant :LazyLoadedEntry end end
Version data entries
4 entries across 4 versions & 1 rubygems