From: Robert Dober Date: 2007-06-21T05:18:12+09:00 Subject: Re: GetoptLong, but not on ARGV ------=_Part_53051_14648945.1182370692442 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 6/20/07, Trans wrote: > Is there a way to utilize Getoptlong on an arbitrary command var, ie. > not on ARGV. I figure I can alway do something like: > > require 'getoptlong' > > my_argv = Shellwords.shellwords( "foo -x" ) > > const_set(:ARGV, my_argv) > > opts = GetoptLong.new( > [ '-x', GetoptLong::NO_ARGUMENT ] > ) > > But it just doesn't seem proper to reset ARGV. > > Thanks, > T. > > > Basically did %s/ARGV/(@arglist||ARGV)/g and inserted the attribute accessor, funny thing seems to work ;) opts = GetoptLong.new( [ '-x', GetoptLong::NO_ARGUMENT ] ) opts.arglist = Shellwords.shellwords( "foo -x" ) -- Too boldly go where no one has gone before -- forgot who said that Robert ------=_Part_53051_14648945.1182370692442 Content-Type: text/x-patch; name=getoptlong.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f3666t4c Content-Disposition: attachment; filename="getoptlong.patch" NzNjNzMKPCAjICAgICBpZiBBUkdWLmxlbmd0aCAhPSAxCi0tLQo+ICMgICAgIGlmIChAYXJnbGlz dHx8QVJHVikubGVuZ3RoICE9IDEKNzhjNzgKPCAjICAgICBkaXIgPSBBUkdWLnNoaWZ0Ci0tLQo+ ICMgICAgIGRpciA9IChAYXJnbGlzdHx8QVJHVikuc2hpZnQKOTNhOTQsOTUKPiAKPiAgIGF0dHJf YWNjZXNzb3IgOmFyZ2xpc3QKMTg2YzE4OAo8ICAgICAjIEFwcGVuZCB0aGVtIHRvIEFSR1Ygd2hl biBvcHRpb24gcHJvY2Vzc2luZyBpcyB0ZXJtaW5hdGVkLgotLS0KPiAgICAgIyBBcHBlbmQgdGhl bSB0byAoQGFyZ2xpc3R8fEFSR1YpIHdoZW4gb3B0aW9uIHByb2Nlc3NpbmcgaXMgdGVybWluYXRl ZC4KMjExYzIxMwo8ICAgIyAnb25lJywgJy1iJywgJ3R3bycgYmVpbmcgbGVmdCBpbiBBUkdWLCBh bmQgb25seSAoJy1hJywgJycpIGJlaW5nIAotLS0KPiAgICMgJ29uZScsICctYicsICd0d28nIGJl aW5nIGxlZnQgaW4gKEBhcmdsaXN0fHxBUkdWKSwgYW5kIG9ubHkgKCctYScsICcnKSBiZWluZyAK MjI4YzIzMAo8ICAgIyBiZWluZyBsZWZ0IGluIEFSR1YuCi0tLQo+ICAgIyBiZWluZyBsZWZ0IGlu IChAYXJnbGlzdHx8QVJHVikuCjM3MmMzNzQKPCAgICAgICBBUkdWLnVuc2hpZnQoYXJndW1lbnQp Ci0tLQo+ICAgICAgIChAYXJnbGlzdHx8QVJHVikudW5zaGlmdChhcmd1bWVudCkKNDU0YzQ1Ngo8 ICAgICBlbHNpZiAoQVJHVi5sZW5ndGggPT0gMCkKLS0tCj4gICAgIGVsc2lmICgoQGFyZ2xpc3R8 fEFSR1YpLmxlbmd0aCA9PSAwKQo0NTgsNDU5YzQ2MCw0NjEKPCAgICAgICB3aGlsZSAwIDwgQVJH Vi5sZW5ndGggJiYgQVJHVlswXSAhfiAvXi0uLwo8IAlAbm9uX29wdGlvbl9hcmd1bWVudHMucHVz aChBUkdWLnNoaWZ0KQotLS0KPiAgICAgICB3aGlsZSAwIDwgKEBhcmdsaXN0fHxBUkdWKS5sZW5n dGggJiYgKEBhcmdsaXN0fHxBUkdWKVswXSAhfiAvXi0uLwo+IAlAbm9uX29wdGlvbl9hcmd1bWVu dHMucHVzaCgoQGFyZ2xpc3R8fEFSR1YpLnNoaWZ0KQo0NjFjNDYzCjwgICAgICAgaWYgQVJHVi5s ZW5ndGggPT0gMAotLS0KPiAgICAgICBpZiAoQGFyZ2xpc3R8fEFSR1YpLmxlbmd0aCA9PSAwCjQ2 NWM0NjcKPCAgICAgICBhcmd1bWVudCA9IEFSR1Yuc2hpZnQKLS0tCj4gICAgICAgYXJndW1lbnQg PSAoQGFyZ2xpc3R8fEFSR1YpLnNoaWZ0CjQ2N2M0NjkKPCAgICAgICBpZiAoQVJHVlswXSAhfiAv Xi0uLykKLS0tCj4gICAgICAgaWYgKChAYXJnbGlzdHx8QVJHVilbMF0gIX4gL14tLi8pCjQ3MWM0 NzMKPCAgICAgICBhcmd1bWVudCA9IEFSR1Yuc2hpZnQKLS0tCj4gICAgICAgYXJndW1lbnQgPSAo QGFyZ2xpc3R8fEFSR1YpLnNoaWZ0CjQ3M2M0NzUKPCAgICAgICBhcmd1bWVudCA9IEFSR1Yuc2hp ZnQKLS0tCj4gICAgICAgYXJndW1lbnQgPSAoQGFyZ2xpc3R8fEFSR1YpLnNoaWZ0CjUyMCw1MjFj NTIyLDUyMwo8IAllbHNpZiAwIDwgQVJHVi5sZW5ndGgKPCAJICBvcHRpb25fYXJndW1lbnQgPSBB UkdWLnNoaWZ0Ci0tLQo+IAllbHNpZiAwIDwgKEBhcmdsaXN0fHxBUkdWKS5sZW5ndGgKPiAJICBv cHRpb25fYXJndW1lbnQgPSAoQGFyZ2xpc3R8fEFSR1YpLnNoaWZ0CjUyOSw1MzBjNTMxLDUzMgo8 IAllbHNpZiAwIDwgQVJHVi5sZW5ndGggJiYgQVJHVlswXSAhfiAvXi0uLwo8IAkgIG9wdGlvbl9h cmd1bWVudCA9IEFSR1Yuc2hpZnQKLS0tCj4gCWVsc2lmIDAgPCAoQGFyZ2xpc3R8fEFSR1YpLmxl bmd0aCAmJiAoQGFyZ2xpc3R8fEFSR1YpWzBdICF+IC9eLS4vCj4gCSAgb3B0aW9uX2FyZ3VtZW50 ID0gKEBhcmdsaXN0fHxBUkdWKS5zaGlmdAo1NTYsNTU3YzU1OCw1NTkKPCAJICBlbHNpZiAwIDwg QVJHVi5sZW5ndGgKPCAJICAgIG9wdGlvbl9hcmd1bWVudCA9IEFSR1Yuc2hpZnQKLS0tCj4gCSAg ZWxzaWYgMCA8IChAYXJnbGlzdHx8QVJHVikubGVuZ3RoCj4gCSAgICBvcHRpb25fYXJndW1lbnQg PSAoQGFyZ2xpc3R8fEFSR1YpLnNoaWZ0CjU2Niw1NjdjNTY4LDU2OQo8IAkgIGVsc2lmIDAgPCBB UkdWLmxlbmd0aCAmJiBBUkdWWzBdICF+IC9eLS4vCjwgCSAgICBvcHRpb25fYXJndW1lbnQgPSBB UkdWLnNoaWZ0Ci0tLQo+IAkgIGVsc2lmIDAgPCAoQGFyZ2xpc3R8fEFSR1YpLmxlbmd0aCAmJiAo QGFyZ2xpc3R8fEFSR1YpWzBdICF+IC9eLS4vCj4gCSAgICBvcHRpb25fYXJndW1lbnQgPSAoQGFy Z2xpc3R8fEFSR1YpLnNoaWZ0Cg== ------=_Part_53051_14648945.1182370692442--