Class: Generated::Argument
- Inherits:
-
Object
- Object
- Generated::Argument
show all
- Defined in:
- lib/generated/argument.rb
Direct Known Subclasses
Option
Defined Under Namespace
Classes: UnrecognizedType
Constant Summary
collapse
- SEPARATOR =
":"
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(value) ⇒ Argument
Returns a new instance of Argument.
16
17
18
19
20
|
# File 'lib/generated/argument.rb', line 16
def initialize(value)
@raw_name, @raw_type = value.split(SEPARATOR)
@raw_required = true
end
|
Instance Attribute Details
#raw_banner ⇒ Object
Returns the value of attribute raw_banner.
9
10
11
|
# File 'lib/generated/argument.rb', line 9
def raw_banner
@raw_banner
end
|
#raw_default ⇒ Object
Returns the value of attribute raw_default.
9
10
11
|
# File 'lib/generated/argument.rb', line 9
def raw_default
@raw_default
end
|
#raw_desc ⇒ Object
Returns the value of attribute raw_desc.
9
10
11
|
# File 'lib/generated/argument.rb', line 9
def raw_desc
@raw_desc
end
|
#raw_name ⇒ Object
Returns the value of attribute raw_name.
9
10
11
|
# File 'lib/generated/argument.rb', line 9
def raw_name
@raw_name
end
|
#raw_required ⇒ Object
Returns the value of attribute raw_required.
9
10
11
|
# File 'lib/generated/argument.rb', line 9
def raw_required
@raw_required
end
|
#raw_type ⇒ Object
Returns the value of attribute raw_type.
9
10
11
|
# File 'lib/generated/argument.rb', line 9
def raw_type
@raw_type
end
|
Instance Method Details
#argument? ⇒ Boolean
26
27
28
|
# File 'lib/generated/argument.rb', line 26
def argument?
parameter_type == :argument
end
|
#banner ⇒ Object
42
43
44
|
# File 'lib/generated/argument.rb', line 42
def banner
required? ? banner_content : "[#{banner_content}]"
end
|
#banner_content ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/generated/argument.rb', line 63
def banner_content
case type
when :string
name.upcase
when :numeric
default || "1"
when :array
"one two three"
when :hash
"key_one:value_one key_two:value_two"
when :boolean
nil
else
raw_banner
end
end
|
#default ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/generated/argument.rb', line 80
def default
return nil if required?
case type
when :string
"<TODO>"
when :numeric
0
when :array
[]
when :hash
{}
when :boolean
false
else
raw_default
end
end
|
#desc ⇒ Object
38
39
40
|
# File 'lib/generated/argument.rb', line 38
def desc
"<TODO: How will the '#{raw_name}' #{parameter_type} be used by the generator?>"
end
|
#name ⇒ Object
34
35
36
|
# File 'lib/generated/argument.rb', line 34
def name
raw_name
end
|
#option? ⇒ Boolean
30
31
32
|
# File 'lib/generated/argument.rb', line 30
def option?
parameter_type == :option
end
|
#optional? ⇒ Boolean
111
|
# File 'lib/generated/argument.rb', line 111
def optional? = !required
|
#parameter_type ⇒ Object
22
23
24
|
# File 'lib/generated/argument.rb', line 22
def parameter_type
self.class.name.demodulize.underscore.to_sym
end
|
#required ⇒ Object
100
101
102
103
104
105
106
107
|
# File 'lib/generated/argument.rb', line 100
def required
case raw_required
when true, "true", 1
true
when false, "false", 0
false
end
end
|
#required? ⇒ Boolean
109
|
# File 'lib/generated/argument.rb', line 109
def required? = required
|
#type ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/generated/argument.rb', line 46
def type
case raw_type
when "integer", "float", "numeric"
:numeric
when "string", "text"
:string
when "array"
:array
when "hash"
:hash
when "boolean"
:boolean
else
raise UnrecognizedType, raw_type
end
end
|