class AudioFeedManager::ArgumentsSpecification

Constants

Argument
Varargs

Public Class Methods

no_arguments() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 37
def self.no_arguments
  new
end
specify() { |specification| ... } click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 41
def self.specify
  specification = no_arguments
  yield specification
  specification
end

Public Instance Methods

argument(name, required: false, description: "", default: nil) click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 50
def argument(name, required: false, description: "", default: nil)
  arguments << Argument.new(name, required, description, default)
end
arguments() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 74
def arguments
  @arguments ||= []
end
has_arguments?() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 82
def has_arguments?
  !arguments.empty?
end
minimum_varags_count() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 58
def minimum_varags_count
  varargs_arguments.map(&:minimum).reduce(0, :+)
end
optional_arguments() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 66
def optional_arguments
  arguments.select(&:optional)
end
required_arguments() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 62
def required_arguments
  arguments.select(&:required)
end
usage_line() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 78
def usage_line
  name + required_arguments_line + optional_arguments_line + varargs_line
end
varargs(name, minimum: 1, description: "") click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 54
def varargs(name, minimum: 1, description: "")
  arguments << Varargs.new(name, minimum, description)
end
varargs_arguments() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 70
def varargs_arguments
  arguments.select(&:varargs)
end

Private Instance Methods

optional_arguments_line() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 93
def optional_arguments_line
  return "" if optional_arguments.empty?
  " " + optional_arguments.map(&:usage_name).map{|s| "[#{s}]"}.join(" ")
end
required_arguments_line() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 88
def required_arguments_line
  return "" if required_arguments.empty?
  " " + required_arguments.map(&:usage_name).map{|s| "<#{s}>"}.join(" ")
end
varargs_line() click to toggle source
# File lib/audio_feed_manager/cli/arguments_specification.rb, line 98
def varargs_line
  return "" if varargs_arguments.empty?
  " " + varargs_arguments.map(&:usage_name).map{|s| "[#{s}]"}.join(" ")
end