Module: Tins::GO
- Defined in:
- lib/tins/go.rb
Class Method Summary collapse
-
.go(s, args = ARGV) ⇒ Object
Parses the argument array args, according to the pattern s, to retrieve the single character command line options from it.
Class Method Details
.go(s, args = ARGV) ⇒ Object
Parses the argument array args, according to the pattern s, to retrieve the single character command line options from it. If s is ‘xy:’ an option ‘-x’ without an option argument is searched, and an option ‘-y foo’ with an option argument (‘foo’).
An option hash is returned with all found options set to true or the found option argument.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/tins/go.rb', line 12 def go(s, args = ARGV) b,v = s.scan(/(.)(:?)/).inject([{},{}]) { |t,(o,a)| a = a == ':' t[a ? 1 : 0][o] = a ? nil : false t } while a = args.shift a !~ /\A-(.+)/ and args.unshift a and break p = $1 until p == '' o = p.slice!(0, 1) if v.key?(o) if p == '' then v[o] = args.shift or break 1 else v[0] = p end break elsif b.key?(o) b[o] = true else args.unshift a break 1 end end and break end b.merge(v) end |