Class: AudioFeedManager::ArgumentsSpecification
- Inherits:
-
Object
- Object
- AudioFeedManager::ArgumentsSpecification
show all
- Extended by:
- GetterSetterMethod
- Defined in:
- lib/audio_feed_manager/cli/arguments_specification.rb
Defined Under Namespace
Classes: Argument, Varargs
Class Method Summary
collapse
Instance Method Summary
collapse
get_set
Class Method Details
.no_arguments ⇒ Object
37
38
39
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 37
def self.no_arguments
new
end
|
.specify {|specification| ... } ⇒ Object
41
42
43
44
45
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 41
def self.specify
specification = no_arguments
yield specification
specification
end
|
Instance Method Details
#argument(name, required: false, description: "", default: nil) ⇒ Object
50
51
52
|
# 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 ⇒ Object
74
75
76
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 74
def arguments
@arguments ||= []
end
|
#has_arguments? ⇒ Boolean
82
83
84
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 82
def has_arguments?
!arguments.empty?
end
|
#minimum_varags_count ⇒ Object
58
59
60
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 58
def minimum_varags_count
varargs_arguments.map(&:minimum).reduce(0, :+)
end
|
#optional_arguments ⇒ Object
66
67
68
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 66
def optional_arguments
arguments.select(&:optional)
end
|
#required_arguments ⇒ Object
62
63
64
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 62
def required_arguments
arguments.select(&:required)
end
|
#usage_line ⇒ Object
78
79
80
|
# 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: "") ⇒ Object
54
55
56
|
# 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 ⇒ Object
70
71
72
|
# File 'lib/audio_feed_manager/cli/arguments_specification.rb', line 70
def varargs_arguments
arguments.select(&:varargs)
end
|