[#40961] [Bug #3137] complex.rb changes exceptions of Math — Yusuke Endoh <redmine@...>

Bug #3137: complex.rb changes exceptions of Math

15 messages 2010/04/12

[#41038] Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...>

こんにちは!アーロンです。

17 messages 2010/04/22
[#41039] Re: Windows と DL が使用条件の libffi — "U.Nakamura" <usa@...> 2010/04/22

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

[#41040] Re: Windows と DL が使用条件の libffi — "NARUSE, Yui" <naruse@...> 2010/04/22

成瀬です。

[#41059] Re: Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...> 2010/04/26

2010/4/21 NARUSE, Yui <naruse@airemix.jp>:

[#41060] Re: Windows と DL が使用条件の libffi — Yugui <yugui@...> 2010/04/26

2010/4/26 Aaron Patterson <aaron.patterson@gmail.com>:

[#41067] [Feature #3203] LazySweepGC patch — Narihiro Nakamura <redmine@...>

Feature #3203: LazySweepGC patch

15 messages 2010/04/26
[#41069] Re: [Feature #3203] LazySweepGC patch — Yusuke ENDOH <mame@...> 2010/04/27

遠藤です。

[#41104] Rails3 M17N — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

29 messages 2010/04/30
[#41111] Re: Rails3 M17N — Urabe Shyouhei <shyouhei@...> 2010/04/30

Yukihiro Matsumoto さんは書きました:

[#41113] Re: Rails3 M17N — Yukihiro Matsumoto <matz@...> 2010/04/30

まつもと ゆきひろです

[ruby-dev:41123] Re: Rails3 M17N

From: Kenta Murata <muraken@...>
Date: 2010-04-30 10:19:22 UTC
List: ruby-dev #41123
村田です。

On 2010/04/30, at 18:20, NARUSE, Yui wrote:

>> 今時のデータベースシステムはコネクションやテーブルやカラムがエンコーディングを持ってるので、
>> そのエンコーディングをドライバ側で紐づけてやるのが一番情報が落ちなくて良いと思います。
>> それでPostgreSQLのアダプタにはそういうパッチを送ってacceptされました。
> 
> SQLite3 のドライバである、sqlite3-ruby も次のバージョンでエンコーディングを
> 設定するようになります。 (thanks Aaron)

この対応は非常に嬉しいです。

> Rails のデフォルトである SQLite3 が非対応だったので踏む人が多かったのだと思いますが、
> これで今後は減っていくんじゃないでしょうか。

私は現状では、以下のような機能を ActiveRecord へ注入することで対処しています。

http://gist.github.com/381834

if defined?(ActiveRecord)
  class ActiveRecord::Base
    def read_attribute_with_enforcing_utf8(attr_name)
      v = read_attribute_without_enforcing_utf8(attr_name)
      if String === v && column_for_attribute(attr_name).text?
        return v.force_encoding(Encoding::UTF_8) if v.encoding == Encoding::ASCII_8BIT
      end
      return v
    end
    alias_method_chain :read_attribute, :enforcing_utf8

    class << self
      private
      def define_read_method_with_enforcing_utf8(symbol, attr_name, column)
        define_read_method_without_enforcing_utf8(symbol, attr_name, column)
        if column.text?
          self.class_eval <<-END_DEFINITION, __FILE__, __LINE__
            def #{symbol}_with_enforcing_utf8
              v = #{symbol}_without_enforcing_utf8
              v = v.force_encoding(Encoding::UTF_8) if v && v.encoding == Encoding::ASCII_8BIT
              return v
            end
            alias_method_chain :#{symbol}, :enforcing_utf8
          END_DEFINITION
        end
      end
      alias_method_chain :define_read_method, :enforcing_utf8
    end
  end
end

--
Kenta Murata
OpenPGP FP = FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC

本を書きました!!
『Ruby 逆引きレシピ』 http://www.amazon.co.jp/dp/4798119881/mrkn-22

E-mail: mrkn@mrkn.jp
twitter: http://twitter.com/mrkn/
blog: http://d.hatena.ne.jp/mrkn/


In This Thread