Class: CLI::Kit::Args::Definition::Position
- Inherits:
-
Object
- Object
- CLI::Kit::Args::Definition::Position
- Extended by:
- T::Sig
- Defined in:
- lib/cli/kit/args/definition.rb
Instance Attribute Summary
Attributes included from OptBase
Instance Method Summary collapse
-
#initialize(name:, desc:, required:, multi:, default: nil, skip: nil) ⇒ Position
constructor
A new instance of Position.
- #skip?(arg) ⇒ Boolean
Methods included from T::Sig
Methods included from OptValue
#default, #dynamic_default?, #multi?, #optional?, #required?
Constructor Details
#initialize(name:, desc:, required:, multi:, default: nil, skip: nil) ⇒ Position
Returns a new instance of Position.
180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/cli/kit/args/definition.rb', line 180 def initialize(name:, desc:, required:, multi:, default: nil, skip: nil) if multi && (default || required) raise(ArgumentError, 'multi-valued positions cannot have a default or required value') end @name = name @desc = desc @required = required @multi = multi @default = default @skip = skip end |
Instance Method Details
#skip?(arg) ⇒ Boolean
194 195 196 197 198 199 200 201 202 |
# File 'lib/cli/kit/args/definition.rb', line 194 def skip?(arg) if @skip.nil? false elsif T.must(@skip).arity == 0 T.cast(@skip, T.proc.returns(T::Boolean)).call else T.cast(@skip, T.proc.params(arg0: String).returns(T::Boolean)).call(arg) end end |