タグ

2011年1月14日のブックマーク (2件)

  • 無名クラスでincludeした定数を使いたい, RSpecへの応用, EULAには合意しない, 臨時のinclude - 忘れたときに備えた記録(2007-12-31)

    例えば次のような記述。 #!/usr/bin/ruby module Mod V = "Mod::V" end Class.new do include Mod puts V end これを実行すると、 ./0test.rb:8: uninitialized constant V (NameError) from ./0test.rb:6:in `initialize' from ./0test.rb:6:in `new' from ./0test.rb:6 こんなエラーが出る。 Class.newやModule.newにブロックを渡して無名クラス/モジュールを作った場合、そのブロックの定数のスコープはブロックの外側のスコープになるからだ。 version 1.6.8 以降でブロックが与えられた場合は、定数とクラス変数のスコープも外側のスコープになります。 (Rubyリファレンス) これを

  • Ruby-Locale HOWTO - よたらぼ 保管庫

    プログラムが使用する現在のロケールIDを管理します。マルチスレッドに対応しており、スレッドごとにロケールIDを管理できます。 ロケールIDは内部的に次の"言語タグ"を用いて管理されます。 require 'locale' Locale.current #=> Current locale IDs. 言語タグ Ruby-Localeでは、言語タグをロケールIDとして使用します。プログラムは言語タグに応じてローカライズされた処理を実行します。この言語タグはja_JP.UTF-8やja-JPなど表記法にいくつかの標準があるのですが、Ruby-Localeでは、これらを統一的に扱うことができます。 この言語タグは文字列から間単に生成することができ、また、言語タグからそれぞれの表記方法に基づいた文字列を出力することができます。 Ruby-Localeでは以下の言語タグをサポートします。 Simple