メイン

ruby アーカイブ

2006年09月13日

Google Sketchup * Ruby on Mac OSXでの注意点

Google SketchupではRubyをサポートしており、Macならば

/Library/Application Support/Google SketchUp/Plugins

配下にhoge.rbファイルを置くとSUの起動時に自動で読み込んでくれる。


2nd lifeさんではRSS記事を読み込んで表示するサンプルを紹介されているが、自分がこれをコピペでやった時にハマったのでメモ。


Sketchup組み込みのRubyはsocketまわりが使えないらしく、上記コードでは$LOAD_PATHにてOSに入れたRubyのライブラリを叩いてRSSを読み込んでらっしゃる。ところがこれを実行しようとしたところ


no such file to load -- stringio


このエラーが出て実行できない。
もちろん$LOAD_PATHはMac用に/usr/local/lib/ruby/1.8に書き換えたが、どうにもこうにも no such file エラーが出まくりハマった。ご迷惑を顧みず2nd lifeさんに直接質問したら、即レスで『$LOAD_PATH に stringio.so が無いのでは?』とのこと。
なるほど、たしかに/usr/local/lib/ruby/1.8にstringioというファイル名は見当たらない。


# ちなみにwindowsではstringio.soと共有ライブラリの形で置かれているが、
# macではRubyコードそのままにstringio.rbとして置かれるようだ。


Rubyに関しては、configureにはprefixやreadline系のオプションはつけたものの、他は普通にconfigure, make, makeinstallしたのでデフォルトインストールのはず。
どうやらデフォルトインストールではstringioはうまいこと入らないらしい。


なので以前は、makeの際に[ruby-1.8.4ソースフォルダ]/ext/Setup内のstringioのコメントアウトを外して実行してみるとなんとかいけたのだが、そうするとrailsやgemsが動かなくなった。


そこで今回リベンジも兼ねてなにかいい方法は無いかと再び調べてみたら、なんとstringio.rbを配布しているサイトが。。


ここ


そしてなんとここで落としたstringio.rbを

/usr/local/lib/ruby/1.8

に配置すると、makeし直さなくてもちゃんとSketchupで上記のRubyコードが実行できた。
試しに空ファイルのstringio.rbを置いてもみたが、それではやはりエラーが返ってくるだけであった。


この方法が正しいのかは謎。。


2006年10月15日

Sketchup Ver.5.0.297とVer.5.0.305の違い

以前、Mac版SketchupをRubyで操作しようとしてハマった際に記事を書いたが、今回SUのバージョンアップで内部仕様が微妙に変わっているようなので、注意点や変更点を見付け次第ここにまとめていきたい。

コマンド出力内でのrubyコマンドの扱い
・5.0.297の場合
`ruby -r 'open-uri' -e 'puts open("#{uri}").read'`と指定すると、
/usr/local/bin/rubyではなく、/usr/bin/ruby(←Sketchupがインストール?)が実行されるが、socket周りも問題なく使える。

・5.0.305の場合
`ruby -r 'open-uri' -e 'puts open("#{uri}").read'`と指定すると、
同様に/usr/local/bin/rubyではなく/usr/bin/rubyが実行されるが、上とは異なりsocket周りが使えない。

なので、

`ruby -r 'open-uri' -e 'puts open("#{uri}").read'`  を
`/usr/local/bin/ruby -r 'open-uri' -e 'puts open("#{uri}").read'`

とrubyの場所をフルパスで指定してあげると、無事socket周りが使えるようになった。


2台のマシン(Powerbook G4とMacBook)で検証したのだが、ls -tで確認すると、両/usr/bin/ruby共にApril 18に更新されている。
うーむ、よくわからん。


バージョンが上がったときに/usr/bin/rubyも上書きしたのでは無いかと思われるが。
とりあえず/usr/local/bin/rubyとフルパスで指定してやれば、ローカルのrubyを叩けることはわかった。

2007年03月20日

オレRubyconfigureオプション

とりあえず、ログ。

■使う外部ライブラリ
・nkf
・readline
・gdbm

■手順


$ cd /path/to/ruby_src
$ sudo ./configure --prefix=/usr/local --enable-pthread --with-readline-dir=/usr/local --with-gdbm-dir=/opt/local --with-nkf-dir=/opt/local
$ sudo make
$ sudo make install

以上。

About ruby

ブログ「what a bringdown」のカテゴリ「ruby」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはpostgisです。

次のカテゴリはruby on railsです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。