妙なライブラリの名前とコマンドラインオプション

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
...

ニクい。ニクいよアニキ!

More