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.
@@ -21,7 +21,7 @@ module OptimusPrime
21
21
  end
22
22
 
23
23
  def help(name)
24
- @commands[name].help
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
- names.each { |name| __optor__.option(name) }
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nakajima-optimus-prime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Nakajima