妙なライブラリの名前とコマンドラインオプション
12:34:24 >wtnabe< あ、ubygems.rb っていうそういうことなのか。何この
typo 対応とか思ってたけど、こりゃー一本取られたわ。
12:59:32 <eban> @wtnabe un.rbもそういう意味
何のことかというと、例えば手元の MacPorts で入れた Ruby の library の中の一部はこうなってるんですよ。
$ ls -1F /opt/local/lib/ruby/vendor_ruby/1.8/
gauntlet_rubygems.rb
i686-darwin9/
rbconfig/
rubygems/
rubygems.rb
ubygems.rb
rubygems.rb があるのにこの ubygems.rb って何よ?
と思ってたわけです。しかも中身は
$ cat ubygems.rb
# This file allows for the running of rubygems with a nice
# command line look-and-feel: ruby -rubygems foo.rb
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++
require 'rubygems'
しかない。
なんじゃそれ!
と思ったけど、これはこうすると分かる。
$ ruby -rubygems.rb -e 'puts "foo"'
foo
どういうことかと言うと、
$ ruby --help
Usage: ruby [switches] [--] [programfile] [arguments]
-0[octal] specify record separator (\0, if no argument)
-a autosplit mode with -n or -p (splits $_ into $F)
...
-rlibrary require the library, before executing your script
...
ニクい。ニクいよアニキ!