subcommand 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/subcommand.rb +17 -9
- metadata +3 -3
data/Rakefile
CHANGED
@@ -10,6 +10,7 @@ begin
|
|
10
10
|
gem.email = "sentinel.1879@gmail.com"
|
11
11
|
gem.homepage = "http://github.com/rkumar/subcommand"
|
12
12
|
gem.authors = ["Rahul Kumar"]
|
13
|
+
gem.rubyforge_project = "subcommand"
|
13
14
|
#gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
14
15
|
gem.add_development_dependency "yard", ">= 0"
|
15
16
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.2
|
data/lib/subcommand.rb
CHANGED
@@ -62,7 +62,6 @@ module Subcommands
|
|
62
62
|
# Do repeatedly for each command
|
63
63
|
# Yields the optionparser
|
64
64
|
def command *names
|
65
|
-
#puts "inside command with #{names} "
|
66
65
|
name = names.shift
|
67
66
|
@commands ||= {}
|
68
67
|
@aliases ||= {}
|
@@ -95,8 +94,10 @@ module Subcommands
|
|
95
94
|
# then parse subcommand options if valid subcommand
|
96
95
|
# special case of "help command" so we print help of command - git style (3)
|
97
96
|
# in all invalid cases print global help
|
97
|
+
# @return command name if relevant
|
98
98
|
def opt_parse
|
99
99
|
# if user has not defined global, we need to create it
|
100
|
+
@command_name = nil
|
100
101
|
if !defined? @global
|
101
102
|
global_options do |opts|
|
102
103
|
opts.banner = "Usage: #{$0} [options] [subcommand [options]]"
|
@@ -135,37 +136,43 @@ module Subcommands
|
|
135
136
|
@global.order!
|
136
137
|
cmd = ARGV.shift
|
137
138
|
if cmd
|
138
|
-
#puts "Command: #{cmd} "
|
139
|
+
#puts "Command: #{cmd}, args:#{ARGV}, #{@commands.keys} "
|
139
140
|
sc = @commands[cmd]
|
141
|
+
#puts "sc: #{sc}: #{@commands}"
|
142
|
+
#puts "sc: ="+@commands.include?(cmd)
|
140
143
|
unless sc
|
141
144
|
# see if an alias exists
|
142
|
-
#puts "sc nil #{@aliases} "
|
143
145
|
alas = @aliases[cmd]
|
144
|
-
#puts "sc nil #{alas} "
|
145
146
|
sc = @commands[alas] if alas
|
146
|
-
|
147
|
+
cmd = alas if alas
|
147
148
|
end
|
148
149
|
# if valid command parse the args
|
149
150
|
if sc
|
151
|
+
@command_name = cmd
|
150
152
|
sc.call.order!
|
151
153
|
else
|
152
154
|
# else if help <command> then print its help GIT style (3)
|
153
|
-
if !ARGV.empty?
|
155
|
+
if !ARGV.empty? && cmd == "help"
|
154
156
|
cmd = ARGV.shift
|
157
|
+
#puts " 110 help #{cmd}"
|
155
158
|
sc = @commands[cmd]
|
156
159
|
# if valid command print help, else print global help
|
157
160
|
if sc
|
158
|
-
#puts " 111 help
|
161
|
+
#puts " 111 help #{cmd}"
|
159
162
|
puts sc.call
|
160
|
-
else
|
163
|
+
else
|
164
|
+
puts "Invalid command: #{cmd}"
|
165
|
+
puts @global
|
161
166
|
end
|
162
167
|
else
|
163
168
|
# invalid command
|
169
|
+
puts "Invalid command: #{cmd}"
|
164
170
|
puts @global
|
165
171
|
end
|
166
172
|
exit 0
|
167
173
|
end
|
168
174
|
end
|
175
|
+
return @command_name
|
169
176
|
end
|
170
177
|
end
|
171
178
|
|
@@ -200,8 +207,9 @@ if __FILE__ == $PROGRAM_NAME
|
|
200
207
|
end
|
201
208
|
|
202
209
|
# do the parsing.
|
203
|
-
opt_parse()
|
210
|
+
cmd = opt_parse()
|
204
211
|
|
212
|
+
puts "cmd: #{cmd}"
|
205
213
|
puts "options ......"
|
206
214
|
p options
|
207
215
|
puts "ARGV:"
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 2
|
9
|
+
version: 1.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Rahul Kumar
|
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
75
|
version: "0"
|
76
76
|
requirements: []
|
77
77
|
|
78
|
-
rubyforge_project:
|
78
|
+
rubyforge_project: subcommand
|
79
79
|
rubygems_version: 1.3.6
|
80
80
|
signing_key:
|
81
81
|
specification_version: 3
|