Module: CLI::Kit::Opts::Mixin

Extended by:
T::Sig
Includes:
Kernel
Included in:
CLI::Kit::Opts
Defined in:
lib/cli/kit/opts.rb

Defined Under Namespace

Modules: MixinClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Methods included from T::Sig

sig

Class Method Details

.included(klass) ⇒ Object



47
48
49
# File 'lib/cli/kit/opts.rb', line 47

def included(klass)
  klass.extend(MixinClassMethods)
end

Instance Method Details

#flag(name: infer_name, short: nil, long: nil, desc: nil) ⇒ Object



127
128
129
130
131
132
133
134
135
# File 'lib/cli/kit/opts.rb', line 127

def flag(name: infer_name, short: nil, long: nil, desc: nil)
  case @obj
  when Args::Definition
    @obj.add_flag(name, short: short, long: long, desc: desc)
    false
  when Args::Evaluation
    @obj.flag.send(name)
  end
end

#multi_option(name: infer_name, short: nil, long: nil, desc: nil, default: []) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
# File 'lib/cli/kit/opts.rb', line 107

def multi_option(name: infer_name, short: nil, long: nil, desc: nil, default: [])
  case @obj
  when Args::Definition
    @obj.add_option(
      name, short: short, long: long, desc: desc, default: default, multi: true
    )
    ['(result unavailable)']
  when Args::Evaluation
    @obj.opt.send(name)
  end
end

#option(name: infer_name, short: nil, long: nil, desc: nil, default: nil) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/cli/kit/opts.rb', line 61

def option(name: infer_name, short: nil, long: nil, desc: nil, default: nil)
  unless default.nil?
    raise(ArgumentError, 'declare options with non-nil defaults using `option!` instead of `option`')
  end

  case @obj
  when Args::Definition
    @obj.add_option(
      name, short: short, long: long, desc: desc, default: default
    )
    '(result unavailable)'
  when Args::Evaluation
    @obj.opt.send(name)
  end
end

#option!(name: infer_name, short: nil, long: nil, desc: nil, default: nil) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
# File 'lib/cli/kit/opts.rb', line 86

def option!(name: infer_name, short: nil, long: nil, desc: nil, default: nil)
  case @obj
  when Args::Definition
    @obj.add_option(
      name, short: short, long: long, desc: desc, default: default
    )
    '(result unavailable)'
  when Args::Evaluation
    @obj.opt.send(name)
  end
end

#position(name: infer_name, desc: nil, default: nil, skip: nil) ⇒ Object



160
161
162
163
164
165
166
167
168
# File 'lib/cli/kit/opts.rb', line 160

def position(name: infer_name, desc: nil, default: nil, skip: nil)
  case @obj
  when Args::Definition
    @obj.add_position(name, desc: desc, required: false, multi: false, default: default, skip: skip)
    '(result unavailable)'
  when Args::Evaluation
    @obj.position.send(name)
  end
end

#position!(name: infer_name, desc: nil) ⇒ Object



138
139
140
141
142
143
144
145
146
# File 'lib/cli/kit/opts.rb', line 138

def position!(name: infer_name, desc: nil)
  case @obj
  when Args::Definition
    @obj.add_position(name, desc: desc, required: true, multi: false)
    '(result unavailable)'
  when Args::Evaluation
    @obj.position.send(name)
  end
end

#rest(name: infer_name, desc: nil) ⇒ Object



171
172
173
174
175
176
177
178
179
# File 'lib/cli/kit/opts.rb', line 171

def rest(name: infer_name, desc: nil)
  case @obj
  when Args::Definition
    @obj.add_position(name, desc: desc, required: false, multi: true)
    ['(result unavailable)']
  when Args::Evaluation
    @obj.position.send(name)
  end
end