Ruby言語やLinuxのネタが多いです。
March 25, 2002
■ [tDiary] search_form.rb
お言葉に甘えて、CVSにaddしちゃいました。ドキュメントの方は(yasqueeze.rbも含めて)、up場所も含めもうちょっと考えてからご相談させていただきます。
■ [tDiary] xrea + tDiary + Namazu (まとめ)
ここで予告しましたがはまってる方もいらしゃっるようなので、ちょっとでも参考になればとドキュメント化を急いでみました。ここに置いておきますんで試してみてください。
March 25, 2003
■ [Hiki] Hiki/RD+を本体にマージ
いや、技術的には難しくはないです。html_formatter.rb, parser.rbを置き換えてそのほか2つほどクラスファイルを追加するだけになってます(あとは、テンプレートのhtmlファイルにHiki/RD+のコピーライトを入れてますがそれはいじらなくても動きます)。
したがって、html_formatter.rb, parser.rbをうまくプラッガブルにできるようにすれば切り替えは簡単にできると思います。
■ ただ、ちと問題なのが、Hikiが最初から用意しているdata/配下のファイル(TextFromattingRulesやSideMenu, FrontPage)が意図したとおり表示されないため、まともに使おうと思ったら、その辺のファイルをどうにかしないといけなくなるということです。
■ で、一番手っ取り早いのがそれらもRDで書いたファイルで上書きしちゃうことですが、それだとあんまりなので、例えば、RDだったらTextFormattingRules.rdというように拡張子でスタイルを定義して最初からdata/配下においておくようにして、かつ、常に拡張子付きでファイルを拾いに行くようにすればうまく行きそうな気が .... と考えつつ、Ruby-GNOME2では思いっきり上書きしてますが(^^;)。
■ そうそう、それから生成されるHTMLはRDToolが出力するHTMLそのままなので、tDiaryテーマとの互換が微妙にうまく行かないかもしれません。まぁ、それはおいおい直せばよいのかもしれませんが。
March 25, 2004
■ [Ruby-GNOME2] GC + Gtk::Widget#destroy
MLで指摘されたんだけど、ウィジェットはいつGCの対象になるべきなのだろう。
require 'gtk2'
class Test
def hoge
win = Gtk::Window.new.show_all
nil
end
end
Gtk.init
Test.new.hoge
GC.start
Gtk.main
■ ここで、winはローカル変数なんだから、hogeを呼び出した後で(ウィジェット自体)GCされるべきじゃないの、というのが指摘内容。RubyのオブジェクトとしてはGCされるのかもしれないのだけどウインドウは表示されたままだ。
Rubyオブジェクトの生死のスコープと完全に一致させる必要があるなら、このタイミングでウィジェット自体を破壊(Gtk::Widget#destroyを内部的に呼び出す)してあげないといけないのかもしれない。
でも、それはそれでいろいろ問題ありそうだなー。
March 25, 2005
■ [Ruby-GNOME2] MozEditor HTML toy-editor
Ruby/GtkMozEmbed(とRuby/GtkSourceView)のサンプルスクリプト。左ペインにHTMLを書いていくと、それがリアルタイムで右ペインに反映されていく。おもしろい。
これで100ステップ程度。保存処理とかちょっと追加すればそれなりのものになりそうな気がする。ぜひ、そのパワーを試してみてください!
March 25, 2006
■ [Rails] Ruby-GetText-PackageでActionWebServiceのサポート
Ruby-GetText-Package-1.3.0とActionWebServiceを一緒に使うとエラーになるとレポートがありましたので修正しました。ActionWebServiceを使ってる方でかつRuby-GetText-Packageを使おうと考えている方はCVS版を使ってください。
■ その際に(需要があるかどうかは疑問だったのですが)、ActionWebServiceでlangパラメータを指定してあげると、controller側でローカライズができるようにしてみました。
# app/apis/product_api.rb
class ProductApi < ActionWebService::API::Base
api_method :find_product_by_id, :expects => [:lang => :string],
:returns => [{:string => String}]
end
# app/controller/backend_controller.rb
class BackendController < ApplicationController
wsdl_service_name 'Backend'
web_service_api ProductApi
def find_product_by_id(id)
_("foo") + ...
end
end
■ [Rails] config/routes.rbで言語を指定する
こちらはRuby-GetText-Package-1.3.0ですでにサポートしているのですが、以下のようにするとURL内で言語を指定することができます。
ActionController::Routing::Routes.draw do |map| map.connect 'main_ja', :lang=>'ja', :controller=>'blog', :action=>'list' map.connect ':controller/:lang/:action/:id' end
1つめのmap.connectでは、http://yourhost/main_ja とするとblog_controller.rbのlistアクションを呼び出すのですが、その際に@params["lang"]に"ja"が指定されるため、Ruby-GetText-Packageは日本語を強制的に表示し(ようとし)ます。
同様に2つめのmap.connectでは、http://yourhost/blog/ja/list/等とすると日本語を表示し(ようとし)ます。

▲ Nana [いつのまにか、でべろっぱになっていらしゃったんですね。 わーいわーい。(笑)]
▲ ただただし [タグで始めるときは行頭に空白入れないと:-)]
▲ むとぽん [Nanaさん:どうもです。そういやget_xrea_dataはどうでした?と言ってみたり(^^;)。 たださん:あぅ..]