2007-01-05(Fri) [長年日記]
■1 yaml_waml:「to_yamlでUTF-8な日本語がbinaryになってしまう問題を回避するRailsプラグイン」
id:Rommyさんの「日本語をto_yamlするとエンコードされてしまう問題を安直な方法で解決する」に該当する状況と幾つか遭遇したので、ほぼそのままRailsプラグインにしてみた。助かりました。ありがとうございます。
このプラグインはRuby本体のYAMLが修正されるまで(いつ??)のツナギとして、ar_fixturesと併用できます。Railsは1.2RC2(リリース乙)で動作確認しました。edgeでは試してません。インストールは、Railsプラグインなので例によって、以下のSVNリポジトリを対象にplugin/installなりvendor/pluginsにsvn:externalで。
リポジトリ
(2008/01/22追記:URLを変更しました)
- バージョン: 0.1.0
- 先っちょ
googlecodeを初めて使ってみた。ちょっと重いが手軽なのは良い。URLが甚だわかりづらくてすみません。プロジェクト名やtrunkディレクトリがダブってる(しかもプロジェクト名は綴りが違う)。これはプロジェクト名にアンダースコアが使えないことと、私がsc(svnauto)を深く理解しないで使っているのが原因。scで1プロジェクト1リポジトリな構成(ルートにtrunk,tags,branchesがある)ができるといいんだけどなー。
to_yaml_spec.rb
期待する振る舞いはRommyさんの記述ほぼそのまんま。
context "Japanese text" do specify "String should output string" do "あ".to_yaml.should_eql <<-EXPECTED --- "あ" EXPECTED end specify "Array-ed string should output string" do ['あ','い'].to_yaml.should_eql <<-EXPECTED --- - "あ" - "い" EXPECTED end specify "Hash-ed string should output string" do {'日本語' => ['出力']}.to_yaml.should_eql <<-EXPECTED --- "日本語": - "出力" EXPECTED end specify "mixed Array should output string" do actual = [["あ", "い"], {"う" => ["え"]}, Struct.new(:name).new("お")] actual.to_yaml.should_eql <<-EXPECTED --- - - "あ" - "い" - "う": - "え" - !ruby/struct: name: "お" EXPECTED end end
どうぞご利用ください。