テーブルの項目(アンダーバー区切りの文字)をキャメルケースに変換

テーブルの項目が多くてJavaのフィールドを書くのが面倒なので、項目の定義からJavaのエンティティクラスを生成するRubyスクリプトを作ってたんだけど。。アンダーバー区切りの項目名をキャメルケースにするのをどうするのか分からなかったので、適当に作ってみた。
まず、テーブル項目の論理名と物理名がかかれたCSVを用意する。ファイル名はテーブル名をキャメルケースにしたものでこの場合「UserEntity.csv」としておく。

"ユーザ名","user_name"
"メール","mail_address"

このCSVからJavaクラス(というか.javaファイル)を生成するスクリプトは「gen_entity.rb」とする。

require 'csv'

CLASS_NAME = 'UserEntity'

open("#{CLASS_NAME}.java", "w") {|dest|

  dest.write("package sample.entity;\n\n")
  dest.write("import sample.entity.Entity;\n\n")
  dest.write("public class #{CLASS_NAME} extends Entity{\n\n")
  CSV.open("#{CLASS_NAME}.csv", 'r') do |row|
    logical_name = row[0]
    # アンダーバー区切りで単語を分割
    name_array = row[1].split('_')
    # 配列の2つ目の要素以降の先頭文字を大文字にする
    name_array[1,name_array.size].each {|v|
    	v[0..0] = v[0..0].upcase
    } if name_array.size > 1
    # 配列の単語を結合
    phys_name = name_array.join
    dest.write("\t/** #{logical_name} */\n")
    dest.write("\tprivate String #{phys_name};\n")
  end
  dest.write("}")
}

これを実行すると「UserEntity.java」が以下のような内容で出来上がる。

package sample.entity;

import sample.entity.Entity;

public class UserEntity extends Entity{

	/** ユーザ名 */
	private String userName;
	/** メール */
	private String mailAddress;
}

正規表現とか使ってキャメルケースにしようかとたくらんでたんだけど、ダメだった。(_ _)zzかっこわるい。