3 日坊主日記
2002-02-24
_ Apollo WebBroker (Apache module)
Delphi6 の WebBroker を Ruby から操る Apollo WebBroker であるが、そこそこ安定動作するようになった。これはつまり Delphi6 で実装した mod_ruby である。InterBase6 てゆうか FireBird1.0 を絡めても大丈夫。肝は
win32_disable_interrupt; result := rb_protect(proc, data, state); win32_enable_interrupt;
どこが効いているのか謎であるが、とにかく効いているようだ。ちなみに Ruby 1.7 では API 名が違う。どうしよう。
2005-02-24
_ [Ruby][Apollo] Ruby/SDL + Delphi
昨夜のお便り:
ApolloにRuby/SDLで作ったウィンドウを入れることは 可能なのでしょうか?
- rubysdl-0.9.4-win32bin-ruby18
SDL_WINDOWID hack を試そう。
panel = Phi::Panel.new(form) ENV['SDL_VIDEODRIVER'] = 'windib' ENV['SDL_WINDOWID'] = panel.handle.to_s
別々に出ちゃうなあ。
- JEDI-SDLv0.5\JEDI-SDL\Demos\2D\SDLTests\testwin
JEDI-SDL で試すと SetEnvironmentVariable ではだめだけど SDL_putenv ならうまくいく。
でも Ruby/SDL は SDL_putenv を呼べないなあ。ううむ。
2007-02-24 rails for ruby 1.9
_ 目標
このプロジェクトは Ruby on Rails を Ruby 1.9 に対応させることを目標とします。
_ ソースコード
Ruby 1.9 trunk を元にします。
Ruby on Rails 1.2 (1-2-stable branch) を元にします。
Ruby on Rails のコアを形成する以下のライブラリを優先的に取り扱います。
- activesupport
- actionpack
- activerecord
_ 関連ライブラリ
Ruby on Rails の開発に必要なライブラリをインストールします。
- rake
- rubygems
- sqlite-ruby (activerecord のテストは sqlite3 で行う)
- flexmock
Ruby on Rails を動かすために必要なライブラリが Ruby 1.9 に対応していない場合は、 Ruby 1.9 に対応するためのパッチを作ります。
Ruby 標準ライブラリ
- cgi,rb
- optparse.rb
外部ライブラリ
- rake
- rubygems
- sqlite-ruby
_ 開発プラットフォーム
Linux (Fedora 5) (i686-linux), MS-Windows XP Pro (mingw32).
_ 公開
ソースコードは subversion で公開します。
_ [Ruby] sqlite3-ruby
sqlite3-ruby の CVS HEAD を mingw で試す。
# fix.rb: while line = gets line.gsub!(/RSTRING\((.+?)\)->ptr\b/, 'RSTRING_PTR(\1)') line.gsub!(/RSTRING\((.+?)\)->len\b/, 'RSTRING_LEN(\1)') line.gsub!(/\bBLOB\b/, 'SQLITE3_BLOB') print line end
たぶん SWIG 側を直すべきなのだろうけどとりあえず。 (SWIG も CVS HEAD から作った)。
BLOB は wtypes.h のとかぶるので名前変更。
lib/sqlite3/driver/dl/api.rb で dl/import を使ってるんだけど
Index: lib/sqlite3/driver/dl/api.rb
===================================================================
--- lib/sqlite3/driver/dl/api.rb (revision 9188)
+++ lib/sqlite3/driver/dl/api.rb (working copy)
@@ -35,7 +35,7 @@
module SQLite3 ; module Driver; module DL;
module API
- extend ::DL::Importable
+ extend ::DL::Importer
library_name = case RUBY_PLATFORM.downcase
when /darwin/
dl/import は mingw でも使えますか?
# lib/sqlite3/driver/dl/api.rb:
require 'dl/import'
module SQLite3 ; module Driver; module DL;
module API
extend ::DL::Importer
library_name = case RUBY_PLATFORM.downcase
when /darwin/
"libsqlite3.dylib"
when /linux/
"libsqlite3.so"
when /win32/
"sqlite3.dll"
else
abort <<-EOF
== * UNSUPPORTED PLATFORM ======================================================
The platform '#{RUBY_PLATFORM}' is unsupported. Please help the author by
editing the following file to allow your sqlite3 library to be found, and
submitting a patch to jamis_buck@byu.edu. Thanks!
#{__FILE__}
=========================================================================== * ==
EOF
end
_ [Ruby] rubygems: gzip error installing sources-0.0.1.gem
rubygems を入れようとすると post-install.rb でひっかかる。
[moriq@can rubygems]$ echo $GEM_HOME
/home/moriq/c
[moriq@can rubygems]$ ~/c/bin/ruby ./post-install.rb
Successfully built RubyGem
Name: sources
Version: 0.0.1
File: sources-0.0.1.gem
/home/moriq/c/lib/ruby/site_ruby/1.9/rubygems/installer.rb:111:in `raise': gzip error installing sources-0.0.1.gem (Gem::InstallError)
from /home/moriq/c/lib/ruby/site_ruby/1.9/rubygems/installer.rb:111:in `rescue in install'
from /home/moriq/c/lib/ruby/site_ruby/1.9/rubygems/installer.rb:64:in `install'
from ./post-install.rb:88:in `block in install_sources'
from ./post-install.rb:84:in `chdir'
from ./post-install.rb:84:in `install_sources'
from ./post-install.rb:116:in `<main>'
でも pkgs/sources/sources-0.0.1.gem は手動で install できる。
[moriq@can rubygems]$ ~/c/bin/gem install pkgs/sources/sources-0.0.1.gem Successfully installed sources, version 0.0.1 [moriq@can rubygems]$ ls ~/c/ bin cache doc gems lib man share specifications
謎い。
svn st で pkgs/* が見えないのは svn:ignore してるから。