singularize, pluralizeで文字列の単数形・複数形変換

ExcelシートからCakePHPのモデルを自動生成するのに単数形・複数形変換が自動でできたら、と思って調べてみたらsingularize, pluralizeを使えばいいということが分かったので試してみました。Win32OLEで簡単にExcelデータが読めるのでRubyで書いています。最近rooに乗り換えました。こちらも簡単にスプレッドシートが読めて OpenOffice, Google spreadsheet, Excel(xls, xlsx) に対応しています。


文字列の後に .singularize .pluralize を付けると複数形・単数形への変換ができます。

singularize.rb

require 'active_support/inflector'

p "People".singularize
p "Person".pluralize
$ ruby singularize.rb
"Person"
"People"


require 'active_support' だけだと undefined method `singularize' for "People":String (NoMethodError) になるので require 'active_support/inflector' とします。これでしばらくはまりました。


active_support::inflector にはその他、キャメルケースへの変換(camelize)等便利な関数が用意されています。
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html



@Ruby 1.9.3