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

Inherits:
Object
  • Object
show all
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 OptValue

#default, #dynamic_default?, #multi?, #optional?, #required?

Constructor Details

#initialize(name:, desc:, required:, multi:, default: nil, skip: nil) ⇒ Position

: (name: Symbol, desc: String?, required: bool, multi: bool, ?default: (String | ^-> String)?, ?skip: (^-> bool | ^(String arg0) -> bool)?) -> void



135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/cli/kit/args/definition.rb', line 135

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

: (String arg) -> bool

Returns:



149
150
151
152
153
154
155
156
157
158
159
# File 'lib/cli/kit/args/definition.rb', line 149

def skip?(arg)
  if @skip.nil?
    false
  elsif @skip.arity == 0
    prc = @skip #: as ^() -> bool
    prc.call
  else
    prc = @skip #: as ^(String) -> bool
    prc.call(arg)
  end
end