[#38121] regex performace tuning and ABI compatibility — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

13 messages 2009/03/03

[#38191] big time — Tanaka Akira <akr@...>

思い立って、time_t を越える範囲を Time で扱うことに挑戦して

31 messages 2009/03/27
[#38194] Re: big time — Tadayoshi Funaba <tadf@...> 2009/03/28

> 思い立って、time_t を越える範囲を Time で扱うことに挑戦して

[#38196] Re: big time — Tanaka Akira <akr@...> 2009/03/28

In article <20090328.134401.209982445.tadf@dotrb.org>,

[#38202] Re: big time — Urabe Shyouhei <shyouhei@...> 2009/03/29

卜部です。

[#38205] Re: big time — Tanaka Akira <akr@...> 2009/03/29

In article <49CF6641.7010204@ruby-lang.org>,

[#38218] rinda/eval.rb — Masatoshi SEKI <m_seki@...>

咳といいます。

20 messages 2009/03/30
[#38219] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/03/31

In article <F01982B3-FBB5-497F-BA36-38FA250E7D69@mva.biglobe.ne.jp>,

[#38223] Re: rinda/eval.rb — Masatoshi SEKI <m_seki@...> 2009/03/31

咳といいます。

[#38229] Re: rinda/eval.rb — "U.Nakamura" <usa@...> 2009/04/01

こんにちは、なかむら(う)です。

[#38233] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/04/01

In article <20090401095853.B00A.C613B076@garbagecollect.jp>,

[#38222] *BSD で fork できない理由 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>

きしもとです

12 messages 2009/03/31

[ruby-dev:38192] Ruby1.9系のString#%の挙動について

From: Masao Mutoh <mutomasa@...>
Date: 2009-03-27 19:37:10 UTC
List: ruby-dev #38192
むとうです。

String#%についてご相談させてください。
#String#%のruby1.9での挙動についてさくさんからご指摘がありました。
(http://rubyforge.org/pipermail/gettext-users-ja/2009-March/000128.html)

----
irb(main):003:0> 'lang is %{lang}' %{:name => 'Unknown'}
KeyError: key not found

ruby-gettextが提供しているString#%(ruby-1.8向け)は上記を許容しているため
エラーになりません。

元々、gettextで'lang is %{lang}'の部分が翻訳文字列として言語により差し
変わるようにしており、(日本語などの)言語によっては引数の値が不要
(=省略したい)になるケースがあるからです。
#なので、gettext的にはこのケースはKeyErrorを出さなくする工夫が
#いずれにせよ必須です。

また、これは偶然の産物なのですが、実は片方だけを先に置換しておく、
という使い方が結構便利でして、最初のループでnameの部分だけ変換して
おいて、ループの中でlangだけぐるぐる回すみたいな使い方ができて、
高速化できたり、ちょっとだけコードをきれいにすることができるような
場合がある気がします。

msgid = '/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo' % {:name => 'ruby'}
languages.each do |lang|
  msgid % {:lang => lang}
end

%sや%fだけの時には、引数が揃ってないと正しく動かない
というのはやむをえないと思いますが、%{...} %<...>の場合は引数が
揃ってなくてもKeyErrorを出さないようにする、というのはどうでしょうか。

もしよろしければ、ご検討いただければと思います。

-- 
Masao Mutoh <mutomasa@gmail.com>

In This Thread

Prev Next