Class: Command::FiddlyArgument

Inherits:
Argument
  • Object
show all
Defined in:
lib/command-set/arguments.rb

Overview

Using FiddlyArguments is sometimes unavoidable, but it kind of stinks. You assign blocks that validate, complete and parse the input. You’re probably better off subclassing Argument.

Instance Attribute Summary

Attributes inherited from Argument

#name, #value

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Argument

#check_present, #complete, #consume, #consume_hash, #match_terms, #omittable?, #parse, register, #required?, #validate

Constructor Details

#initialize(name, &block) ⇒ FiddlyArgument

Returns a new instance of FiddlyArgument.



286
287
288
289
290
# File 'lib/command-set/arguments.rb', line 286

def initialize(name, &block)
  super(name)

  (class << self; self; end).class_eval &block
end

Class Method Details

.completion(&block) ⇒ Object

Raises:

  • (TypeError)


292
293
294
295
# File 'lib/command-set/arguments.rb', line 292

def self.completion(&block)
  raise TypeError unless block.arity == 2
  define_method :complete, &block
end

.parser(&block) ⇒ Object

Raises:

  • (TypeError)


303
304
305
306
# File 'lib/command-set/arguments.rb', line 303

def self.parser(&block)
  raise TypeError unless block.arity == 2
  define_method :parse, &block
end

.validation(&block) ⇒ Object

Raises:

  • (TypeError)


298
299
300
301
# File 'lib/command-set/arguments.rb', line 298

def self.validation(&block)
  raise TypeError unless block.arity == 2
  define_method :validate, &block
end