nakajima-optimus-prime 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/optimus_prime/optor.rb +14 -2
- data/lib/optimus_prime.rb +2 -3
- metadata +1 -1
data/lib/optimus_prime/optor.rb
CHANGED
@@ -21,7 +21,7 @@ module OptimusPrime
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def help(name)
|
24
|
-
|
24
|
+
commands[name].help
|
25
25
|
end
|
26
26
|
|
27
27
|
def flag(name)
|
@@ -29,9 +29,14 @@ module OptimusPrime
|
|
29
29
|
@option_list << name.to_s
|
30
30
|
end
|
31
31
|
|
32
|
-
def option(name)
|
32
|
+
def option(name, options={})
|
33
33
|
@option_list ||= []
|
34
34
|
@option_list << name.to_s + ':'
|
35
|
+
|
36
|
+
if options[:prompt]
|
37
|
+
@prompt_list ||= {}
|
38
|
+
@prompt_list[name.to_s] = options[:prompt]
|
39
|
+
end
|
35
40
|
end
|
36
41
|
|
37
42
|
def init(instance)
|
@@ -39,6 +44,13 @@ module OptimusPrime
|
|
39
44
|
instance.instance_variable_set("@#{key}", val)
|
40
45
|
end
|
41
46
|
|
47
|
+
Array(@prompt_list).each do |key, prompt|
|
48
|
+
next if options[key]
|
49
|
+
$stdout.print prompt + ' '
|
50
|
+
options[key] = $stdin.gets.chomp
|
51
|
+
instance.instance_variable_set("@#{key}", options[key])
|
52
|
+
end
|
53
|
+
|
42
54
|
args = @args.dup
|
43
55
|
args.each do |val|
|
44
56
|
args.delete(val)
|
data/lib/optimus_prime.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'nakajima'
|
3
1
|
require 'optparse'
|
4
2
|
|
5
3
|
$LOAD_PATH.unshift File.dirname(__FILE__)
|
@@ -59,7 +57,8 @@ module OptimusPrime
|
|
59
57
|
end
|
60
58
|
|
61
59
|
def option(*names)
|
62
|
-
|
60
|
+
options = names.last.is_a?(Hash) ? names.pop : {}
|
61
|
+
names.each { |name| __optor__.option(name, options) }
|
63
62
|
end
|
64
63
|
end
|
65
64
|
end
|