Class: Clip::Option

Inherits:
Object
  • Object
show all
Defined in:
lib/clip.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(short, long, options) ⇒ Option

Returns a new instance of Option.



339
340
341
342
343
344
345
346
# File 'lib/clip.rb', line 339

def initialize(short, long, options)
  @short = short
  @long = long
  @description = options[:desc]
  @default = options[:default]
  @required = options[:required]
  @multi = options[:multi]
end

Instance Attribute Details

#defaultObject

Returns the value of attribute default.



337
338
339
# File 'lib/clip.rb', line 337

def default
  @default
end

#descriptionObject

Returns the value of attribute description.



337
338
339
# File 'lib/clip.rb', line 337

def description
  @description
end

#longObject

Returns the value of attribute long.



337
338
339
# File 'lib/clip.rb', line 337

def long
  @long
end

#multiObject

Returns the value of attribute multi.



337
338
339
# File 'lib/clip.rb', line 337

def multi
  @multi
end

#requiredObject

Returns the value of attribute required.



337
338
339
# File 'lib/clip.rb', line 337

def required
  @required
end

#shortObject

Returns the value of attribute short.



337
338
339
# File 'lib/clip.rb', line 337

def short
  @short
end

Instance Method Details

#has_default?Boolean

Returns:

  • (Boolean)


362
363
364
# File 'lib/clip.rb', line 362

def has_default?
  not @default.nil?
end

#multi?Boolean

Returns:

  • (Boolean)


366
367
368
# File 'lib/clip.rb', line 366

def multi?
  @multi == true
end

#process(parser, value) ⇒ Object



348
349
350
351
352
353
354
355
356
# File 'lib/clip.rb', line 348

def process(parser, value)
  if @multi
    current = parser.send(@long) || []
    current.concat(value.split(','))
    parser.send("#{@long}=".to_sym, current)
  else
    parser.send("#{@long}=".to_sym, value)
  end
end

#required?Boolean

Returns:

  • (Boolean)


358
359
360
# File 'lib/clip.rb', line 358

def required?
  @required == true
end

#usageObject



370
371
372
373
374
375
376
377
378
# File 'lib/clip.rb', line 370

def usage
  out = sprintf('-%-2s --%-10s %s',
                @short,
                @long.to_s.gsub('_', '-').to_sym,
                @description)
  out << " (defaults to '#{@default}')" if @default
  out << " REQUIRED" if @required
  out
end