@m_seki の

I like ruby tooから引っ越し

rqr

ircQRコードが話題になったのでrqrを試してみました。まともな応用は今度作るとして、とりあえずCGIを。


OSXでインストール

OSXではちょっと苦労しました。宗教上の理由からgemは使わないので。# みんなportsとかfinkとかgemsとか使ってんの?

まずext/rqr/extconf.rbの修正。DARWIN環境での考慮を削除しました。

--- extconf.rb~	2008-08-13 07:42:50.000000000 +0900
+++ extconf.rb	2009-12-15 04:35:54.000000000 +0900
@@ -13,24 +13,9 @@
 require 'rbconfig'
 $libs = append_library($libs, "supc++")
 
-FINK_DIR = '/sw'
-MACPORT_DIR = '/opt/local'
-
-if File.exists?(FINK_DIR)
-  DARWIN_PORT_DIR = FINK_DIR
-else
-  DARWIN_PORT_DIR = MACPORT_DIR
-end
-
-if RUBY_PLATFORM =~ /darwin/
-  dir_config('jpeg', DARWIN_PORT_DIR)
-  dir_config('png', DARWIN_PORT_DIR)
-  dir_config('tiff', DARWIN_PORT_DIR)
-else
-  dir_config('jpeg')
-  dir_config('png')
-  dir_config('tiff')
-end
+dir_config('jpeg')
+dir_config('png')
+dir_config('tiff')
 
 if have_header('jpeglib.h') && have_library('jpeg')
   $CFLAGS += ' -DUSE_JPG'

つぎにlib/rqr.rbの修正。QR拡張ライブラリの場所がrqr/QRだったのでQRへ。

--- rqr.rb~	2008-05-26 08:58:38.000000000 +0900
+++ rqr.rb	2009-12-15 05:13:18.000000000 +0900
@@ -1,9 +1,6 @@
-$:.unshift(File.dirname(__FILE__)) unless
-  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
-
 module RQR
   require 'dl'
-  require "rqr/QR"
+  require "QR"
   require "rqr/errors"
   require "rqr/qrcode"  
-end
\ No newline at end of file
+end

あとはふつうの手順でいけました。

ruby setup.rb config
ruby setup.rb setup
sudo ruby setup.rb install

Linuxでインストール

とくに工夫するところはなかったです。lib/rqr.rbの修正は必要だったよ。
gemを使うと拡張ライブラリのインストール先が変わるのかなあ。