Class: CLI::Kit::Args::Definition::Position

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Includes:
OptBase, OptValue
Defined in:
lib/cli/kit/args/definition.rb

Instance Attribute Summary

Attributes included from OptBase

#desc, #name

Instance Method Summary collapse

Methods included from T::Sig

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

Returns:

  • (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