Class: Thor::Argument
- Inherits:
-
Object
- Object
- Thor::Argument
- Defined in:
- lib/thor/parser/argument.rb
Overview
:nodoc:
Direct Known Subclasses
Constant Summary collapse
- VALID_TYPES =
[ :numeric, :hash, :array, :string ]
Instance Attribute Summary collapse
-
#banner ⇒ Object
readonly
Returns the value of attribute banner.
-
#default ⇒ Object
readonly
Returns the value of attribute default.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#name ⇒ Object
(also: #human_name)
readonly
Returns the value of attribute name.
-
#required ⇒ Object
readonly
Returns the value of attribute required.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
-
#initialize(name, description = nil, required = true, type = :string, default = nil, banner = nil) ⇒ Argument
constructor
A new instance of Argument.
- #required? ⇒ Boolean
- #show_default? ⇒ Boolean
- #usage ⇒ Object
Constructor Details
#initialize(name, description = nil, required = true, type = :string, default = nil, banner = nil) ⇒ Argument
Returns a new instance of Argument.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/thor/parser/argument.rb', line 8 def initialize(name, description=nil, required=true, type=:string, default=nil, =nil) class_name = self.class.name.split("::").last raise ArgumentError, "#{class_name} name can't be nil." if name.nil? raise ArgumentError, "Type :#{type} is not valid for #{class_name.downcase}s." if type && !valid_type?(type) @name = name.to_s @description = description @required = required || false @type = (type || :string).to_sym @default = default @banner = || validate! # Trigger specific validations end |
Instance Attribute Details
#banner ⇒ Object (readonly)
Returns the value of attribute banner.
5 6 7 |
# File 'lib/thor/parser/argument.rb', line 5 def @banner end |
#default ⇒ Object (readonly)
Returns the value of attribute default.
5 6 7 |
# File 'lib/thor/parser/argument.rb', line 5 def default @default end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
5 6 7 |
# File 'lib/thor/parser/argument.rb', line 5 def description @description end |
#name ⇒ Object (readonly) Also known as: human_name
Returns the value of attribute name.
5 6 7 |
# File 'lib/thor/parser/argument.rb', line 5 def name @name end |
#required ⇒ Object (readonly)
Returns the value of attribute required.
5 6 7 |
# File 'lib/thor/parser/argument.rb', line 5 def required @required end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
5 6 7 |
# File 'lib/thor/parser/argument.rb', line 5 def type @type end |
Instance Method Details
#required? ⇒ Boolean
28 29 30 |
# File 'lib/thor/parser/argument.rb', line 28 def required? required end |
#show_default? ⇒ Boolean
32 33 34 35 36 37 38 39 |
# File 'lib/thor/parser/argument.rb', line 32 def show_default? case default when Array, String, Hash !default.empty? else default end end |
#usage ⇒ Object
24 25 26 |
# File 'lib/thor/parser/argument.rb', line 24 def usage required? ? : "[#{}]" end |