barmcakes 0.0.1 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/arrghs.rb +22 -2
- metadata +2 -2
data/lib/arrghs.rb
CHANGED
@@ -2,12 +2,22 @@
|
|
2
2
|
class Arrghs
|
3
3
|
attr_reader :args
|
4
4
|
|
5
|
-
def self.
|
5
|
+
def self.parse_and_check(arg_arr=ARGV, needed)
|
6
|
+
args = Arrghs.parse(arg_arr)
|
7
|
+
missing = []
|
8
|
+
needed.each do |opt,desc|
|
9
|
+
missing << [opt,desc] unless args.include?(opt.gsub(/^-{1,2}/, "").to_sym)
|
10
|
+
end
|
11
|
+
return args if missing.empty?
|
12
|
+
Arrghs.die_noisily_about needed
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.parse(arg_arr=ARGV)
|
6
16
|
args = {}
|
7
17
|
arg_arr.each_with_index do |opt, i|
|
8
|
-
#$stderr.puts opt, i
|
9
18
|
if opt =~ /^-{1,1}[^-]/
|
10
19
|
opt = opt[1..-1]
|
20
|
+
next if opt.length > 1
|
11
21
|
val = true
|
12
22
|
val = arg_arr[i + 1] if arg_arr[i + 1] !~ /^-/
|
13
23
|
opt.split(//).each {|f| args[f.to_sym] = val}
|
@@ -18,4 +28,14 @@ class Arrghs
|
|
18
28
|
end
|
19
29
|
args
|
20
30
|
end
|
31
|
+
|
32
|
+
def self.die_noisily_about needed
|
33
|
+
$stderr.puts "Missing options\n"
|
34
|
+
$stderr.puts "Usage: #{$0} "
|
35
|
+
$stderr.puts "with options:"
|
36
|
+
needed.each {|opt,desc| $stderr.puts "#{opt} <#{desc}> "}
|
37
|
+
$stderr.puts "\n__________\n"
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
|
21
41
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: barmcakes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -21,7 +21,7 @@ files:
|
|
21
21
|
- lib/barmcakes.rb
|
22
22
|
- lib/arrghs.rb
|
23
23
|
- lib/file.rb
|
24
|
-
homepage: http://github.com/danmaclean
|
24
|
+
homepage: http://github.com/danmaclean/barmcakes
|
25
25
|
licenses: []
|
26
26
|
post_install_message:
|
27
27
|
rdoc_options: []
|